पहले किसी अलग target में backfill करें, मौजूदा table से मिलान करके जांचें, फिर स्वैप करें। एक विशाल job के बजाय partition के हिसाब से टुकड़ों में process करें, उन्हें सीमित concurrency के साथ चलाएं ताकि production का काम भूखा न रहे, और हर टुकड़ा idempotent रखें ताकि failures वहीं दोबारा चलाई जा सकें। प्रगति साफ ट्रैक करें, और यह मानकर चलें कि तब से dimension attributes और source डेटा बदल भी चुके हो सकते हैं।
इंटरव्यूअर यह क्यों पूछते हैं
backfill एक तरह की परीक्षा है और दूसरी incident पैदा करने का आम तरीका भी। इंटरव्यूअर chunking, production से resource अलग रखना, और स्वैप से पहले validation चाहते हैं। वे यह भी टटोलते हैं कि आप समझते हैं कि इतिहास दोबारा गिनना हमेशा दोहराया नहीं जा सकता, क्योंकि dimensions, exchange rates और source records आपके नीचे बदल चुके हो सकते हैं।
अपना जवाब कैसे स्ट्रक्चर करें
- shadow table में लिखें ताकि production जस का तस रहे।
- partition के हिसाब से टुकड़े करें और live काम बचाने के लिए concurrency सीमित रखें।
- हर टुकड़ा idempotent और अलग से दोबारा चलाने लायक रखें।
- भरोसेमंद aggregates से मिलान करके जांचें।
- atomically स्वैप करें और rollback के लिए पुरानी table कुछ समय रखें।
उदाहरण जवाब
मैं कभी जगह पर ही backfill नहीं करता। मैं shadow table में बनाता हूं, जांचता हूं, फिर atomic rename या view pointer से स्वैप करता हूं, और पुरानी को एक हफ्ते रखता हूं अगर किसी को कोई फर्क दिखे। run खुद partition के हिसाब से टुकड़ों में बंटता है, आम तौर पर वॉल्यूम के हिसाब से महीने या हफ्ते में, और शायद चार एक साथ चलते हैं, क्योंकि दूसरी incident पैदा करने का सबसे तेज तरीका warehouse भर देना और उसी वक्त हर scheduled job उड़ा देना है। जहां प्लेटफॉर्म देता है, वहां मैं इसे अलग warehouse या resource group पर चलाता हूं। जिस हिस्से में लोग जल्दबाजी करते हैं वह validation है। मैं कुछ ऐसे aggregates चुनता हूं जिन पर finance पहले से भरोसा करता है, जैसे महीने के हिसाब से revenue, और पुराने बनाम नए की तुलना करता हूं, यह उम्मीद रखते हुए कि फर्क सिर्फ वहीं दिखे जहां बग लागू था। अगर कोई ऐसा महीना बदल जाए जो नहीं बदलना चाहिए था, तो fix गलत है। दूसरी बात जो मैं शुरू में ही उठाता हूं वह यह है कि इतिहास हमेशा दोबारा नहीं बनता: अगर dimension type 1 है और उस पर लिखा जा चुका है, तो बीता वक्त दोबारा गिनने पर आज के attributes मिलेंगे, तब वाले नहीं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- backfill आपके production workloads को भूखा न रखे, इसके लिए आप क्या करते हैं?
- अगर source system में raw डेटा अब बचा ही न हो तो?
- इतिहास के आंकड़ों में बदलाव की बात stakeholders तक आप कैसे पहुंचाएंगे?
डेटा इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें