प्रतिनिधि इंटरव्यू विषय

डेटा इंजीनियरिंग इंटरव्यू: आप Iceberg 1.10.2 को कैसे अपग्रेड करेंगे और डिलीट सेमांटिक्स को सुरक्षित रूप से कैसे सत्यापित करेंगे?

डेटाकठिन
Offer.cc संपादकीय टीमप्रकाशित अपडेट किया गया

प्रश्न

आपका लेक Iceberg तालिकाओं का उपयोग करता है और 1.10.1 से 1.10.2 पर माइग्रेट हो रहा है। तालिकाओं में equality deletes, v2 deletes और समवर्ती राइटर्स शामिल हैं, जबकि रिलीज़ में सुरक्षा फ़िक्सेस शामिल हैं। अपग्रेड, सत्यापन, रोलबैक और क्लीनअप डिज़ाइन करें।

प्रॉम्प्ट और दायरा

आपका लेक Iceberg तालिकाओं का उपयोग करता है और 1.10.1 से 1.10.2 पर माइग्रेट हो रहा है। तालिकाओं में equality deletes, v2 deletes और समवर्ती राइटर्स शामिल हैं, जबकि रिलीज़ में सुरक्षा फ़िक्सेस शामिल हैं। अपग्रेड, सत्यापन, रोलबैक और क्लीनअप डिज़ाइन करें।

Apache Iceberg ने 1.10.2 को 18 मई, 2026 को रिलीज़ के रूप में दर्ज किया है, जिसमें equality-delete स्कीमा ऑर्डरिंग, कमिट के बाद स्नैपशॉट लोड करने, असुरक्षित फ़ाइल क्लीनअप, समवर्ती फ़ॉर्मेट अपग्रेड और निर्भरता से जुड़ी कमजोरियों के फ़िक्सेस शामिल हैं। यह इंटरव्यू रिलीज़ नोट्स को डेटा-शुद्धता के प्रमाण में बदलने की क्षमता का परीक्षण करता है।

इंटरव्यूअर क्या मूल्यांकन करता है

  • टेबल स्पेक, इंजन कार्यान्वयन, Catalog, FileIO और रनटाइम निर्भरताओं को अलग करना।
  • Equality deletes, position deletes, delete vectors और स्नैपशॉट विजिबिलिटी की व्याख्या करना।
  • शैडो वैलिडेशन, समवर्ती-राइट परीक्षण, क्लीनअप सुरक्षा और रोलबैक विंडो डिज़ाइन करना।
  • यह पहचानना कि निर्भरता अपग्रेड का पास होना ऐतिहासिक-क्वेरी की शुद्धता का प्रमाण नहीं है।
  • ऑडिट योग्य मेट्रिक्स, स्टॉप लाइन्स और अपग्रेड के बाद के क्लीनअप गेट्स को परिभाषित करना।

स्पष्टीकरण वाले प्रश्न

  • कौन से इंजन, Catalog, ऑब्जेक्ट स्टोर और Iceberg रनटाइम तैनात हैं? क्या राइटर्स बहुभाषी (multilingual) हैं?
  • कौन से फ़ॉर्मेट वर्ज़न, डिलीट-फ़ाइल प्रकार, पार्टिशनिंग, स्नैपशॉट रिटेंशन और कमिट दरें लागू होती हैं?
  • क्या यह केवल क्लाइंट निर्भरता प्रतिस्थापन है, या राइटर्स, रीडर्स और Catalog सेवाएँ भी बदल रही हैं?
  • कौन से स्ट्रीमिंग राइटर्स और डाउनस्ट्रीम क्वेरीज़ को रोका नहीं जा सकता है?

वर्ज़न और संगतता मैट्रिक्स

