Google PDE: BigQuery Analitiği ve Veri Ambarı Mühendisliği — Çalışma kılavuzu

Şunun bir parçası: Google Professional Data Engineer — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Google sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.

Genel Bakış

BigQuery; depolamayı işlem gücünden ayıran, neredeyse sonsuz ölçek, ANSI SQL ve entegre yönetişim sağlayan sunucusuz, sütunlu bir MPP analitik ambarıdır. BigQuery üzerinde ambar mühendisliği; şema tasarımı (bölümleme, kümeleme, denormalizasyon ve normalizasyon karşılaştırması, iç içe geçmiş kayıtlar), veri alım (ingestion) desenleri (toplu yüklemeler, akış, Storage Write API) ve iş yükü yönetimi (isteğe bağlı (on-demand) ve kapasite tabanlı sürümler ve rezervasyonlar) arasında bir denge kurar. Taranan bayt miktarını en aza indirmek ve gecikme süresini azaltmak için güçlü güvenlik (yetkilendirilmiş görünümler, satır/sütun politikaları, politika etiketleri), maliyet kontrolleri ve performans araçları bir arada bulunur. Bu bölüm, üretim ortamında öngörmeniz gereken temel tasarım, operasyonlar ve hata modlarını kapsar.

Depolama ve Anlambilim: Veri Kümeleri, Tablolar, Görünümler ve Göl Erişimi

Sorgu Optimizasyonu ve İş Yükü Yönetimi

undefined

Veri Alımı, Federasyon ve Kurtarma

undefined

Güvenlik, Yönetişim ve Maliyet Kontrolü

Pratik Problem Senaryosu

NovaCare Health, bölgesel bir teletıp platformu işletmektedir. Tek tablolu bir patient_and_visit tasarımı pilot projeyi desteklemişti, ancak 100 kat ölçekte raporlar zaman aşımına uğruyor, akış yoluyla yapılan upsert (güncelleme/ekleme) işlemlerinden dolayı yinelenen kayıtlar ortaya çıkıyor ve iş ortakları katı veri izolasyonu talep ediyor.

