Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hem REPLACE WHERE akışları hem de bağımsız maddeleştirilmiş görünümler, kaynak veri değiştikçe güncel kalan türetilmiş tabloları tutmanıza olanak tanır, ancak farklı sorunları çözür. Düzenli olarak bir zaman aralığının veya bir bölümün üzerine yazılan çoğu toplu çıkarma, dönüştürme ve yükleme (ETL) iş yükü için artımlı bir REPLACE WHERE akışı kullanın. Önceden hesaplanmış sonuçları dashboardlara ve raporlara sunan bir sorgu-hızlandırma katmanı için materyalize edilmiş görünümler kullanın.
Bu sayfa, bağımsız akış tablolarını ve somutlaştırılmış görünümleri kapsar. Lakeflow boru hattındaki REPLACE WHERE akışları için bkz. REPLACE WHERE akışları ile toplu işleme.
Toplu üzerine yazma işlemleri için REPLACE WHERE kullanın
REPLACE WHERE akışı yalnızca bir koşulla eşleşen satırları, örneğin zaman penceresi veya bölüm gibi yeniden hesaplar ve üzerine yazar. Diğer tüm satırlar dokunulmadan kalır. Akış, kaynak sorguyu sadece o yüklem aralığı için yeniden değerlendirdiğinden, her yenilemenin maliyeti tablonun büyüklüğüne değil, aralığın büyüklüğüne bağlıdır.
Somutlaştırılmış bir görünüm, tanımlayıcı sorgusunun tam sonucunu tutar. Azure Databricks, sorgu ve kaynak veri desteklediğinde somutlaştırılmış görünümü kademeli olarak yeniler, aksi takdirde tam yenileme çalıştırır. Bir yenilemenin artımlı olup olmadığı sorgu yapısına ve kaynak tablolara bağlıdır, bu yüzden her yenilemenin maliyetini tahmin etmek daha zordur. Bkz. Bağımsız somutlaştırılmış görünümler nasıl yenilenir?.
Sınırlı aralıklarda değişen toplu ETL veri modeli için, REPLACE WHERE akışı her yenilemede hangi satırların yeniden yazılacağını tam olarak kontrol etmenizi sağlar. Okuyucuların önceden hesaplanmış bir sonuca hızlı erişim ihtiyacı olduğunda somutlaştırılmış görünüm daha uygundur.
Yapıları madalyon katmanlarına eşleyin
Aşağıdaki tablo, bir madalyon mimarisinin her katmanını Databricks'in önerdiği yapıya eşler:
| Katman | İnşa etmek | Neden? |
|---|---|---|
| Bronze (ham veri alımı) | Lakeflow Connect veya Auto Loader ile Alım | Ham kayıtları geldikçe adım adım depolar, geçmişi yeniden işlemeden. |
| Gümüş (bilgiler) | Artımlı REPLACE WHERE akışı | Yalnızca etkilenen zaman pencereleri veya bölümleri için fact güncellemeleri, geç gelen veriler ve düzeltmelerin üzerine yazar. |
| Gümüş (boyutlar) |
AUTO CDC akış |
Otomatik olarak ekleme, güncelleme ve silme semantiği uygular ve yavaş değişen boyut (SCD) Tip 1 veya Tip 2 ile geçmişi korur. |
| Altın (agregasyonlar ve veri modelleri) | Artımlı REPLACE WHERE akışı | Sadece agregatlar ve modeller için predicate aralığını yeniden hesaplar, tam tablo yeniden hesaplamalarından kaçınır. |
| Sorgu hızlandırma ve sunma | gerçekleştirilmiş görünüm | Önceden hesaplanmış sonuçları gösterge panellerine ve raporlara sunar ve sorgu sonuçlarını güncel tutar. |
Karar kılavuzu
İki yapı arasında seçim yapmak için aşağıdaki rehberi kullanın.
Aşağıdaki durumlarda REPLACE WHERE akışı kullanın:
- Bir zaman penceresinin veya partisyonun periyodik toplu üzerine yazmalarını çalıştırın.
- Geç gelen verileri düzeltin.
- Uyumluluk silmelerini sınırlı bir aralığa uygulayın.
- Verileri bölüm seviyesinde yenileyin.
Aşağıdaki durumlarda somutlaştırılmış görünüm kullanın:
- Dashboard sorgularını hızlandırın.
- Önceden hesaplanmış agregasyonları okuyuculara sunun.
- Bir servis katmanı için sorgu sonuçlarını güncel tutun.
Örnek: REPLACE ile kademeli üzerine yazma WHERE
Aşağıdaki örnek, her yenilemede yalnızca son 7 günlük verinin üzerine yazan bir hedef tablo tanımlar. Yenileme sırasında, akış koşulla eşleşen satırları siler, aynı aralık için kaynak sorguyu yeniden hesaplar ve sonuçları ekler. Pencerenin dışındaki satırlar dokunulmamıştır:
CREATE OR REFRESH STREAMING TABLE payments_latest
FLOW REPLACE WHERE payment_date >= date_add(current_date(), -7) BY NAME
SELECT payment_id, booking_id, status, payment_date
FROM samples.wanderbricks.payments;
BY NAME sütunların konum yerine isimle eşleşmesi için gereklidir. Tam sözdizimi, yüklem geçersiz kılmaları, geri doldurmalar ve artımlı yenileme davranışı için, bağımsız akış tablolarına yönelik REPLACE WHERE akışlarına bakın.