Azure Synapse में, मैं कैसे जांच सकता हूं कि तालिका कैसे वितरित की जाती है। उदाहरण के लिए चाहे इसे राउंड रॉबिन तरीके से वितरित किया जाए या हैश कुंजियों के साथ।

1
MetallicPriest 11 जून 2021, 16:51

2 जवाब

सबसे बढ़िया उत्तर

आप एक समर्पित SQL पूल में डायनेमिक मैनेजमेंट व्यू (DMV) sys.pdw_table_distribution_properties का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि क्या टेबल राउंड रॉबिन, हैश या प्रतिकृति के माध्यम से वितरित की जाती है, उदाहरण के लिए

SELECT 
       OBJECT_SCHEMA_NAME( object_id ) schemaName, 
       OBJECT_NAME( object_id ) tableName,
       *
FROM sys.pdw_table_distribution_properties;

यह distribution_policy_desc कॉलम है। कुछ नमूना परिणाम:

Results

2
wBob 11 जून 2021, 18:03

भ्रमित न हों वितरण और विभाजन करना. मैंने सवाल अपडेट किया है।


जैसा कि बताया गया है pdw_table_distribution_properties निश्चित रूप से एक संभावना है।

या बस किसी भी क्लाइंट (डेटा स्टूडियो, एसएसएमएस, प्लगइन के साथ वीएस कोड, ...) का उपयोग करके उस तालिका के लिए डीडीएल बनाएं।

उदा. Azure डेटा स्टूडियो में, तालिका पर राइट क्लिक करें और "स्क्रिप्ट के रूप में बनाएँ" पर क्लिक करें।

enter image description here

DISTRIBUTION को WITH क्लॉज में खोजें।

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[sa_logs]
(
    [version_number] [float] NULL,
    [request_start_time] [datetimeoffset](7) NULL,
    ...
    [referrer_header] [varchar](256) NULL,
)
WITH
(
    DISTRIBUTION = ROUND_ROBIN,
    HEAP
)
GO

या HASH वाली तालिका के लिए:

...
    DISTRIBUTION = HASH ( [hash_column] ),
...

1
Kashyap 11 जून 2021, 19:57