Yaklaşım:

  1. Şemayı ve yerleşimi yeniden tasarlayın

    • Normalleştirilmiş temel tablolar oluşturun: patients(patient_id, demographics, updated_at) ve visits(visit_id, patient_id, visit_ts, metrics, updated_at).
    • visits tablosunu DATE(visit_ts) üzerinde bölümlenmiş, patient_id ve visit_id’ye göre kümelenmiş bir tablo yapın. Pano hızını artırmak için küçük referans boyutlarını (dimensions) visits tablosu içinde denormalize edilmiş olarak tutun.
    • Gerekçe: Normalleştirme, tek bir yoğun kullanılan (hot) tablo üzerindeki pahalı self-join’leri ve yoğun satır güncellemelerini önler. Bölümleme, geçmişe yönelik taramaları ayıklar (pruning); kümeleme, patient_id üzerindeki join’leri ve filtreleri bir arada konumlandırarak shuffle’ı azaltır.
  2. Storage Write API ile veri alın ve tekrarlanabilirliği (idempotency) sağlayın

    • Gelen olayları ayrıştırmak, doğrulamak ve tekrarlanabilir ofsetlerle (idempotent offsets) Storage Write API’deki adlandırılmış akışlara yazmak için bir Dataflow pipeline’ı kullanın.
    • Hatalı biçimlendirilmiş olayları, incelenmek üzere bir dead-letter BigQuery tablosuna yönlendirin.
    • Gerekçe: Storage Write API, eski (legacy) akış yöntemlerine göre daha yüksek verim, daha düşük gecikme ve daha iyi tekilleştirme garantileri sunar. Dead-lettering, iş ortağı veri kalitesi sorunlarına ilişkin görünürlüğü korur.
  3. Sorgularda güncellik ve tekilleştirme için tasarım yapın

    • Etkileşimli analitik için, en son bölümü sorgulamadan önce kısa bir filigran (watermark) ekleyin (örneğin, gözlemlenen kullanılabilirliğin 2 katı); veya devam eden (in-flight) satırları hariç tutmak için _PARTITIONDATE’e göre partition_date <= CURRENT_DATE() koşuluyla filtreleyin.
    • Kaynak sistemdeki yeniden denemeleri tolere etmesi gereken görünümlerde ROW_NUMBER() OVER (PARTITION BY visit_id ORDER BY event_ts DESC) = 1 kullanın.
    • Gerekçe: Akış, kısa bir aralık için nihai tutarlıdır (eventually consistent). Filigranlama ve pencere tabanlı tekilleştirme, panoları geçici boşluklardan ve yinelenen kayıtlardan korur.
  4. Materyalize görünümlerle yaygın toplu işlemleri (aggregates) hızlandırın

    • DATE(visit_ts) ve hasta kohortlarına göre gruplandırılmış günlük KPI’lar için visits tablosu üzerinde bölümle hizalanmış MV’ler oluşturun. Koşul ifadelerinin (predicates) yeniden yazımla uyumlu olduğundan emin olun.
    • Gerekçe: MV’ler, tekrarlanan raporlar için gecikmeyi ve taranan bayt miktarını azaltır; BigQuery, MV’yi şeffaf bir şekilde kullanmak için sorguları yeniden yazar.
  5. Kiracı (tenant) izolasyonunu ve ayrıntılı güvenliği uygulayın

    • Her iş ortağını özel bir veri kümesine yerleştirin. İş ortağı gruplarına en az ayrıcalık ilkesine uygun veri kümesi rolleri verin.
    • Ham tabloları açığa çıkarmadan, paylaşılan, iş ortakları arası karşılaştırmalar (benchmarks) için yetkilendirilmiş görünümler yayınlayın.
    • PII sütunlarına politika etiketleri uygulayın ve dahili çok kiracılı (multi-tenant) analitik için erişimi partner_id’ye göre kısıtlamak amacıyla visits tablosuna satır erişim politikaları ekleyin.
    • Gerekçe: Kiracı başına veri kümesi segmentasyonu, yetkilendirilmiş görünümler ve politika etiketleri ile birleştiğinde, özel olarak seçilmiş paylaşıma olanak tanırken en az ayrıcalık ilkesini uygular.
  6. İş yüklerini sürümler (editions), rezervasyonlar ve otomatik ölçeklendirme (autoscaling) ile yönetin

    • BigQuery sürümlerinde kapasite satın alın ve iki rezervasyon oluşturun: etl (Dataflow hedefleri, zamanlanmış dönüşümler) ve bi (geçici/raporlama). Projeleri buna göre atayın ve ani yükselişleri karşılamak için otomatik ölçeklendirmeyi etkinleştirin.
    • ELT sorgularını net SLA’larla toplu (batch) olarak zamanlayın; etkileşimli projeler için maximum_bytes_billed parametresini ayarlayın.
    • Gerekçe: Ayrı rezervasyonlar, ETL’in BI kaynaklarını tüketmesini (starving) önler. Otomatik ölçeklendirme, aşırı kaynak ayırmadan anlık yoğun yüklere uyum sağlar.
  7. Maliyeti yönetin ve kullanımı gözlemleyin

    • visit_ts üzerinde filtrelemeyi zorunlu kılın; paylaşılan görünümlerde SELECT * kullanımını reddedin. Ayıklanmamış taramaları ve çarpık join’leri tespit etmek için INFORMATION_SCHEMA.JOBS kullanın.
    • Beklenmedik artışlar için izleme uyarılarını tetiklemek amacıyla, visits üzerindeki insert işlerine göre filtrelenmiş bir log sink ile BigQuery denetim günlüklerini Pub/Sub’a aktarın.
    • Gerekçe: Bayt ayıklama (byte-pruning) ve sütun projeksiyonu maliyeti kontrol eder; denetim günlükleri, erişim modellerini ve anormallikleri neredeyse gerçek zamanlı olarak ortaya çıkarır.
  8. Kurtarma ve geriye dönük veri doldurma (backfill) işlemlerini planlayın

    • Uyumluluk ve zaman yolculuğu (time-travel) ihtiyaçlarıyla uyumlu varsayılan tablo sona erme politikalarını etkinleştirin. Büyük düzenlemeler için bir anlık görüntü (snapshot) oluşturun, değişiklikleri çalıştırın ve gerekirse hızlıca geri alın. Depolama alanını kopyalamadan dev/test amaçlı ’eğer-olursa’ (what-if) analizleri için tablo klonlarını kullanın.
    • Gerekçe: Anlık görüntüler ve klonlar hızlı, alan açısından verimli güvenlik ağları sağlar; zaman yolculuğu ise küçük düzeltici geri yüklemeleri kapsar.
  9. Veri ambarı içi ML’i entegre edin

    • İşlenmiş özellikleri (engineered features) bölümlenmiş tablolarda saklayın ve yeniden kabul riskini tahmin etmek için BigQuery ML sınıflandırma modellerini eğitin. Vertex AI üzerinde barındırılan harici modeller için, uzak modeller (remote models) oluşturun ve düşük gecikmeli join’ler için tahminleri kümelenmiş bir tabloda önbelleğe alın.
    • Gerekçe: ML’i veriye yakın tutmak, veri hareketini ve yönetişim karmaşıklığını azaltır; uzak çıkarım (remote inference) sonuçlarını önbelleğe almak, gecikmeyi ve maliyeti amorti eder.

Bu tasarımla NovaCare, 100 kat yük altında öngörülebilir performans, güçlü kiracı izolasyonu ve yönetilen maliyetler elde ederken, düşük gecikmeli analitik ve tekrarlanabilir kurtarma yeteneklerini korur.


Veri Depolama · Tüm alanlar · Dataflow ve Apache Beam ile Akış İş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 →

Google'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar