Gerçekleştirilmiş görünümler

Standart görünümler gibi gerçekleştirilmiş görünümler de sorgunun sonuçlarıdır ve bunlara tabloyla aynı şekilde erişilir. Her sorguda sonuçları yeniden derleyen standart görünümlerden farklı olarak, gerçekleştirilmiş görünümler sonuçları önbelleğe alır ve bunları belirli bir aralıkta yeniler. Gerçekleştirilmiş görünüm önceden derlendiğinden, bu görünüme yönelik sorgular normal görünümlere göre çok daha hızlı çalıştırılabilir.

Gerçekleştirilmiş görünümlerin ve akış tablolarının veya görünümlerinin ne zaman kullanılacağı konusunda rehberlik için bkz. İşlem hatları nedir?.

Gerçekleştirilmiş görünüm, deklaratif bir işlem hattı nesnesidir. Bu sorguyu tanımlayan bir sorgu, güncelleştirmek için bir akış ve hızlı erişim için önbelleğe alınan sonuçları içerir. Gerçekleştirilmiş bir görünüm:

  • Yukarı akış verilerindeki değişiklikleri izler.
  • Tetikleyicide, değiştirilen verileri artımlı olarak işler ve gerekli dönüştürmeleri uygular.
  • Çıkış tablosunu, belirtilen yenileme aralığına göre kaynak verilerle eşitlenmiş olarak korur.

Gerçekleştirilmiş görünümler birçok dönüşüm için iyi bir seçimdir:

  • Satırlar yerine önbelleğe alınan sonuçlara mantık uygularsınız. Aslında, bir sorgu yazmanız yeterlidir.
  • Güncellendikleri anda her zaman doğru olurlar. Tüm gerekli veriler, geç ulaşsa veya sipariş dışı olsa bile işlenir.
  • Bunlar genellikle artımlıdır. Azure Databricks, somutlaştırılmış görünümü güncelleme maliyetini en aza indiren en uygun stratejiyi seçmeye çalışır.

Gerçekleştirilmiş görünümler nasıl çalışır?

Aşağıdaki diyagramda maddileştirilmiş görünümlerin nasıl çalıştığı gösterilmektedir.

Mv'lerin nasıl çalıştığını gösteren diyagram

Gerçekleştirilmiş görünümler tek bir işlem hattı tarafından tanımlanır ve güncelleştirilir. Boru hattının kaynak kodunda malzemeleştirilmiş görünümleri belirgin bir şekilde tanımlayabilirsiniz. İşlem hattı tarafından tanımlanan tablolar başka bir işlem hattı tarafından değiştirilemez veya güncelleştirilemez.

Uyarı

Bir Lakeflow işlem hattının dışında bağımsız bir somutlaştırılmış görünüm oluşturduğunuzda Azure Databricks, görünümü güncellemek üzere kullanılan bir işlem hattı oluşturur. çalışma alanınızın sol gezinti bölmesinde İşler ve İşlem Hatları'nı seçerek işlem hattını görebilirsiniz. Görünümünüze Boruhattı türü sütununu ekleyebilirsiniz. İşlem hattında tanımlanan gerçekleştirilmiş görünümler ETL tipine sahiptir. Bağımsız somutlaştırılmış görünümler, MV/ST türündedir. Bkz. Bağımsız maddileştirilmiş görünümleri kullanma.

Azure Databricks, artımlı güncelleştirmeler için sorgu ve ek sistem görünümleri dahil olmak üzere görünüm hakkındaki meta verileri depolamak için Unity Kataloğu'nu kullanır. Azure Databricks, önbelleğe alınan verileri bulut depolama alanında oluşturur. Azure Databricks bazı yedekleme verilerini katalogda __databricks_internal depolar. __databricks_internal Bkz. Katalog.

Uyarı

Azure Databricks, somutlaştırılmış görünüm artımlı yenilemeyi desteklemek için iç tablolar oluşturur. Bu tablolar system.information_schema.tables içinde bulunur ancak Katalog Gezgini veya diğer çalışma alanı kullanıcı arabirimi yüzeylerinde görünmez.

Aşağıdaki örnek iki tabloyu birleştirir ve gerçekleştirilmiş bir görünüm kullanarak sonucu güncel tutar.

