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

डेटा इंजीनियरिंग इंटरव्यू: एक सत्यापन योग्य डेटा-विलोपन (Data-Erasure) पाइपलाइन डिज़ाइन करें

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

प्रश्न

एक उपयोगकर्ता व्यक्तिगत डेटा को हटाने का अनुरोध करता है। रॉ इवेंट्स ऑब्जेक्ट स्टोरेज में आते हैं, Iceberg टेबल्स दैनिक एग्रीगेट्स तैयार करती हैं, फीचर स्टोर्स और रिपोर्ट्स प्रतियां रखती हैं, बैकअप 35 दिनों तक रहते हैं, और पाइपलाइन ऐतिहासिक रीप्ले का समर्थन करती हैं। एक रोकी जा सकने वाली (pausable) और फिर से शुरू की जा सकने वाली (resumable) विलोपन पाइपलाइन डिज़ाइन करें जो डेटा के पुनः अंतर्ग्रहण (re-ingestion) को रोके और कार्य पूरा होने का प्रमाण दे।

संकेत और दायरा (Prompt and scope)

यह प्रश्न जीवनचक्र डिज़ाइन और प्रमाण का परीक्षण करता है, किसी एकल DELETE का नहीं। रॉ ऑब्जेक्ट्स, टेबल फ़ाइलों, व्युत्पन्न परिणामों, कैश, फीचर्स, एक्सपोर्ट्स, लॉग्स, स्नैपशॉट्स और बैकअप के माध्यम से एक विषय पहचानकर्ता (subject identifier) को ट्रैक करें। परिभाषित करें कि सिस्टम कब ईमानदारी से कार्य पूरा होने का दावा कर सकता है।

यह प्रॉम्प्ट कानूनी दायित्वों का निर्णय नहीं करता है। स्पष्ट करें कि गोपनीयता और कानूनी स्वामी प्रतिधारण (retention) कर्तव्यों, अपवादों और समय-सीमाओं को परिभाषित करते हैं; इंजीनियरिंग उन्हें निष्पादन योग्य दायरे, स्थितियों और साक्ष्यों में बदलती है।

साक्षात्कारकर्ता क्या मूल्यांकन कर रहा है

  • एक डेटा इन्वेंट्री और वंशावली (lineage) जो प्रतियों, व्युत्पन्न मानों, लॉग्स, स्नैपशॉट्स, कैश और बैकअप को कवर करती हो।
  • एक इडेम्पोटेंट (idempotent), पुनः प्रयास करने योग्य (retryable), और रोकी जा सकने वाली (pausable) रिक्वेस्ट जिसे अंतर्ग्रहण (ingestion) या रीप्ले द्वारा फिर से शामिल नहीं किया जा सकता।
  • तार्किक अदृश्यता (logical invisibility), भौतिक विलोपन (physical erasure), स्नैपशॉट समाप्ति, और बैकअप समाप्ति के बीच स्पष्ट सीमाएं।
  • विलोपन के दौरान टेनेंट और संवेदनशील-डेटा सुरक्षा के साथ क्वेरी और प्रशिक्षण (training) का अलगाव (isolation)।
  • साक्ष्य जो यह साबित करे कि केवल एक सफल बूलियन के बजाय प्रत्येक दायरे को संसाधित किया गया था।

अनुशंसित उत्तर संरचना

विषय कुंजी (subject key), अनुरोध स्थिति और पूर्णता अनुबंध को परिभाषित करें। डोमेन और वंशावली को मैप करें। एक स्थिर erasure_id असाइन करें, विषय के लिए अंतर्ग्रहण और रीप्ले को ब्लॉक करें, प्रत्येक डोमेन को हटाएं या फिर से बनाएं, फिर स्वतंत्र जांच और प्रतिधारण सफ़ाई चलाएं। इनपुट वर्जन्स, काउंट्स, विफलताओं और कर्सर को बनाए रखें ताकि रिकवरी बिना किसी डुप्लिकेट प्रभाव के फिर से शुरू हो सके।

गहन विश्लेषण: अनुरोध से प्रमाण तक

पहले दायरा और पहचान परिभाषित करें

खाता, डिवाइस, ऑर्डर और बाहरी पहचानकर्ताओं को एक अपरिवर्तनीय विषय कुंजी में मैप करें। रॉ ऑब्जेक्ट्स, Iceberg पंक्तियों, एग्रीगेट्स, फीचर्स, इंडेक्स, एक्सपोर्ट्स, कैश, लॉग्स और बैकअप की सूची बनाएं। अज्ञात या अनट्रैक किया गया डेटा एक स्पष्ट जोखिम आइटम बन जाता है।

विलोपन को अंतर्ग्रहण के साथ परस्पर अनन्य (mutually exclusive) बनाएं

विलोपन सेवा एक erasure_id और विषय स्थिति को पंजीकृत करती है। अंतर्ग्रहण, रीप्ले और व्युत्पत्ति (derivation) कार्य लिखने से पहले विलोपन मार्कर की जांच करते हैं। एक टॉम्बस्टोन (tombstone) या विषय विभाजन बैरियर पुराने इवेंट्स को ब्लॉक करता है, जबकि वर्जन्स या लीज विलोपन के बाद किसी पुराने स्नैपशॉट को कमिट होने से रोकते हैं।

तार्किक विलोपन को भौतिक सफ़ाई से अलग करें

Iceberg इक्वेलिटी या पोज़िशन डिलीट पुरानी फ़ाइलों, स्नैपशॉट्स और अनाथ (orphan) फ़ाइलों के मौजूद रहने के दौरान भी पंक्तियों को रीड्स से छिपा सकते हैं। प्रतिधारण विंडो के भीतर कॉम्पेक्शन (compaction), स्नैपशॉट समाप्ति और अनाथ सफ़ाई शेड्यूल करें। एक इन्वेंट्री से रॉ ऑब्जेक्ट्स को हटाएं। बैकअप के लिए, नियंत्रित पुनर्स्थापना (restore) नियम और समाप्ति विलोपन कार्य रिकॉर्ड करें।

