Örnek sorular
Data Pipeline DesignZorluk 1
Bir ETL pipeline'ında veri dönüşümü, yükleme adımına göre hangi aşamada gerçekleşir?
- aDönüşüm, veri hedef sisteme yüklendikten sonra gerçekleşir
- bDönüşüm, veri hedef sisteme ulaşmadan önce gerçekleşir✓
- cDönüşüm yalnızca kaynak şema değişirse gerçekleşir
- dDönüşüm tamamen atlanır ve ham veri olduğu gibi yüklenir
Açıklama:ETL, Extract-Transform-Load anlamına gelir: veri, hedef sisteme ulaşmadan önce ayrı bir işleme adımında dönüştürülür. Bu, dönüşümün yüklemeden SONRA hedef sistemin içinde gerçekleştiği ELT'den temel farkıdır.
Data Pipeline DesignZorluk 1
Hedef sistem güçlü bir analitik veritabanı olduğunda bir ekip neden ETL yerine ELT'yi tercih edebilir; asıl pratik sebep nedir?
- aELT, herhangi bir veri doğrulaması yapma ihtiyacını ortadan kaldırır
- bELT, kaynak sistemin şemasının asla değişmeyeceğini garanti eder
- cELT, kaynaktan veri çekme ihtiyacını tamamen ortadan kaldırır
- dELT, ağır dönüşümleri hedefin gücüyle işler✓
Açıklama:ELT, ham veriyi önce yükler ve dönüşüm işini hedef sisteme aktarır; böylece büyük ölçekli dönüşümler için ayrı bir dönüşüm katmanında ağır iş yapmak yerine hedef sistemin kendi işlem gücünden yararlanılır.
Data Pipeline DesignZorluk 1
Bir pipeline adımının "idempotent" olması ne anlama gelir?
- aAynı girdiyle tekrar tekrar çalıştırmak, tek seferle aynı sonucu verir✓
- bBelirli bir veri kümesi için yalnızca tam olarak bir kez çalıştırılabilir
- cBaşarılı olana kadar kendini otomatik olarak yeniden dener
- dGirdi ne olursa olsun asla hata üretmez
Açıklama:Idempotency, aynı girdiyle tekrarlanan çalıştırmaların sistemi tek bir çalıştırmayla aynı duruma bırakması demektir — tekrar eden satır yok, çift sayılmış toplam yok. Yeniden deneme mekanizması ya da hatasızlık hakkında bir şey söylemez, adımın tekrar çalıştırılmasını da yasaklamaz.
Data Pipeline DesignZorluk 2
Gece çalışan bir pipeline, dünkü siparişleri yüklerken yarı yolda hata veriyor. Bir mühendis işi baştan sona yeniden çalıştırıyor. Bunun güvenli olması neden yalnızca yükleme adımı idempotent ise mümkündür?
- aÇünkü yeniden çalıştırmak pipeline'ı ikinci seferde her zaman daha hızlı yapar
- bÇünkü idempotency, kaynak sistemin değişmeyeceğini garanti eder
- cÇünkü idempotency olmadan, hatadan önce yüklenmiş satırlar mükerrer hale gelir✓
- dÇünkü idempotency, veriyi tekrar çekme ihtiyacını ortadan kaldırır
Açıklama:Yükleme adımı, hata vermeden önce dünkü siparişlerin bir kısmını zaten eklemişse ve idempotent değilse, baştan yeniden çalıştırma bu aynı satırları tekrar ekler; bu da mükerrer kayıtlara ve şişmiş toplamlara yol açar. Idempotent bir yükleme (kavramsal olarak upsert benzeri davranış) tam yeniden çalıştırmayı güvenli kılar.
Data Pipeline DesignZorluk 1
Bir kaynak sistemden yapılan tam (full) extract ile artımlı (incremental) extract arasındaki temel fark nedir?
- aTam extract yalnızca son çalıştırmadan beri değişen satırları çeker, artımlı extract her şeyi çeker
- bTam extract her seferinde her şeyi çeker, artımlı extract yalnızca değişen satırları çeker✓
- cTam extract, bir kaynak tablo için yaşamı boyunca yalnızca bir kez kullanılabilir
- dAnlamlı bir fark yoktur, ikisi de her zaman aynı satır sayısını döndürür
Açıklama:Tam extract, her çalıştırmada ne değişmiş olursa olsun kaynak veri kümesinin tamamını yeniden okur. Artımlı extract ise yalnızca önceki çalıştırmadan bu yana yeni veya değişmiş satırları belirleyip çeker; bu, büyük ve yavaş değişen tablolar için daha ucuzdur.
Data Pipeline DesignZorluk 2
Herhangi bir araca atıfta bulunmadan, change-data-capture tarzı extraction'ın kavramsal özü nedir?
- aKaynakta yalnızca değişen satırları tespit edip çekmek✓
- bDoğruluğu iki kez kontrol etmek için dönüşüm mantığını iki kere çalıştırmak
- cExtract edildikten sonra kaynak sistemdeki eski veriyi silmek
- dNe değişmiş olursa olsun her extract'i tam bir anlık görüntü (snapshot) olarak saklamak
Açıklama:Change-data-capture tarzı extraction, her seferinde tüm kaynak veri kümesini yeniden taramak yerine, son extraction'dan bu yana hangi satırların değiştiğini (eklendi, güncellendi, silindi) belirleyip yalnızca o farkı çekmekle ilgilidir.