Aracılığıyla paylaş


Ölçüm görünümleri için materyalleştirme

Önemli

Bu özellik Deneysel'dir.

Bu makalede, sorgu performansını hızlandırmak amacıyla metrik görünümler için malzemelemenin nasıl kullanılacağı açıklanmaktadır.

Ölçüt görünümleri için somutlaştırma, maddileştirilmiş görünümleri kullanarak sorguları hızlandırır. Lakeflow Spark Bildirimsel Boruhatları, belirli bir metrik görünümü için kullanıcı tanımlı malzeme edilmiş görünümleri koordine eder. Sorgu zamanında, sorgu iyileştiricisi, sorgu yeniden yazma olarak da bilinen otomatik toplam farkındalıklı sorgu eşleştirmeyi kullanarak metrik görünümündeki kullanıcı sorgularını en iyi maddeleştirilmiş görünüme akıllıca yönlendirir.

Bu yaklaşım, farklı performans hedeflerini sorgulamak için hangi toplama tablosunu veya gerçekleştirilmiş görünümü belirlemeniz gerekmediğinden, ön hesaplama ve otomatik artımlı güncelleştirmelerin avantajlarını sağlar ve ayrı üretim işlem hatlarını yönetme gereksinimini ortadan kaldırır.

Genel Bakış

Aşağıdaki diyagramda ölçüm görünümlerinin tanımı ve sorgu yürütmeyi nasıl işlediği gösterilmektedir:

Metrik görünümlerin oluşturma tanımı ve sorgu yürütme

Tanım aşaması

Malzemeleştirme ile bir ölçüm görünümü tanımladığınızda, CREATE METRIC VIEW veya ALTER METRIC VIEW boyutlarınızı, ölçülerinizi ve yenileme zamanlamanızı belirtir. Databricks, materyalize edilmiş görünümleri koruyan yönetilen bir işlem hattı oluşturur.

Sorgu yürütme

çalıştırdığınızda SELECT ... FROM <metric_view>, sorgu iyileştiricisi performansı iyileştirmek için toplamaya duyarlı sorgu yeniden yazmayı kullanır:

  • Hızlı yol: Uygun olduğunda önceden hesaplanmış materyalize görünümlerden veri okur.
  • Geri dönüş yolu: Gerçekleştirmeler mevcut olmadığında kaynak verilerden doğrudan okuma yapar.

Sorgu iyileştiricisi, gerçekleştirilmiş ve kaynak veriler arasında seçim yaparak performansı ve tazeliği otomatik olarak dengeler. Hangi yolun kullanıldığına bakılmaksızın sonuçları saydam bir şekilde alırsınız.

Gereksinimler

Metrik görünümlerin gerçekleştirilmesini kullanmak için:

  • Çalışma alanınızda sunucusuz işlem etkinleştirilmelidir. Bu, Lakeflow Spark Bildirimli İşlem Hatlarını çalıştırmak için gereklidir.
  • Databricks Runtime 17.2 veya üzeri.

Yapılandırma referansı

Gerçekleştirmeyle ilgili tüm bilgiler, ölçüm görünümü YAML tanımında adlı materialization üst düzey bir alanda tanımlanır.

Uyarı

Bu özellik kullanıma sunulduğunda, versiyon 1.1 metrik görünümleri, temel altyapıdaki işlem hattında aşağıdaki hatayı verebilir:

[METRIC_VIEW_INVALID_VIEW_DEFINITION] The metric view definition is invalid. Reason: Invalid YAML version: 1.1.

Bu durumda bunun yerine 0.1 sürümünü kullanın. Sürüm 0.1'in sürüm 1.1'de kullanılabilen bazı özellikleri desteklemediğini unutmayın. Ölçüm görünümleri için maddeleştirme, önümüzdeki birkaç hafta içinde tüm çalışma alanlarında kullanılabilir olacak.

alanı materialization aşağıdaki gerekli alanları içerir:

  • schedule: Gerçekleştirilmiş görünümlerdeki "schedule" yan tümcesi ile aynı söz dizimini destekler.
  • modu: olarak relaxedayarlanmalıdır.
  • materialized_views: Gerçekleştirilmesi gereken gerçekleştirilmiş görünümlerin listesi.
    • name: Gerçekleştirmenin adı.
    • boyutlar: Gerçekleştirilmesi gereken boyutların listesi. Yalnızca boyut adlarına doğrudan başvurulara izin verilir; ifadeleri desteklenmez.
    • ölçüler: Gerçekleştirilmesi gereken ölçülerin listesi. Yalnızca ölçü adlarına doğrudan başvurulara izin verilir; ifadeleri desteklenmez.
    • tür: Gerçekleştirilmiş görünümün toplanmış olup olmadığını belirtir. İki olası değeri kabul eder: aggregated ve unaggregated.
      • Eğer typeaggregated ise, en az bir boyut veya ölçü olmalıdır.
      • Eğer typeunaggregated ise, boyut veya ölçü tanımlanmamalıdır.

Uyarı

yanTRIGGER ON UPDATE tümcesi, ölçüm görünümlerinin gerçekleştirilmesi için desteklenmez.

Örnek tanım

version: 0.1

source: prod.operations.orders_enriched_view

filter: revenue > 0

dimensions:
  - name: category
    expr: substring(category, 5)

  - name: color
    expr: color

measures:
  - name: total_revenue
    expr: SUM(revenue)

  - name: number_of_suppliers
    expr: COUNT(DISTINCT supplier_id)

materialization:
  schedule: every 6 hours
  mode: relaxed

  materialized_views:
    - name: baseline
      type: unaggregated

    - name: revenue_breakdown
      type: aggregated
      dimensions:
        - category
        - color
      measures:
        - total_revenue

    - name: suppliers_by_category
      type: aggregated
      dimensions:
        - category
      measures:
        - number_of_suppliers

Mode

relaxed modunda, otomatik sorgu yeniden yazma, yalnızca aday gerçekleştirilmiş görünümlerin sorguyu karşılamak için gerekli boyutlara ve ölçülere sahip olup olmadığını doğrular.

Bu, birkaç denetimin atlandığı anlamına gelir:

  • Gerçekleştirilmiş görünümün güncel olup olmadığını kontrol eden bir kontrol mekanizması bulunmamaktadır.
  • Eşleşen SQL ayarlarına (örneğin, ANSI_MODE veya TIMEZONE) sahip olup olmadığınızı denetlemez.
  • Gerçekleştirilmiş görünümün belirleyici sonuçlar döndürdüğüne ilişkin denetimler yoktur.

Sorgu aşağıdaki koşullardan herhangi birini içeriyorsa, sorgu yeniden yazma işlemi gerçekleşmez ve sorgu kaynak tablolara geri döner:

  • Gerçekleştirilmiş görünümlerde satır düzeyi güvenlik (RLS) veya sütun düzeyi maskeleme (CLM).
  • Gerçekleştirilmiş görünümlerde olduğu gibi current_timestamp() belirlenemeyen işlevler. Bunlar ölçüm görünümü tanımında veya ölçüm görünümü tarafından kullanılan bir kaynak tabloda görünebilir.

Uyarı

Deneysel sürüm süresi boyunca relaxed desteklenen tek moddur. Bu denetimler başarısız olursa sorgu kaynak verilere geri döner.

Metrik görünümler için malzemeleştirme türleri

Metrik görünümler için kullanılabilecek gerçekleştirilmiş görünüm türleri, aşağıdaki bölümlerde açıklanmaktadır.

Toplanan tür

Bu tür, hedeflenen kapsam için belirtilen ölçü ve boyut birleşimleri için toplamaları önceden hesaplar.

Bu, belirli ortak toplama sorgu desenlerini veya pencere öğelerini hedeflemek için kullanışlıdır. Databricks, olası filtre sütunlarını materyalize edilmiş görünüm yapılandırmasına boyut olarak dahil etmenizi önerir. Olası filtre sütunları yan tümcesinde WHERE sorgu zamanında kullanılan sütunlardır.

Toplanmamış tür

Bu tür, toplanmamış veri modelinin tamamını (örneğin, source, join ve filter alanları), toplanmış türe kıyasla daha az performans gereksinimiyle daha geniş bir kapsama alanı sağlamak amacıyla oluşturur.

Aşağıdakiler doğru olduğunda bu türü kullanın:

  • Kaynak pahalı bir görünüm veya SQL sorgusudur.
  • Metrik görünümünüzde tanımlanan birleşimler pahalıdır.

Uyarı

Kaynağınız seçmeli filtre uygulanmadan doğrudan tablo başvurusuysa, toplanmamış bir gerçekleştirilmiş görünüm avantaj sağlamayabilir.

Gerçekleştirme yaşam döngüsü

Bu bölümde, yaşam döngüleri boyunca materyalleştirmelerin nasıl oluşturulduğu, yönetildiği ve yenilendiği açıklanmaktadır.

Oluşturma ve değiştirme

Ölçüm görünümü oluşturma veya değiştirme (CREATE, ALTER veya Katalog Gezgini kullanılarak) senkronize olarak gerçekleşir. Belirtilen tamamlanmış görünümler, Lakeflow Spark Bildirimli İşlem Hatları kullanılarak zaman uyumsuz olarak gerçekleştirilir.

Ölçüm görünümü oluşturduğunuzda, Databricks bir Lakeflow Spark Deklaratif Boru Hattı oluşturur ve eğer malzemeleşmiş görünümler belirtilmişse hemen bir ilk güncelleştirmeyi planlar. Metrik görünümü, kaynaktan sorgulamaya geri dönerek malzemeleşmeye gerek kalmadan sorgulanabilir durumda kalır.

Ölçüm görünümünü değiştirdiğinizde, ilk kez maddi hale getirmeyi etkinleştirmediğiniz sürece yeni güncellemeler zamanlanmaz. Gerçekleştirilmiş görünümler, bir sonraki zamanlanmış güncelleştirme tamamlanana kadar otomatik sorgu yeniden yazma için kullanılmaz.

Gerçekleştirme zamanlamasını değiştirmek yenilemeyi tetiklemez.

Yenileme davranışı üzerinde daha ayrıntılı denetim için bkz. El ile yenileme.

Altında yatan işlem hattını incele

Ölçüm görünümleri için malzemeleştirme, Lakeflow Spark Bildirimli İşlem Hatları kullanılarak uygulanır. Katalog Gezgini'ndeki Genel Bakış sekmesinde işlem hattının bağlantısı bulunur. Katalog Gezgini'ne nasıl erişeceğinizi öğrenmek için bkz. Katalog Gezgini nedir?.

Ölçüm görünümünde DESCRIBE EXTENDED çalıştırarak bu işlem hattına da erişebilirsiniz. Yenileme Bilgileri bölümü, işlem hattına bir bağlantı içerir.

DESCRIBE EXTENDED my_metric_view;

Örnek çıkış:

-- Returns additional metadata such as parent schema, owner, access time etc.
> DESCRIBE TABLE EXTENDED customer;
                      col_name                       data_type    comment
 ------------------------------- ------------------------------ ----------
                           ...                             ...        ...

 # Detailed Table Information
                           ...                             ...

                      Language                            YAML
              Table properties                             ...
 # Refresh information
         Latest Refresh status                       Succeeded
                Latest Refresh                     https://...
              Refresh Schedule                   EVERY 3 HOURS

El ile yenileme

