yoklateknik mülakat

Data Engineer Pe Incremental Cdc Merge Mechanics Mülakat Soruları

75 doğrulanmış Data Engineer Pe Incremental Cdc Merge Mechanics mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Pe Incremental Cdc Merge MechanicsZorluk 1
Spark SQL MERGE INTO ifadesinde WHEN MATCHED THEN UPDATE cümlesi ne işe yarar?
  • aYalnızca kaynakta bulunan her satır için yeni bir satır ekler
  • bBirleştirme koşuluna göre kaynakla eşleşen hedef satırı günceller
  • cBirleştirme koşulundan bağımsız olarak hedef tablodaki tüm satırları siler
  • dHer çalıştırmada hedef tabloyu sıfırdan yeniden yazar
Açıklama:WHEN MATCHED THEN UPDATE, yalnızca birleştirme koşuluna göre bir kaynak satırıyla eşleşen hedef satırlara uygulanır; eşleşmeyen kaynak satırları ayrı bir WHEN NOT MATCHED cümlesiyle ele alınır.
Pe Incremental Cdc Merge MechanicsZorluk 2
Delta Lake MERGE INTO ifadesinde WHEN NOT MATCHED THEN INSERT cümlesinin amacı nedir?
  • aDoğrulamadan geçemeyen kaynak satırlarını sonradan incelenmek üzere işaretler
  • bKaynakta artık bulunmayan hedef satırları kaldırır
  • cDeğeri kaynaktan farklı olan hedef satırları günceller
  • dEşleşen anahtarı olmayan kaynak satırı için yeni satır ekler
Açıklama:WHEN NOT MATCHED, kaynak satırın anahtarı hedefte bulunmadığında devreye girer; bu tam olarak onu yeni bir satır olarak eklemenin koşuludur — merge'ü bir upsert'e dönüştüren mekanizma budur.
Pe Incremental Cdc Merge MechanicsZorluk 1
Silinen bir kaynak satırı için Debezium değişiklik olayı şöyle görünür:
{"before": {"id": 42, "status": "active"}, "after": null, "op": "d", "ts_ms": 1699999999000}

"op": "d" bu olayı tüketen bir sisteme neyi söyler?
  • aSatır silindi; before son durumu taşır, after null'dur
  • bKaynak satır aynı birincil anahtarla yeni bir satıra kopyalandı
  • cOlay, canlı bir değişiklik değil ilk snapshot yüklemesinin bir parçasıdır
  • dKaynak veritabanı silme işlemini foreign key kısıtı yüzünden reddetti
Açıklama:Debezium'da op alanı işlem tipini belirtir; "d" bir delete'tir. Delete olaylarında after null'dur çünkü satır artık yoktur, before ise silinmeden hemen önceki satır durumunu taşımaya devam eder.
Pe Incremental Cdc Merge MechanicsZorluk 2
'MERGE koşulunun kaynak tarafında, aynı hedef satırla birden fazla kaynak satırının eşleşmesi' pratikte neden en sık karşılaşılan MERGE INTO hatası sayılır?
  • aÇünkü çoğu SQL motoru fazla kaynak satırlarını hata vermeden sessizce yok sayar
  • bÇünkü yalnızca hedef tabloda birincil anahtar tanımlı olmadığında ortaya çıkar
  • cÇünkü Delta Lake, bir update/delete cümlesi varken bunu reddeder
  • dÇünkü sonraki her sorguda tam tablo taramasını tetikler, hata değil
Açıklama:Delta Lake ve benzeri motorlar, birleştirme koşulu birden fazla kaynak satırını tek bir hedef satırla eşleştirdiğinde ve bir WHEN MATCHED update/delete cümlesi varken açık bir hata fırlatır (ör. UnsupportedOperationException), çünkü hangi kaynak satırının kazanacağı belirsiz olur — CDC veya extract batch'inde yinelenen anahtarlar ise sık rastlanan bir durumdur.
Pe Incremental Cdc Merge MechanicsZorluk 3
Kaynağın bir anahtar için birden fazla satır içerebileceği bir MERGE INTO çalıştırmadan önce, çoklu-eşleşme hatasını hangi ön işleme adımı önler?
  • aKaynağı anahtara göre sıralayıp doğruluk için sıralama sırasına güvenmek
  • bKaynağı ROW_NUMBER() ile anahtar başına dedup etmek
  • cMERGE INTO ifadesinin kendisine bir LIMIT 1 cümlesi eklemek
  • dMerge çalışmadan önce spark.sql.shuffle.partitions değerini artırmak
Açıklama:Yalnızca sıralamak yinelenen satırları kaldırmaz, LIMIT 1'i MERGE INTO ifadesine eklemek geçerli değildir ve shuffle partition sayısının yinelenen anahtarlarla ilgisi yoktur. Kaynağı anahtara göre pencereleyip bir güncellik sütununa göre sıralamak ve anahtar başına yalnızca en üstteki satırı tutmak, birleştirme koşulu değerlendirilmeden önce anahtar başına en fazla bir kaynak satırı garanti eder.
Pe Incremental Cdc Merge MechanicsZorluk 2
Bir Spark INSERT OVERWRITE TABLE t PARTITION (dt='2026-08-15') SELECT ... ifadesi hedef partition'a ne yapar?
  • aO partition'ın tüm içeriğini SELECT sonucuyla değiştirir
  • bSELECT sonucunu o partition'da zaten var olan satırlara ekler
  • cSELECT sonucunu var olan satırlarla bir birincil anahtar üzerinden birleştirir
  • dYalnızca değişen sütunları günceller, değişmeyen satırlara dokunmaz
Açıklama:Belirli bir partition üzerinde INSERT OVERWRITE, o partition'ın var olan içeriğini atar ve tamamen sorgu sonucuyla değiştirir — MERGE INTO'nun aksine satır düzeyinde bir eşleştirme yoktur.

1950 soruluk Data Engineer bankasında kendini sına.

Mülakata başla