वास्तविक निर्भरता ट्री और तैनात वर्ज़न को लॉक करें। रीडर्स, राइटर्स, Catalog, FileIO, ऑब्जेक्ट स्टोरेज और क्लीनअप जॉब्स के लिए एक मैट्रिक्स बनाएं। 1.10.2 फ़िक्स यह साबित नहीं करता है कि कोई पुराना इंजन नए मेटाडेटा को समझता है; आधिकारिक संगतता मार्गदर्शन के साथ रीप्ले परीक्षणों का उपयोग करें। इसे केवल-पढ़ने योग्य (read-only) रीडर्स, ऑफ़लाइन राइटर्स, ऑनलाइन राइटर्स और क्लीनअप चरणों में रोल आउट करें।

कैनरी वातावरण में, प्रोडक्शन स्नैपशॉट, डिलीट फ़ाइलों और समवर्ती कमिट्स की प्रतिलिपि बनाएँ। स्नैपशॉट आईडी, मैनिफ़ेस्ट काउंट, डिलीट-फ़ाइल काउंट और प्रत्येक घटक द्वारा पढ़े गए टेबल फ़ॉर्मेट वर्ज़न को रिकॉर्ड करें। "यह पढ़ रहा है" को प्रमाण मानने के बजाय अज्ञात संगतता को एक ब्लॉकर के रूप में चिह्नित करें।

डिलीट सेमांटिक्स और शुद्धता सत्यापन

दोहराई गई समानता कुंजियों (equality keys), एकाधिक पंक्ति संस्करणों, position deletes, delete vectors और समवर्ती अपडेट के साथ एक गोल्डन डेटासेट बनाएं। समान स्नैपशॉट, टाइम-ट्रैवल क्वेरीज़ और वृद्धिशील (incremental) स्कैन पर अपग्रेड से पहले और बाद के रीडर्स की तुलना करें। पंक्ति संख्या, प्राथमिक-कुंजी सेट, एग्रीगेट्स और स्कीमा ऑर्डरिंग की जाँच करें; फ़िल्टर की गई पंक्तियों और बेमेल डिलीट्स को रिकॉर्ड करें।

केवल वर्तमान तालिका को सत्यापित न करें: एक ख़राब डिलीट कॉम्पैक्शन के बाद सामने आ सकता है। मूल मैनिफ़ेस्ट, डिलीट फ़ाइलों और स्नैपशॉट लॉग को बनाए रखें, और स्वतंत्र SQL या एक छोटे सटीक कार्यान्वयन के साथ क्रॉस-चेक करें। विफलता पर, स्नैपशॉट को सुरक्षित रखें और उन्हें तुरंत समाप्त (expire) न करें।

समवर्ती कमिट और स्नैपशॉट सुरक्षा

अपग्रेड के दौरान अपेंड, ओवरराइट, रो-लेवल डिलीट और कॉम्पैक्शन परीक्षण चलाएं। कमिट टकराव (conflicts), Catalog टाइमआउट और क्षणिक ऑब्जेक्ट-स्टोर 503s इंजेक्ट करें। पुष्टि करें कि विफल लेनदेन सक्रिय स्नैपशॉट द्वारा संदर्भित फ़ाइलों को साफ़ नहीं कर सकते हैं और सफल कमिट एक सुसंगत स्नैपशॉट को उजागर करते हैं। फ़ॉर्मेट अपग्रेड के समवर्ती v2 deletes के लिए एक समर्पित स्टॉप लाइन सेट करें।

क्लीनअप रिटेंशन, सक्रिय क्वेरीज़, ब्रांच या टैग संदर्भों और कमिट समय से उम्मीदवारों की गणना करता है। उम्मीदवार एक विलंबित कतार में प्रवेश करते हैं और दूसरी पुष्टि के बाद ही हटाए जाते हैं। रोलबैक के दौरान, अपरिवर्तनीय क्लीनअप को प्रतिबंधित करें ताकि पढ़ने योग्य इतिहास उपलब्ध रहे।

परिनियोजन, रोलबैक और गवर्नेंस

