Aracılığıyla paylaş


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 hesaplayan 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ü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.
  • Her zaman doğrudurlar. Tüm gerekli veriler, geç ulaşsa veya sipariş dışı olsa bile işlenir.
  • Bunlar genellikle artımlıdır. Databricks, malzemeleştirilmiş bir görünümü güncelleştirme maliyetini en aza indiren 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.

Gerçekleştirilmiş görünümlerin 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ı

Databricks SQL kullanarak bir materyalize edilmiş görünümü bir işlem hattının dışında oluşturduğunuzda, Azure Databricks bu görünümü güncellemek için 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. Databricks SQL'de oluşturulan gerçekleştirilmiş görünümler MV/ST türüne sahiptir.

Databricks, artımlı güncelleştirmeler için kullanılan 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. Önbelleğe alınan veriler bulut depolama alanında somutlaştırılır.

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

Piton

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. Databricks, gerçekleştirilmiş görünümü güncel tutmak için yalnızca işlenmesi gereken verileri işlemeye çalışır. Gerçekleştirilmiş görünüm, sorgu sonucunu sıfırdan tam olarak yeniden derlemeyi gerektirse bile her zaman doğru sonucu gösterir, ancak databricks genellikle 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ın güncelleştirildiğini görüyoruz.

Malzemeleşmiş görünüm 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.

Malzemeleşmiş 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.