व्युत्पन्न डेटा को केवल इनपुट हटाकर ठीक नहीं किया जा सकता

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

साक्ष्य के साथ पूर्णता को परिभाषित करें

प्रत्येक डोमेन के लिए स्कैन का दायरा, मैच काउंट, विलोपन संस्करण, भौतिक-सफ़ाई कार्य, विफलताएं और सत्यापन समय रिकॉर्ड करें। स्वतंत्र क्वेरी, एक्सपोर्ट और रीप्ले पथों को लक्षित विषय से संबंधित कुछ भी नहीं लौटाना चाहिए। साक्ष्य के अभाव का अर्थ आंशिक पूर्णता है, सफलता नहीं।

नमूना उत्तर

"मैं सबसे पहले प्राइवेसी ओनर के साथ विषय कुंजी, प्रतिधारण अपवादों और समय-सीमा की पुष्टि करूंगा। विलोपन सेवा एक इडेम्पोटेंट erasure_id बनाती है, अंतर्ग्रहण और रीप्ले को ब्लॉक करती है, और प्रत्येक डोमेन के लिए एक कार्य आइटम लिखती है। रॉ ऑब्जेक्ट्स को एक इन्वेंट्री से हटा दिया जाता है। Iceberg को पहले एक इक्वेलिटी डिलीट प्राप्त होता है, फिर कॉम्पेक्शन और स्नैपशॉट समाप्ति; एग्रीगेट्स और फीचर्स को विषय के आधार पर फिर से बनाया जाता है, जबकि कैश और एक्सपोर्ट स्वामी अपने वर्जन्स को साफ़ करते हैं। बैकअप केवल नियंत्रित रीस्टोर की अनुमति देते हैं और रिलीज़ से पहले टॉम्बस्टोन को रीप्ले करते हैं। प्रत्येक चरण वर्जन्स, काउंट्स और विफलताओं को रिकॉर्ड करता है। केवल सभी डोमेन में शून्य मिलान (zero matches) और कोई अनसुलझी विफलता न होने पर ही अनुरोध पूर्ण स्थिति में जाता है।"

सामान्य विफलता मोड और समाधान

  • केवल प्राथमिक तालिका हटाना → रॉ, व्युत्पन्न, कैश, एक्सपोर्ट, लॉग और बैकअप प्रतियों की गणना करें।
  • डिलीट फ़ाइलों को भौतिक विलोपन कहना → स्नैपशॉट्स, पुरानी फ़ाइलों, कॉम्पेक्शन और अनाथ सफ़ाई की व्याख्या करें।
  • समवर्ती (concurrent) राइट्स को अनदेखा करना → बैरियर, टॉम्बस्टोन, संस्करण जांच और रीप्ले गेट जोड़ें।
  • एकल सफलता ध्वज (flag) का उपयोग करना → प्रति-डोमेन दायरा, काउंट्स, वर्जन्स और स्वतंत्र जांच को बनाए रखें।
  • तत्काल बैकअप पुनर्लेखन का वादा करना → प्रतिधारण, एक्सेस नियंत्रण, समाप्ति सफ़ाई और अनुमोदित अपवादों का उल्लेख करें।

स्कोरिंग रूब्रिक और आत्म-जांच

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

स्वयं से पूछें: क्या मुझे प्रत्येक प्रतिलिपि के स्वामी के बारे में पता है? क्या कोई पुराना इवेंट वापस आ सकता है? कौन सा डेटा छिपा हुआ है बनाम मिटा दिया गया है? रीप्ले टॉम्बस्टोन का उपयोग कैसे करता है? विफलता के बाद कार्य कैसे फिर से शुरू होता है? कौन सा साक्ष्य पूर्णता स्थिति को बदलता है?

फॉलो-अप और विस्तार

क्या होगा यदि Iceberg तालिका तत्काल फ़ाइल पुनर्लेखन के लिए बहुत बड़ी है?

पंक्ति-स्तरीय विलोपन लिखें ताकि रीड्स तुरंत विषय को बाहर कर दें, फिर विलोपन घनत्व और प्रतिधारण समय-सीमा के अनुसार कॉम्पेक्शन शेड्यूल करें। इस बीच स्नैपशॉट और एक्सपोर्ट एक्सेस को प्रतिबंधित करें, और स्थिति में भौतिक-सफ़ाई का समय बनाए रखें।

क्या होगा यदि विलोपन और एक नया इवेंट एक साथ आते हैं?

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

क्या होगा यदि किसी व्युत्पन्न मीट्रिक को उपयोगकर्ताओं तक ट्रैक नहीं किया जा सकता है?

डोमेन को अप्रमाणित (unprovable) के रूप में चिह्नित करें, प्रकाशन रोकें, और विषय-स्तरीय मध्यवर्ती स्थिति, पार्टीशन रीबिल्ड या एक अनुमोदित विकल्प चुनें। वंशावली साक्ष्य के बिना, विलोपन का दावा न करें।

आप ऑडिट ट्रेल से व्यक्तिगत डेटा लीक होने से कैसे बचाते हैं?

एक अपरिवर्तनीय विषय संदर्भ, अनुरोध आईडी, दायरा और काउंट्स संग्रहीत करें, नाम, ईमेल या इवेंट सामग्री नहीं। ऑडिट एक्सेस को अलग से सुरक्षित रखें और इसके प्रतिधारण को गोपनीयता नीति के साथ संरेखित करें।

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

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