Amazon DEA-C01: Veri Kataloglama ve Metadata Yönetimi — Çalışma kılavuzu
Şunun bir parçası: Amazon Data Engineer Associate DEA-C01 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Amazon sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.
Bu alan, bir AWS veri platformunda verilerin keşfedilebilir, sorgulanabilir ve yönetilebilir olmasını sağlayan meta veri katmanını kapsar. Etkili kataloglama ve meta veri yönetimi, analitik süreçlerdeki engelleri azaltır ve alt sistem tüketicilerinin şemaları, bölümleri, erişim politikalarını ve veri soyunu (lineage) bulabilmesini sağlar. Bu alandaki AWS hizmetleri—Glue Data Catalog, Glue Schema Registry, Lake Formation, Athena entegrasyonu ve DataBrew—keşif, şema evrimi, yönetişim ve profilleme için tamamlayıcı araçlar sunar. Bu hizmetlerin nasıl etkileşimde bulunduğunu, yapılandırma ayrıntılarını ve tipik hata modlarını anlamak, operasyonel güvenilirlik ve güvenlik için esastır.
AWS Glue Data Catalog yapısı ve operasyonları
Glue Data Catalog; veritabanları, tablolar, bölümler, bağlantılar ve kullanıcı tanımlı sınıflandırıcılar için bölgesel, merkezi bir meta veri deposudur. Temel öğeler şunlardır:
- Veritabanı (Database): mantıksal bir kapsayıcıdır (aws cli kullanımı: aws glue create-database –database-input Name=analytics_db).
- Tablo (Table): bir veri setini tanımlar (serde, girdi/çıktı formatları, sütunlar, tableType EXTERNAL_TABLE). Konsol, Glue API veya CloudFormation aracılığıyla oluşturabilir/güncelleyebilirsiniz; örn., aws glue create-table –database-name analytics_db –table-input file://table.json.
- Bölüm (Partition): bölüm anahtarı değerleri ile S3 önekleri arasındaki eşleştirmedir; bölümler Glue crawler’ları tarafından yönetilebilir (aws glue start-crawler –name my-crawler) veya açıkça eklenebilir (aws glue batch-create-partition).
Operasyonel desenler:
- Keşif için crawler’lar: Gelişen S3 düzenleri için crawler’ları zamanlayın, sınıflandırıcı sırasını (CSV/JSON/Parquet) seçin ve artımlı güncellemeler için crawler politikasını ayarlayın.
- Programatik kontrol: Yalnızca crawler’lara güvenmek yerine, olay güdümlü S3 gelişleri olduğunda bölümleri eklemek için Glue API’lerini veya Lambda’yı tercih edin.
- Katalog replikasyonu: Glue Data Catalog bölgeseldir. Çok bölgeli okumalar için her bölgede crawler çalıştırmayı, meta verileri çoğaltmak için otomasyon oluşturmayı veya kaynak bağlama (resource-linking) desenlerini kullanmayı düşünün; tasarım kararları maliyete, tutarlılık ihtiyaçlarına ve bölgeler arası sorgu desenlerine bağlıdır.
Karar kriterleri:
- Şema tespiti gerektiğinde ve veri formatları heterojen olduğunda crawler’ları kullanın; katı şemalar ve yüksek hacimli, öngörülebilir veri setleri için açık tablo oluşturmayı kullanın.
- Crawler gecikmesini önlemek ve Glue API maliyetlerini azaltmak için yüksek frekanslı küçük dosya gelişleri için batch-create-partition veya Lambda tabanlı bölüm yönetimini kullanın.
Şema keşfi ve evrimi
Schema Registry ve Glue şeması, akış (streaming) ve uzun ömürlü üretici/tüketici sözleşmeleri için Avro, JSON ve Protobuf’u destekler. Temel yetenekler:
- Konsol veya CLI aracılığıyla şemaları kaydedin (aws glue create-schema –schema-name orders –data-format AVRO –compatibility BACKWARD).
- Uyumluluk modları: BACKWARD (tüketiciler yeni verileri okuyabilir), FORWARD (yeni tüketiciler eski verileri okuyabilir) ve FULL (her ikisi de). Tüketici dağıtım desenlerine göre seçim yapın.
- Şema zorlaması: Akış için, gömülü şema sürümleri ve doğrulama ile serileştirme/deserileştirme yapmak üzere registry’yi Kinesis Data Streams, MSK veya Kafka istemcileri ve AWS SDK’ları ile entegre edin.
Pratik yapılandırma ve evrim desenleri:
- Çok sayıda tüketicisi olan Avro için, varsayılan değerlerle yeni alanların eklenmesine izin vermek amacıyla BACKWARD uyumluluğunu kullanın; bozucu kaldırma işlemlerinden kaçının.
- Ekipler arasında katı sözleşme evrimi için, tam uyumluluk (full compatibility) talep edin ve şema değişikliklerini, şema doğrulaması çalıştıran bir CI adımıyla kontrol edin.
- Alanların isteğe bağlı olduğu ve şemanın akışkan olduğu JSON için, sessiz tüketici kırılmalarını önlemek amacıyla izin verici varsayılanlarla şema evrimini kullanın, ancak katalogdaki meta verileri sürümleyin.
Karar kriterleri:
- Akış olayları ve birden fazla tüketicinin kanonik bir şemaya ihtiyaç duyduğu durumlar için Schema Registry’yi kullanın. Formatın (Parquet/ORC) okuma sırasında şema sağladığı toplu (batch) veri setleri için Glue tablo şemalarını kullanın.
- Tüm tüketicileri kontrol edip etmediğinizi (FORWARD’ı koordine edebilir misiniz) veya güvenli eklemeli değişikliklere ihtiyacınız olup olmadığını (BACKWARD’ı seçin) değerlendirerek uyumluluk modunu seçin.
Lake Formation ile veri soyu (lineage) ve yönetişim
Lake Formation, ayrıntılı erişim kontrolü, denetim ve veri soyu (lineage) kontrolleri sağlamak için Glue Data Catalog üzerine inşa edilmiştir. Temel özellikler:
- LF-Tags: Veritabanlarına, tablolara ve sütunlara uygulanan etiket tabanlı erişim kontrolleri. Lake Formation’da LF-Tag’ler oluşturun, anahtar:değer çiftleri atayın ve ardından kaynak tabanlı izinler yerine etiket tabanlı izinler aracılığıyla IAM principal’larına izin verin.
- Sütun düzeyinde kontroller: Sütunları maskelemek veya kısıtlamak için LF-Tag’leri kullanın; sütun düzeyindeki izinleri Lake Formation konsolunda veya aws lakeformation grant-permissions ile yapılandırın.
- Veri soyu ve denetim: ETL işlerinin soyunu yakalamak için CloudTrail ve Glue iş metriklerini etkinleştirin; işlenen verileri izlemek için katalogdaki Glue iş yer imlerini (job bookmarks) ve iş yer imi meta verilerini kullanın.
Yapılandırma desenleri:
- Küçük, tutarlı bir LF-Tag anahtar seti (örneğin, sensitivity:public/private/PII) tanımlayın ve tablo oluşturma sırasında veya crawler yapılandırması ya da işlem sonrası kod kullanarak Glue crawler’ları aracılığıyla etiketlemeyi otomatikleştirin.
- Lake Formation Delegated Admin rolleri aracılığıyla yönetimi devredin ve IAM düzeyinde S3 erişimini kısıtlarken analitik ekiplerine Lake Formation izinleri verin.
Karar kriterleri:
- Birçok tüketici arasında merkezi, sütun düzeyinde ve etiket tabanlı kontrollere ihtiyacınız olduğunda ve yönetişim/denetlenebilirlik zorunlu olduğunda Lake Formation’ı kullanın.
- Erişim kontrolü ihtiyaçlarınız basitse (bucket düzeyinde), IAM+S3 politikaları yeterli olabilir; ayrıntılı, katalog entegreli kontroller için Lake Formation’ı kullanın.
Athena ve Glue katalog entegrasyonu
Athena, meta veriler için Glue Veri Kataloğu’na (Glue Data Catalog) bağımlıdır. Yaygın entegrasyon noktaları ve operasyonel ayarlar:
- Partition yönetimi: Athena, partition’ları Glue kataloğundan okur. Yeni S3 partition’ları eklendiğinde, kataloğu güncellemeniz gerekir. Seçenekler:
- Athena’dan
undefined
komutunu çalıştırın veya tablonun konumu altında keşfedilen partition’ları yenilemek için bu SQL ile
undefined
kullanın.
- S3 PUT olaylarında partition’ları programatik olarak eklemek için
undefined
kullanın (olay güdümlü akışlar için önerilir).
undefined
,
undefined
,
undefined
ve
undefined
gibi tablo özelliklerini ayarlayarak partition projeksiyonu kullanın — bu, Glue aramalarını tamamen ortadan kaldırır ve çok yüksek partition sayıları için zorunludur.
- Sorgu performansı ve maliyet dengeleri:
- Partition projeksiyonu, Glue API çağrılarını ortadan kaldırır ve çok sayıda küçük partition için gecikmeyi önemli ölçüde azaltır, ancak deterministik partition adlandırması gerektirir.
undefined
, ara sıra yapılan anlık (ad-hoc) eklemeler için basittir ancak büyük veri setleri için yavaş olabilir.
Glue DataBrew tamamlayıcısı:
- Kodsuz profil oluşturma ve dönüşümler için DataBrew kullanın; DataBrew’u Glue Katalog tablolarına veya S3 yollarına yönlendirin, profil oluşturma işlerini çalıştırın, reçeteler (recipe) oluşturun ve çıktıyı S3’e geri veya yeni Glue tabloları olarak yayınlayın.
- Keşif amaçlı kalite kontrolleri için ve karmaşık Spark mantığı gerektiğinde daha sonra Glue ETL’de üretime alınacak dönüşümleri oluşturmak için DataBrew kullanın.
Karar kriterleri:
- Partition’lar çok sayıda olduğunda ve öngörülebilir bir şemayı (tarih tabanlı / sayısal) takip ettiğinde partition projeksiyonu kullanın.
- Olay güdümlü, neredeyse gerçek zamanlı veri alımı (ingestion) için programatik Glue partition güncellemelerini kullanın.
undefined
komutunu yalnızca ara sıra yapılan geriye dönük doldurmalar (backfill) için veya otomasyon mevcut olmadığında çalıştırın.
Yaygın Tuzaklar ve Karar Kriterleri
- Athena sorguları, S3’e veri geldikten sonra Glue partition’ları güncellenmediği için başarısız olur: yalnızca crawler’lara güvenmekten kaçının; ya ara sıra güncellemeler için
undefined
çalıştırın, S3 olaylarında
undefined
çağırın ya da büyük ve öngörülebilir partition setleri için partition projeksiyonu uygulayın.
- Yanlış şema kayıt defteri (schema registry) uyumluluk modunu seçmek tüketicileri (consumer) bozar: eklemeli değişiklikler ve tüketici istikrarı için BACKWARD‘ı, üreticilerin (producer) eski tüketicilerle uyumlu kalması gerektiğinde FORWARD‘ı ve her iki yönün de güvenli olması gerektiğinde FULL‘u seçin; değişiklikleri CI’da tüketici şemalarına karşı doğrulayın.
- Glue Veri Kataloğu’nun global olduğunu varsaymak: katalog bölgeseldir (regional). Bölgeler arası erişim için replikasyon tasarlayın veya hedef bölgelerde kataloglar çalıştırın; Glue meta verilerinin bölgeler arasında otomatik olarak kullanılabilir olduğunu varsaymayın.
- IAM S3 erişimi verip Lake Formation izinlerini vermemek: Athena ve Lake Formation, katalog düzeyinde izinleri zorunlu kılar; her zaman IAM politikalarına ek olarak Lake Formation izinlerini (ve kullanılıyorsa LF-Tag’leri) verin.
- Aşırı partition granüleritesi: çok fazla küçük partition kullanmak, sorgu planlamasına ve meta veri yüküne (overhead) zarar verir; daha kaba partition’ları (dakikalık yerine günlük gibi) tercih edin veya partition projeksiyonu kullanın.
- DataBrew rol izinlerini ihmal etmek: DataBrew işleri, Glue ve S3 izinlerine sahip bir hizmet rolü (service role) gerektirir; rolün, veri setleri şifreliyse
undefined
, S3 okuma/yazma ve
undefined
izinlerine sahip olduğundan emin olun.
Pratik Problem: Kullanım Senaryosu
Acme Retail, S3’e saatlik satış dosyalarını tarih/saat partition’ları ile almaktadır ve analistler verileri Athena’da sorgulamaktadır; yüklemeden sonra, partition’lar Glue Veri Kataloğu’nda görünmediği için kullanıcılar sorgu hataları ve eski sonuçlar görmektedir.
- Yeni partition’ı anında kaydetmek için
undefined
komutunu çağıran bir Lambda fonksiyonunu tetikleyecek bir S3 PUT olay bildirimi uygulayın. 2. Eski veriler veya geriye dönük doldurmalar (backfill) için,
undefined
komutunu çalıştıran bir Athena sorgusu zamanlayın veya bilinen aralıklar için hedeflenmiş bir
undefined
çalıştırın. 3. Partition’lar katı bir tarih/saat adlandırma kuralını takip ediyorsa, katalog yenileme maliyetlerini ortadan kaldırmak için Glue tablosunda partition projeksiyonunu etkinleştirin (
undefined
olarak ayarlayın ve yıl/ay/gün/saat özelliklerini tanımlayın). 4. Tabloya hassasiyet için LF-Tag’ler ekleyin ve Athena sorgularına izin verilmesi ve yönetilmesi için analistlere Lake Formation izinleri verin. 5. Şema kaymasını (schema drift) yakalamak için hazırlık (staging) ortamındaki yeni saatlik dosyaları profilini çıkarmak için Glue DataBrew kullanın; şema değişiklikleri bulunursa, Glue Schema Registry’de yeni şema versiyonlarını kaydedin ve üretime sunmadan önce uyumluluğu doğrulayın.
Gerekçe: otomatik partition kaydı veya projeksiyonu, Athena sorgularını bozan meta veri gecikmesini ortadan kaldırır; bunu Lake Formation yönetişimi ile birleştirmek güvenli erişim sağlarken, DataBrew güdümlü profil oluşturma şema kaymasını erken yakalar ve Glue Schema Registry ise akış (streaming) ve toplu (batch) tüketicileri uyumsuz şema değişikliklerinden korur.
← Veri Depolama ve Göl Mimarisi · Tüm alanlar · Veri Dönüşümü ve İşleme →
Bu soruları çözün → · ExamRoll.io’da süreli pratik →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Sınavınızı geçin →