Lakeflow Spark Deklaratif İşlem Hatları sayfasının bağlantısından, malzemeleri güncellemek için el ile bir hat güncellemesi başlatabilirsiniz. Bunu işlem hattı kimliğine göre bir API çağrısı kullanarak da düzenleyebilirsiniz.

Örneğin, aşağıdaki Python betiği bir işlem hattı yenilemesi başlatır:

from databricks.sdk import WorkspaceClient

client = WorkspaceClient()
pipeline_id = "01484540-0a06-414a-b10f-e1b0e8097f15"
client.pipelines.start_update(pipeline_id)

Bir Lakeflow işinin parçası olarak el ile yenileme yürütmek için yukarıdaki mantıkla bir Python betiği oluşturun ve python betiği türünde bir görev olarak ekleyin. Alternatif olarak, aynı mantıkla bir not defteri oluşturabilir ve Not Defteri türünde bir görev ekleyebilirsiniz.

Kademeli yenileme

Gerçekleştirilmiş görünümler mümkün olduğunda artımlı yenileme kullanır ve veri kaynakları ve plan yapısıyla ilgili olarak aynı sınırlamalara sahiptir.

Önkoşullar ve kısıtlamalar hakkında ayrıntılı bilgi için Maddileştirilmiş görünümler için artımlı yenileme konusuna bakın.

Otomatik sorgu yeniden yazma

Malzemeleşmiş bir metrik görünümüne yapılan sorgular, onun malzemeleşmelerini mümkün olduğunca kullanmaya çalışır. İki sorgu yeniden yazma stratejisi vardır: tam eşleşme ve toplanmamış eşleşme.

Toplamaya duyarlı sorgu yeniden yazma

Ölçüm görünümünü sorgulama yaptığınızda, optimizör sorguyu ve mevcut kullanıcı tanımlı materyalizasyonları analiz eder. Sorgu, aşağıdaki algoritmayı kullanarak temel tablolar yerine en iyi materyalizasyonda otomatik çalışır.

  1. İlk olarak tam eşleşmeyi dener.
  2. Toplanmamış bir malzemeleştirme varsa, toplanmamış bir eşlemeyi dener.
  3. Sorgu yeniden yazma işlemi başarısız olursa, sorgu doğrudan kaynak tablolardan okunur.

Uyarı

Sorgu yeniden yazmanın devreye girebilmesi için önce malzemeleşmelerin tamamlanması gerekir.

Sorgunun malzeme edilmiş görünümleri kullandığından emin olun

Sorgunun materyalize edilmiş bir görünüm kullanıp kullanmadığını denetlemek için sorgunuzun planını görmek için sorgunuzda EXPLAIN EXTENDED komutunu çalıştırın. Sorgu malzemeleşmiş görünümler kullanıyorsa, yaprak düğüm, YAML dosyasından gerçekleştirmenin adını içerir ve __materialization_mat___metric_view.

Alternatif olarak, sorgu profili aynı bilgileri gösterir.

Tam eşleşme

Tam eşleşme stratejisine uygun olmak için sorgunun gruplama ifadelerinin malzeme boyutlarıyla tam olarak eşleşmesi gerekir. Sorgunun toplama ifadeleri, gerçekleştirme ölçülerinin bir alt kümesi olmalıdır.

Toplanmamış eşleşme

Birleştirilmemiş bir materyalizasyon mevcutsa, bu strateji her zaman uygundur.

Billing

Gerçekleştirilmiş görünümlerin yenilenmesi, Lakeflow Spark Bildirimli İşlem Hatları kullanım ücretlerine neden olur.

Bilinen kısıtlamalar

Metrik görünümlerinin materyalizasyonu için aşağıdaki kısıtlamalar geçerlidir.

  • Başka bir ölçüm görünümünü kaynak olarak kullanan bir gerçekleştirme özelliğine sahip ölçüm görünümünde, toplanmamış bir gerçekleştirme yapılamaz.