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

change data capture क्या है, और log based CDC किसी timestamp column को poll करने से कैसे अलग है?

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

छोटा जवाब

change data capture किसी source database से row स्तर के बदलाव stream करता है। log based CDC सीधे transaction log पढ़ता है, इसलिए वह inserts, updates और hard deletes को commit के क्रम में पकड़ता है और source पर लगभग कोई बोझ नहीं डालता। updated_at column को poll करना आसान है लेकिन वह hard deletes चूक जाता है, दो polls के बीच की बीच वाली स्थितियां चूक जाता है, इस बात पर टिका रहता है कि application उस column को भरता रहे, और clock या transaction boundary की गड़बड़ी पर rows छोड़ सकता है।

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

यह लगभग हर ingestion प्रोजेक्ट में असली आर्किटेक्चर फैसला है। इंटरव्यूअर timestamp polling की खास कमजोरियां सुनना चाहते हैं, खासकर deletes और चल रहे transactions, और यह भी कि आप समझते हैं log based CDC source से क्या मांगता है: replication slots, log retention, permissions, और शुरुआती snapshot का प्लान।

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

  • CDC को परिभाषित करें और उसके दो मुख्य तरीके गिनाएं।
  • साफ साफ बताएं कि timestamp polling क्या क्या चूकता है।
  • बताएं कि log based CDC को source database से क्या चाहिए।
  • snapshot से stream पर हैंडओवर समझाएं।
  • बताएं कि source table पर schema बदलने को आप कैसे संभालेंगे।

उदाहरण जवाब

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

CDC का मकसद पूरी tables दोबारा पढ़ने के बजाय row स्तर के बदलाव लेना है। log based CDC, जैसे Debezium से Postgres का write ahead log या MySQL का binlog पढ़ना, आपको हर insert, update और delete commit के क्रम में देता है और primary पर लगभग कोई query बोझ नहीं डालता। updated_at column poll करना सेट करना कहीं आसान है, और धीरे बदलने वाले reference data के लिए ठीक भी है, लेकिन उसमें असली छेद हैं। वह hard deletes देख ही नहीं सकता, इसलिए rows चुपचाप आगे हमेशा के लिए टिकी रहती हैं। अगर दो polls के बीच row दो बार बदली तो बीच की स्थितियां छूट जाती हैं, और यह इस पर टिका है कि हर writer वह column सेट करना याद रखे, जो हमारे यहां एक पुरानी job ने कभी नहीं किया। log based CDC की अपनी ऑपरेशनल कीमत है। आपको replication slot चाहिए, और अगर आपका consumer अटक गया तो log खाली नहीं होगा और source की disk भर जाएगी, जो सचमुच खतरनाक failure है। इसलिए मैं pipeline lag के साथ साथ slot lag को भी पहले दर्जे का alert बनाकर रखता हूं।

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

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

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

  • source को ब्लॉक किए बिना शुरुआती snapshot आप कैसे संभालेंगे?
  • अगर Postgres का replication slot पीछे छूट जाए तो क्या होता है?
  • append only table में delete को आप आगे कैसे दिखाते हैं?

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

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

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

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

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

GhostPilot पाएं