डेटा इंजीनियर इंटरव्यू सवाल

किसी पाइपलाइन का idempotent होना क्या मायने रखता है, और आप ऐसी पाइपलाइन कैसे बनाते हैं?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

idempotent पाइपलाइन एक ही input window के लिए एक बार चलाएं या पांच बार, नतीजा वही देती है। इसे ऐसे बनाएं कि हर run डेटा के एक तय हिस्से का मालिक हो, और फिर उस हिस्से में जोड़ने के बजाय उसे बदल दिया जाए। partition overwrite या किसी स्थिर key पर merge इस्तेमाल करें, window को wall clock के बजाय scheduled interval से निकालें, और ऐसे side effects से बचें जो दोहराए नहीं जा सकते।

इंटरव्यूअर यह क्यों पूछते हैं

idempotency ही वह गुण है जो retries, backfills और incident recovery को सुरक्षित बनाता है, इसलिए यह सवाल असल में पूछ रहा है कि आपने रात तीन बजे पाइपलाइंस संभाली हैं या नहीं। इंटरव्यूअर delete और insert या merge वाला pattern चाहते हैं, now() की जगह scheduled data interval का इस्तेमाल चाहते हैं, और यह समझ चाहते हैं कि emails या external API writes जैसे side effects दोहराए नहीं जा सकते।

अपना जवाब कैसे स्ट्रक्चर करें

  • इसे यूं परिभाषित करें: एक बार चलाएं या कई बार, अंतिम स्थिति वही।
  • तरीका बताएं: partition को overwrite करें या किसी key पर merge करें।
  • जोर दें कि time window schedule से आती है, घड़ी से नहीं।
  • उन side effects को गिनाएं जो idempotency तोड़ते हैं।
  • समझाएं कि इससे backfills इतने आसान क्यों हो जाते हैं।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

इसका मतलब है कि मैं कल वाली job अभी दोबारा चला दूं और table बिल्कुल वैसी ही निकले जैसी वह एक बार साफ चलने पर होती। मैं जो pattern इस्तेमाल करता हूं वह यह है कि हर run एक partition का मालिक होता है, और write उस partition को जोड़ने के बजाय बदल देता है। यानी 2026-08-25 वाली job उस तारीख का partition मिटाकर दोबारा लिखती है, या किसी unique key पर merge करती है, और उसे चार बार चलाने से पहली बार के बाद कुछ नहीं बदलता। जिस बारीकी पर लोग फिसलते हैं वह time है। अगर आपकी job now माइनस एक दिन पर filter करती है, तो तीन दिन बाद दोबारा चलाने पर वह गलत window process करेगी, इसलिए interval orchestrator के data interval से आना चाहिए, task के अंदर की घड़ी से नहीं। मैं side effects पर भी नजर रखता हूं, क्योंकि हमारी एक पाइपलाइन आखिर में summary email भेजती थी और एक retry की वजह से finance को वही रिपोर्ट दो बार मिल गई। हमने notification को अपनी dedupe key वाले अलग task में डाल दिया। एक बार सब कुछ idempotent हो जाए, तो backfilling बस तारीखों की एक range चलाना भर रह जाता है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • external API पर लिखने वाली पाइपलाइन को आप idempotent कैसे बनाएंगे?
  • यहां idempotent और deterministic में क्या फर्क है?
  • जो source इतिहास को पीछे जाकर बदल देता है, उसे आप कैसे संभालते हैं?

डेटा इंजीनियर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं