पिछला पोस्ट: क्या है Teradata?टेराडाटा तार कैसे वितरित करता है?
- टेराडाटा एएमपी के बीच बेतरतीब ढंग से तालिका पंक्तियों को वितरित करने के लिए एक हैश एल्गोरिथ्म का उपयोग करता है (लाभ: डेटा की मात्रा की परवाह किए बिना वितरण समान है, और पंक्ति की सामग्री पर निर्भर करता है, डेटा की जनसांख्यिकी नहीं)
- प्राथमिक सूचकांक यह निर्धारित करता है कि क्या एएमपी के बीच समान रूप से या असमान रूप से तालिका पंक्तियों को वितरित किया जाएगा
- यहां तक कि तालिका पंक्तियों के वितरण से भी समान भार वितरण होता है
- प्रत्येक एएमपी केवल प्रत्येक तालिका की पंक्तियों के सबसेट के लिए जिम्मेदार है
- लाइनों को ऑर्डर से बाहर रखा गया है (लाभ: ऑर्डर बनाए रखने के लिए समर्थन की आवश्यकता नहीं है, ऑर्डर सबमिट किए गए किसी भी अनुरोध पर निर्भर नहीं करता है)
प्राथमिक कुंजी (PK) बनाम प्राथमिक सूचकांक (PI)
प्राथमिक कुंजी एक संबंधपरक मॉडल का सम्मेलन है जो विशिष्ट रूप से प्रत्येक पंक्ति की पहचान करता है।
प्राथमिक सूचकांक एक टेराडाटा सम्मेलन है जो पंक्ति वितरण और पहुंच को परिभाषित करता है।
एक अच्छी तरह से डिज़ाइन किए गए डेटाबेस में टेबल होते हैं जिसमें पीआई पीके के समान होता है, साथ ही टेबल जिसमें पीके के अलावा अन्य स्तंभों में पीआई को परिभाषित किया जाता है और पहुंच पथ को प्रभावित कर सकता है।
प्राथमिक कुंजी (PK) | प्राथमिक सूचकांक (PI) |
---|
तार्किक डेटा मॉडलिंग अवधारणा | लाइन वितरण और पहुंच के लिए तंत्र |
Teradata को PK परिभाषा की आवश्यकता नहीं है | तालिका में एक PI होना चाहिए |
कोई कॉलम सीमा नहीं | 1 से 64 कॉलम तक हो सकता है |
PK एक तार्किक डेटा मॉडल में परिभाषित किया गया है | तालिका बनाते समय पीआई को परिभाषित किया जाता है |
मान अद्वितीय होना चाहिए। | मान अद्वितीय होने के लिए नहीं है |
विशिष्टता प्रत्येक पंक्ति को पहचानती है | AMP में स्ट्रिंग लगाने के लिए उपयोग किया जाता है |
मान नहीं बदले जाने चाहिए। | मान परिवर्तन के अधीन हैं। |
अशक्त मूल्यों को स्वीकार नहीं कर सकता | अशक्त भाव ले सकते हैं |
पहुंच पथ पर लागू नहीं है | सबसे प्रभावी पहुंच पथ निर्धारित करता है। |
तार्किक शुद्धता के लिए चुना गया। | भौतिक प्रदर्शन यौगिक मूल्यों के लिए चयनित |
PI दो प्रकार के होते हैं:
UPI (यूनिक प्राइमरी इंडेक्स) और
NUPI (नॉन-यूनिक प्राइमरी इंडेक्स)। UPI का उपयोग करते समय, स्ट्रिंग्स को AMPs के बीच समान रूप से वितरित किया जाता है, और NUPI का उपयोग करते समय, समान इंडेक्स मान वाले स्ट्रिंग्स समान AMP को संदर्भित करते हैं।
UPI और NUPI के साथ टेबल बनाना:
CEATE TABLE Table1 ( Col1 INTEGER, Col2 INTEGER ) UNIQUE PRIMARY INDEX (Col1);
CEATE TABLE Table2 ( Col1 INTEGER, Col2 INTEGER ) PRIMARY INDEX (Col2);
तार का वितरण हैश
प्राथमिक सूचकांक मूल्य हैशिंग एल्गोरिथ्म को पारित किया जाता है, जो सभी एएमपी के बीच अद्वितीय मूल्यों का एक समान वितरण सुनिश्चित करता है। एल्गोरिथ्म एक 32-बिट हैश स्ट्रिंग मान देता है। पहले 16 बिट्स (हैश बकेट नंबर) को हैश मैप के पॉइंटर के रूप में उपयोग किया जाता है। हैश मान की गणना हैश एल्गोरिथ्म का उपयोग करके की जाती है। हैश मैप प्रत्येक सिस्टम के लिए विशिष्ट रूप से कॉन्फ़िगर किया गया है; यह एक ऐसा सरणी है जो एक विशिष्ट AMP के साथ DSW (सांख्यिकी कुंजी) को जोड़ता है। AMP की समान संख्या वाले दो सिस्टम में समान हैश मैप होगा। सिस्टम में एएमपी की संख्या बदलने से हैश मैप में बदलाव की आवश्यकता होती है।
NoPI टेबल
NoPI टेबल
एक प्राथमिक इंडेक्स (
टेराडाटा के 13 वें संस्करण की सुविधा) के
बिना एक टेबल है। इस स्थिति में, नई पंक्तियों को हमेशा तालिका के अंत में जोड़ा जाता है और हैश अनुक्रम के मध्य में कभी नहीं जोड़ा जाता है।
एएमपी के बीच भी लाइनें वितरित की जाएंगी। नया रैंडम कोड निर्धारित करेगा कि AMP को स्ट्रिंग्स या स्ट्रिंग्स के समूह प्राप्त होंगे। AMP के भीतर, पंक्तियों को केवल तालिका के अंत में जोड़ा जाता है। उनके पास एक विशिष्ट पहचानकर्ता होगा, जो मूल्य की विशिष्टता को बढ़ाता है।
फायदे:
तालिका मध्यवर्ती ईटीएल तालिकाओं (एक्सट्रैक्ट, ट्रांसफॉर्म, लोड) में ऑफसेट को कम कर देगी, जिसमें एक प्राथमिक सूचकांक नहीं है।
NoPI स्टेजिंग तालिका में लोड हो रहा है (FastLoad और TPump Array Insert) तेज है।
पीपीआई और MLPPI
PPI (विभाजन प्राथमिक सूचकांक) एक विभाजन तंत्र है जिसका उपयोग बड़ी सीमा के लिए प्रदर्शन को सुधारने के लिए किया जाता है, जब एक सीमा सीमा निर्दिष्ट करने वाले प्रश्न भेजते हैं।
पीपीआई का उपयोग करने वाले डेटा का वितरण पीआई पर आधारित है: प्राथमिक सूचकांक -> हैश मूल्य -> एएमपी की परिभाषा जो पंक्ति को प्राप्त करेगी। एनपीपीआई (कोई विभाजन प्राथमिक सूचकांक) के साथ एएमपी में तार हैश स्ट्रिंग क्रम में व्यवस्थित होते हैं। PPI का उपयोग करते समय, स्ट्रिंग्स को पहले विभाजन में व्यवस्थित किया जाता है, और फिर हैश स्ट्रिंग क्रम में।
MLPPI (मल्टी-लेवल पार्टीशन प्राइमरी इंडेक्स) बहु-विभाजन या एक असम्पीडित जॉइन इंडेक्स के उपयोग की अनुमति देता है। बहुस्तरीय विभाजन में, प्रत्येक विभाजन स्तर
RANGE_N या
CASE_N के भावों का उपयोग करके स्वतंत्र रूप से निर्धारित किया
जाता है ।
विभाजन (विभाजन) का उद्देश्य सिस्टम पर लोड को कम करना है यदि तालिका में डेटा शायद ही कभी या कभी भी अपडेट नहीं किया जाता है (उदाहरण के लिए, विभिन्न लॉग)।
पुनश्चआज ही मैंने
टेराडाटा के ब्लॉग
पर टेराडाटा डीबीएमएस में स्टोरेज स्ट्रक्चर्स के फिजिकल डिजाइन नामक एक आर्टिकल प्रकाशित किया, इसलिए मैंने
सेकेंडरी इंडेक्स के बारे में नहीं लिखा।
मुझे उम्मीद है कि कंपनी लेखों की नियमित श्रृंखला जारी रखेगी, और मुझे अंग्रेजी से प्रलेखन का अनुवाद नहीं करना पड़ेगा।