बैच में रिलीज़ करें: केवल-पढ़ने योग्य सेवाएँ, कम-मात्रा वाले राइटर्स, फिर सभी जॉब्स। प्रत्येक बैच त्रुटियों, स्नैपशॉट कमिट विलंबता, क्वेरी-परिणाम अंतर, डिलीट मिसेज, ऑब्जेक्ट-स्टोर 404s, क्लीनअप उम्मीदवारों और संसाधन लागत को रिकॉर्ड करता है। रोलबैक समीक्षा के लिए नए वर्ज़न द्वारा बनाए गए स्नैपशॉट को बनाए रखते हुए एक संगत क्लाइंट पर स्विच करता है; मेटाडेटा को हटाना रोलबैक नहीं है।

बिल्ड आर्टिफ़ैक्ट्स में सकर्मक निर्भरताओं (transitive dependencies) को लॉक और स्कैन करें। यदि 1.10.2 किसी परीक्षण फ़िक्सचर या रनटाइम आर्टिफ़ैक्ट को हटाता या बदलता है, तो प्रोडक्शन से पहले बिल्ड मैट्रिक्स में पैकेजिंग, क्लासपाथ और लाइसेंस को सत्यापित करें। समाप्ति तिथियों के साथ मैन्युअल अपवादों को रिकॉर्ड करें।

विफलता अभ्यास और रिलीज़ गेट्स

Equality-delete स्कीमा-ऑर्डर परिवर्तन, समवर्ती फ़ॉर्मेट अपग्रेड, स्नैपशॉट-लोड विफलताएं, 503 प्राप्त करने वाला क्लीनअप, नए स्नैपशॉट लोड करने वाले पुराने रीडर्स, ऑब्जेक्ट-स्टोर लैग और रिकवरी के दौरान डुप्लिकेट कमिट्स का अभ्यास करें। गेट्स में शून्य अस्पष्टीकृत परिणाम अंतर, बजट के भीतर डिलीट मिसेज, सक्रिय-स्नैपशॉट फ़ाइलों का साफ़ न होना, रोलबैक के बाद पढ़ने योग्य इतिहास और पासिंग निर्भरता स्कैन शामिल हैं।

यदि केवल क्रम भिन्न है, तो निर्धारित करें कि क्या क्रम अनिर्दिष्ट था। यदि प्राथमिक-कुंजी सेट या डिलीट विजिबिलिटी भिन्न है, तो विस्तार को तुरंत रोकें। रिटेंशन और अवलोकन विंडो के बाद, क्लीनअप को धीरे-धीरे पुनर्स्थापित करें; डिस्क का दबाव साक्ष्य बनाए रखने को छोड़ने का औचित्य नहीं है।

अनुवर्ती प्रश्न और संदर्भ उत्तर

केवल नवीनतम पंक्ति संख्या की तुलना करना अपर्याप्त क्यों है?

यह टाइम ट्रैवल, वृद्धिशील रीड्स, डिलीट-फ़ाइल अनुप्रयोग और ऐतिहासिक क्लीनअप को छोड़ देता है। गोल्डन डेटासेट पर एकाधिक स्नैपशॉट, प्राथमिक-कुंजी सेट, एग्रीगेट्स और डिलीट मिसेज की तुलना करें।

आप कैसे साबित करते हैं कि रोलबैक सुरक्षित है?

पहले और बाद के स्नैपशॉट को बनाए रखें, अपरिवर्तनीय क्लीनअप को रोकें, सत्यापित करें कि पुराने रीडर्स रिटेंशन विंडो को पढ़ सकते हैं, और कमिट टकरावों और ऑब्जेक्ट-स्टोर विफलताओं के बाद रिकवरी का पूर्वाभ्यास करें।

निर्भरता सुरक्षा फ़िक्सेस डेटा सत्यापन में कैसे प्रवेश करते हैं?

सकर्मक निर्भरताओं को लॉक करें और आर्टिफ़ैक्ट्स को स्कैन करें, फिर क्लासपाथ, लाइसेंस और रीडर/राइटर मैट्रिक्स परीक्षण चलाएं। एक क्लीन सुरक्षा स्कैन डिलीट सेमांटिक्स को साबित नहीं करता है।

सार्वजनिक स्रोत

संबंधित प्रश्न