Amazon DEA-C01: Veri Alımı ve Toplama — Ç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.
API tabanlı ve olay güdümlü veri alımı desenleri
API’lar ve olaylar, push tabanlı veri alımı ve orkestrasyon içindir. Yaygın desenler:
- API Gateway -> Lambda -> Firehose/Kinesis: istemcilerin JSON olayları gönderdiği (push) durumlar için uygundur. Geri basınç (backpressure) sağlamak ve idempotency başlıklarını zorunlu kılmak için API Gateway kısıtlamasını (throttling) ve Lambda eş zamanlılık kontrollerini kullanın.
- S3 olay bildirimleri: konsol veya aws s3api put-bucket-notification-configuration komutu aracılığıyla nesne oluşturma olaylarını Lambda, SQS veya SNS’e göndermek için bucket bildirimlerini yapılandırın; tetikleyicileri sınırlamak için ön ek/son ek (prefix/suffix) filtreleri kullanın. Fan-out (dağıtım) için, aynı olayı birden çok tüketiciye sıkı bir bağ olmadan (decoupled) iletmek üzere S3 -> SNS konusu -> birden çok SQS kuyruğu/Lambda abonesi şeklinde yönlendirme yapın.
- Dayanıklı, birbirinden bağımsız (decoupled) veri alımı için SQS ve SNS: SQS, görünürlük zaman aşımı (visibility timeout) ile pull tabanlı işçi (worker) işlemesi için; SNS ise push tabanlı fan-out (dağıtım) için kullanılır.
Operasyonel hususlar ve CLI desenleri:
- Lambda/SQS hataları için DLQ’ları (Dead-Letter Queue) kullanın; SNS aboneliklerinde yeniden deneme politikasını (retry policy) yapılandırın.
- API’lardan gelen yüksek hacimli akışlar için, API istemcilerini engellemekten kaçınmak amacıyla senkronize alt sistem (downstream) yazmaları yerine Kinesis veya Firehose’a toplu (batching) olarak göndermeyi tercih edin.
Yaygın Hatalar ve Karar Kriterleri
- Kinesis Data Streams (yeniden oynatılabilir, shard yönetimi gerektirir) ile Firehose’u (yönetilen teslimat, yeniden oynatma yok) karıştırmak: yeniden oynatma (replay) veya birden çok tüketiciye ihtiyacınız olduğunda KDS’yi seçin; basit teslimat hatları için Firehose’u seçin.
- Glue crawler IAM izinlerini unutmak: crawler’ların Data Catalog’u doldurabilmesi için her zaman s3:GetObject/s3:ListBucket ve glue:CreateTable/UpdateTable/DeleteTable izinlerini veren bir IAM rolü atayın.
- DMS CDC için ikili günlük kaydının (binary logging)/mantıksal replikasyonun (logical replication) eksik olması: CDC görevlerini başlatmadan önce MySQL’de binlog’u (ROW formatında) veya PostgreSQL’de mantıksal replikasyonu ve wal2json’u etkinleştirin.
- Düşük bölüm anahtarı (partition-key) kardinalitesinin “hot shard"lara (yoğun kullanılan shard’lar) neden olması: hash’leme yoluyla bölüm anahtarı kardinalitesini artırın, yüksek kardinaliteli nitelikler ekleyin veya shard sayısını artırın; Put/Get kısıtlama (throttling) metriklerini izleyin.
- Firehose’da aşırı arabelleğe alma (overbuffering) veya yanlış yapılandırılmış arabelleğe almanın yüksek gecikmeye yol açması: kabul edilebilir gecikme ve istek hacmine göre buffer_size ve buffer_interval ayarlarını yapın.
- DLQ veya yeniden deneme olmadan S3 olay bildirimlerine güvenmek: kaçırılan olayları önlemek ve dayanıklı bir fan-out sağlamak için SNS/SQS fan-out veya DLQ’lu Lambda kullanın.
Pratik Problem: Kullanım Senaryosu
RetailCo, mobil tıklama akışlarını (yüksek hacimli, gerçek zamanlı) ve gecelik ürün katalog dosyalarını toplar; gerçek zamanlı panolara ve birleştirilmiş bir analitik gölüne (analytics lake) ihtiyaçları vardır.
- Tıklama akışlarını, kullanıcı oturumu + hash’lenmiş shard son ekinden türetilen bölüm anahtarları (partition key) ile Kinesis Data Streams’e alın; gerçek zamanlı işleme için Kinesis Data Analytics veya Lambda/Kinesis Client Library kullanarak tüketiciler (consumer) oluşturun.
- Zenginleştirilmiş akış çıktılarını S3’ye (Parquet formatında) kalıcı olarak yazmak, Snappy ile sıkıştırmak ve isteğe bağlı olarak analiz için Redshift Spectrum’a yüklemek üzere bir dönüşüm Lambda’sı ile Kinesis Data Firehose kullanın.
- Gecelik katalog dosyalarını S3’de raw/ dizinine yerleştirin ve Glue Data Catalog’u güncellemek için zamanlanmış bir Glue crawler çalıştırın, ardından işlenmiş (curated) alanda bölümlenmiş Parquet’e dönüştürmek için Glue ETL işlerini çalıştırın.
- Hafif meta veri güncellemelerini tetiklemek veya önbellekleri geçersiz kılmak için S3 olay bildirimleri -> SNS -> Lambda kullanın; dayanıklı alt sistem (downstream) işlemesi için teslimatı SQS’e yönlendirin.
- Kinesis shard metriklerini (IncomingBytes, IncomingRecords, PutRecords.Success) izleyin ve büyümeyi yönetmek için UpdateShardCount veya On-Demand akışlarını kullanın; CloudWatch alarmlarını etkinleştirin.
AWS en iyi pratiklerinin gerekçesi: gerçek zamanlı ve toplu (batch) yolları ayırmak, yeniden oynatma (replay) ve tüketici izolasyonu gerektiğinde Kinesis Data Streams kullanmak, S3/hedeflere yönetilen teslimat için Firehose kullanmak ve Athena/Redshift ile keşif ve sorgu entegrasyonu için bir Glue Data Catalog sürdürmek.
Tüm alanlar · Veri Depolama ve Göl Mimarisi →
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 →