Python

from pyspark import pipelines as dp

@dp.materialized_view
def regional_sales():
  partners_df = spark.read.table("partners")
  sales_df = spark.read.table("sales")

  return (
    partners_df.join(sales_df, on="partner_id", how="inner")
  )

SQL

CREATE OR REPLACE MATERIALIZED VIEW regional_sales
  AS SELECT *
  FROM partners
    INNER JOIN sales ON
      partners.partner_id = sales.partner_id;

Otomatik artımlı güncelleştirmeler

Gerçekleştirilmiş bir görünümü tanımlayan işlem hattı tetiklendiğinde, görünüm genellikle artımlı olarak otomatik olarak güncel tutulur. Azure Databricks yalnızca gerçekleştirilmiş görünümü güncel tutmak için işlenmesi gereken verileri işlemeye çalışır. Gerçekleştirilmiş görünüm, sorgu sonucunu sıfırdan tamamen yeniden derlemeyi gerektirse bile her zaman doğru sonucu gösterir, ancak genellikle Azure Databricks gerçekleştirilmiş bir görünümde yalnızca artımlı güncelleştirmeler yapar ve bu da tam yeniden derlemeden çok daha düşük maliyetli olabilir.

Aşağıdaki diyagramda, sales_report ve clean_customers adlı iki yukarı akış tablosunun birleştirilmesi ve ülkeye göre gruplandırılması sonucu olan clean_transactions adlı gerçekleştirilmiş bir görünüm gösterilmektedir. Yukarı akış işlemi üç ülkeye (ABD, Hollanda, İngiltere) 200 satır clean_customers ekler ve bu yeni müşterilere karşılık gelen 5.000 satırı clean_transactions güncelleştirir. Gerçekleştirilmiş sales_report görünüm, yalnızca yeni müşterileri veya ilgili işlemleri olan ülkeler için artımlı olarak güncelleştirilir. Bu örnekte, satış raporunun tamamı yerine üç satır güncelleştirilir.

MV artımlı güncelleştirme örneği

Artımlı yenilemenin gerçekleştirilmiş görünümlerde nasıl çalıştığı hakkında daha fazla bilgi için bkz. Gerçekleştirilmiş görünümler için artımlı yenileme.

Somutlaştırılmış görünüm sınırlamaları

Gerçekleştirilmiş görünümlerin sınırlamaları şunlardır:

  • Güncellemeler doğru sorgular oluşturduğundan, girişlerde yapılan bazı değişiklikler malzeme görünümünün tamamen yeniden hesaplanmasını gerektirebilir, bu da pahalı olabilir.
  • Düşük gecikmeli kullanım örnekleri için tasarlanmamıştır. Gerçekleştirilmiş görünümü güncelleştirme gecikmesi milisaniye değil saniye veya dakika cinsindendir.
  • Tüm hesaplamalar artımlı olarak hesaplanamaz.
  • Azure Databricks, gerçekleştirilmiş görünümde kullanılan bir UDF'nin davranışında bir değişiklik algılandığında, güncellenmiş UDF'yi uygulamak için tam yenileme yapmaya çalışır. Ancak, diğer işlevleri veya kitaplıkları çağıran UDF'ler, Azure Databricks'in tanımadığı şekillerde davranışı değiştirebilir. Buna örnek olarak çağrılan bir kitaplık yükseltilir. UDF'nin davranışı değiştiğinde, bunu kullanan gerçekleştirilmiş görünümlerde tam yenileme gerçekleştirmek sizin sorumluluğunuzdadır.
  • Maddileştirilmiş görünümler, CLONE öğesini desteklemez. Somutlaştırılmış bir görünümü, derin veya sığ bir klonun kaynağı ya da hedefi olarak kullanamazsınız. Daha fazla bilgi için bkz . Sınırlamalar.
  • Somutlaştırılmış bir görünümün temelindeki işlem hattını görüntülemek için, yönetici olmayan bir kullanıcının, işlem hattı üzerindeki izinlere ek olarak somutlaştırılmış görünüm üzerinde REFRESH ayrıcalığına da sahip olması gerekir. Bkz . İşlem hattını ve çıkışını kimler görüntüleyebilir?.

Ek kaynaklar