Aracılığıyla paylaş


Databricks SQL'de gerçekleştirilmiş görünümleri kullanma

Bu makalede, performansı artırmak ve veri işleme ve analiz iş yüklerinizin maliyetini azaltmak için Databricks SQL'de gerçekleştirilmiş görünümlerin nasıl oluşturulacağı ve kullanılacağı açıklanmaktadır.

Not

Gerçekleştirilmiş görünümünüzle Azure Özel Bağlantı bir bağlantı kullanmanız gerekiyorsa Databricks temsilcinize başvurun.

Önemli

Databricks SQL'de oluşturulan gerçekleştirilmiş görünümler sunucusuz Delta Live Tables işlem hattı tarafından desteklenir. Bu işlevselliği kullanmak için çalışma alanınızın sunucusuz işlem hatlarını desteklemesi gerekir.

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

Databricks SQL'de gerçekleştirilmiş görünümler, kullanıcıların kaynak tablolardaki verilerin en son sürümüne göre sonuçları önceden derlemesine olanak sağlayan Unity Kataloğu yönetilen tablolarıdır. Azure Databricks'te gerçekleştirilmiş görünümler, döndürülen sonuçlar gerçekleştirilmiş görünüm sorgulandığında sonuçları her zaman güncelleştirmek yerine, gerçekleştirilmiş görünümün son yenilendiği verilerin durumunu yansıttığından diğer uygulamalardan farklıdır. Gerçekleştirilmiş görünümleri el ile yenileyebilir veya yenilemeleri zamanlayabilirsiniz.

Gerçekleştirilmiş görünümler ayıklama, dönüştürme ve yükleme (ETL) işleme gibi veri işleme iş yükleri için güçlüdür. Gerçekleştirilmiş görünümler, uyumluluk, düzeltmeler, toplamalar veya genel değişiklik verileri yakalama (CDC) için verileri işlemek için basit, bildirim temelli bir yol sağlar. Gerçekleştirilmiş görünümler yavaş sorguları ve sık kullanılan hesaplamaları önceden hesaplayarak maliyeti azaltır ve sorgu gecikme süresini artırır. Gerçekleştirilmiş görünümler ayrıca temel tabloları temizleyerek, zenginleştirerek ve kötüleştirerek kullanımı kolay dönüştürmelere olanak tanır. Gerçekleştirilmiş görünümler, basitleştirilmiş bir son kullanıcı deneyimi sağlarken maliyetleri azaltabilir çünkü bazı durumlarda temel tablolardaki değişiklikleri artımlı olarak hesaplayabilirler.

Gerçekleştirilmiş görünümler ilk olarak Delta Live Tables'ın kullanıma sunulmasıyla Azure Databricks'te desteklendi. Databricks SQL ambarında gerçekleştirilmiş bir görünüm oluşturduğunuzda, gerçekleştirilmiş görünümde yenilemeleri işlemek için sunucusuz bir işlem hattı oluşturulur. Delta Live Tables kullanıcı arabiriminde veya işlem hatları API'sinde yenileme işlemlerinin durumunu izleyebilirsiniz. Bkz . Gerçekleştirilmiş görünüm yenilemesinin durumunu görüntüleme.

Gereksinim -leri

Gerçekleştirilmiş görünümler oluşturmak veya yenilemek için:

  • Unity Kataloğu etkin bir profesyonel veya sunucusuz SQL ambarı kullanmanız gerekir.

  • Gerçekleştirilmiş bir görünümü yenilemek için, bunu oluşturan çalışma alanında olmanız gerekir.

  • Çalışma alanınız sunucusuz SQL ambarlarını destekleyen bir bölgede olmalıdır.

Gerçekleştirilmiş görünümleri sorgulamak için:

  • Gerçekleştirilmiş görünümün sahibi olmanız veya SELECT gerçekleştirilmiş görünümde, ana ve USE SCHEMA üstleriyle birlikte sahip USE CATALOG olmanız gerekir.
  • Aşağıdaki işlem kaynaklarından birini kullanmanız gerekir:
    • SQL ambarı
    • Delta Live Tables arabirimleri
    • Paylaşılan erişim modu işlem
    • Çalışma alanı sunucusuz işlem için etkinleştirildiği sürece Databricks Runtime 15.4 ve üzeri üzerinde tek kullanıcı erişim modu. Bkz . Tek kullanıcı işlemlerinde ayrıntılı erişim denetimi.
    • Yalnızca gerçekleştirilmiş görünüm sahibiyseniz: Databricks Runtime'ı 14.3 ile 15.3 arasında çalıştıran tek bir kullanıcı erişim modu işlem kaynağı.

Gerçekleştirilmiş görünümleri kullanmayla ilgili diğer kısıtlamalar hakkında bilgi edinmek için bkz . Sınırlamalar.

Gerçekleştirilmiş görünüm oluşturma

Databricks SQL gerçekleştirilmiş görünüm işlemleri, gerçekleştirilmiş görünümde CREATE veri oluşturmak ve yüklemek için Databricks SQL ambarını kullanır. Gerçekleştirilmiş görünüm oluşturmak zaman uyumlu bir işlemdir; bu CREATE MATERIALIZED VIEW , gerçekleştirilmiş görünüm oluşturulana ve ilk veri yükü bitene kadar komut blokları anlamına gelir. Her Databricks SQL gerçekleştirilmiş görünümü için sunucusuz Delta Live Tables işlem hattı otomatik olarak oluşturulur. Gerçekleştirilmiş görünüm yenilendiğinde Delta Live Tables işlem hattı yenilemeyi işler.

Gerçekleştirilmiş görünüm oluşturmak için deyimini CREATE MATERIALIZED VIEW kullanın. Create deyimi göndermek için Azure Databricks kullanıcı arabirimi, Databricks SQL CLI veya Databricks SQL API'sindeki SQL düzenleyicisini kullanın.

Not

Gerçekleştirilmiş görünüm oluşturan kullanıcı gerçekleştirilmiş görünümün sahibidir ve aşağıdaki izinlere sahip olması gerekir:

  • SELECT ayrıcalığı, gerçekleştirilmiş görünüm tarafından başvuruda bulunan temel tablolarda.
  • USE CATALOG ve USE SCHEMA gerçekleştirilmiş görünüm için kaynak tabloları içeren şema ve katalog ayrıcalıkları.
  • USE CATALOG ve USE SCHEMA gerçekleştirilmiş görünüm için hedef katalog ve şemadaki ayrıcalıklar.
  • CREATE TABLE ve CREATE MATERIALIZED VIEW gerçekleştirilmiş görünümü içeren şemadaki ayrıcalıklar.

Aşağıdaki örnek, temel tablodan mv1gerçekleştirilmiş görünümü base_table1 oluşturur:

CREATE MATERIALIZED VIEW mv1
AS SELECT
  date,
  sum(sales) AS sum_of_sales
FROM
  base_table1
GROUP BY
  date;

Temel tablodaki sütun açıklamaları otomatik olarak yeni gerçekleştirilmiş görünüme yayılır. Zamanlama, tablo kısıtlamaları veya diğer özellikler eklemek için gerçekleştirilmiş görünüm tanımını değiştirin. Gerçekleştirilmiş görünüm tanımlamaya yönelik söz dizimi ayrıntılarını öğrenmek için bkz. CREATE MATERIALIZED VIEW.

Çalışma zamanı kanalını ayarlama

SQL ambarları kullanılarak oluşturulan gerçekleştirilmiş görünümler, Delta Live Tables işlem hattı kullanılarak otomatik olarak yenilenir. Delta Live Tables işlem hatları, kanaldaki current çalışma zamanını varsayılan olarak kullanır. Sürüm işlemi hakkında bilgi edinmek için bkz . Delta Live Tables sürüm notları ve sürüm yükseltme işlemi .

Databricks, üretim iş yükleri için kanalın current kullanılmasını önerir. Yeni özellikler ilk olarak kanala preview gönderilir. Tablo özelliği olarak belirterek preview yeni özellikleri test etmek için delta live tables kanalının önizlemesine bir işlem hattı ayarlayabilirsiniz. Tabloyu oluştururken veya bir ALTER deyimi kullanılarak tablo oluşturulduktan sonra bu özelliği belirtebilirsiniz.

Aşağıdaki kod örneği, create deyiminde kanalın önizleme olarak nasıl ayarlandığını gösterir:

CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
  *
FROM
  range(5)

Dış sistemlerden veri yükleme

Databricks, desteklenen veri kaynakları için Lakehouse Federasyonu kullanılarak dış verilerin yüklenmesini önerir. Lakehouse Federation tarafından desteklenmeyen kaynaklardan veri yükleme hakkında bilgi için bkz . Veri biçimi seçenekleri.

Gerçekleştirilmiş görünümü yenileme

İşlem, REFRESH temel tablodaki en son değişiklikleri yansıtacak şekilde gerçekleştirilmiş görünümü yeniler. İşlem varsayılan olarak zaman uyumludur, yani komut yenileme işlemi tamamlanana kadar engellenir. Gerçekleştirilmiş bir görünümü yenilemek için deyimini REFRESH MATERIALIZED VIEW kullanın. Bu komutun SQL söz dizimi ve parametreleriyle ilgili ayrıntılar için bkz. REFRESH (MATERIALIZED VIEW veya STREAMING TABLE). Artımlı olarak yenilenebilen gerçekleştirilmiş görünüm türleri hakkında daha fazla bilgi edinmek için bkz . Gerçekleştirilmiş görünümler için artımlı yenileme.

Yenileme deyimi göndermek için Azure Databricks kullanıcı arabirimindeki SQL düzenleyicisini, SQL ambarı, Databricks SQL CLI veya Databricks SQL API'sine bağlı bir not defterini kullanın.

Gerçekleştirilmiş görünüm yalnızca sahibi tarafından yapılabilir REFRESH .

Aşağıdaki örnek gerçekleştirilmiş görünümü yeniler mv1 :

REFRESH MATERIALIZED VIEW mv1;

Databricks SQL gerçekleştirilmiş görünümleri nasıl yenilenir?

Gerçekleştirilmiş görünümler, yenileme işlemlerini işlemek için sunucusuz Delta Live Tables işlem hatlarını otomatik olarak oluşturur ve kullanır. Yenileme Delta Live Tables işlem hattı tarafından yönetilir ve güncelleştirme gerçekleştirilmiş görünümü oluşturmak için kullanılan Databricks SQL ambarı tarafından izlenir. Gerçekleştirilmiş görünümler, bir zamanlamaya göre çalışan bir Delta Live Tables işlem hattı kullanılarak güncelleştirilebilir. Bkz . Tetiklenen ve sürekli işlem hattı modu.

Not

Delta Live Tables çalışma zamanı, Delta olmayan veri kaynaklarındaki değişiklikleri algılayamaz. Tablo hala düzenli olarak güncelleştirilir, ancak aşırı yeniden derlemenin işlemde gerçekleşen artımlı işlemleri yavaşlatmasını önlemek için varsayılan tetikleyici aralığı daha yüksektir.

Varsayılan olarak, yenileme işlemleri zaman uyumlu olarak gerçekleştirilir. Yenileme işlemini zaman uyumsuz olarak gerçekleşecek şekilde de ayarlayabilirsiniz. Bu, yenileme komutu kullanılarak ayarlanabilir. Bkz. REFRESH (MATERIALIZED VIEW veya STREAMING TABLE) Her yaklaşımla ilişkili davranış aşağıdaki gibidir:

  • Zaman uyumlu: Zaman uyumlu yenileme, yenileme tamamlanana kadar diğer işlemlerin devam etmesini engeller. Sonraki adım için, örneğin Databricks İşleri gibi düzenleme araçlarında yenileme işlemlerini sıralarken sonuç gerekiyorsa, zaman uyumlu yenileme kullanın. Gerçekleştirilmiş görünümleri bir işle birlikte yönetmek için SQL görev türünü kullanın. Databricks üzerinde orkestrasyona genel bakış için bkz. .
  • Zaman uyumsuz: Zaman uyumsuz yenileme, gerçekleştirilmiş bir görünüm yenilemesi başladığında Delta Live Tables işleminde bir arka plan işi başlatır ve komutun veri yükü tamamlanmadan önce döndürülmesini sağlar. İşlemin komutun başlatıldığı ambarda işlem kapasitesini tutmaması nedeniyle bu yenileme türü maliyet tasarrufu sağlayabilir. Yenileme boşta kalırsa ve başka hiçbir görev çalışmıyorsa, yenileme diğer kullanılabilir işlem kullanılırken ambar kapatılabilir. Ayrıca, zaman uyumsuz yenilemeler birden çok işlemin paralel olarak başlatılmasını destekler.

Bazı sorgular artımlı olarak yenilenebilir. Gerçekleştirilmiş görünümler için bkz. Artımlı yenileme. Artımlı yenileme gerçekleştirilemiyorsa bunun yerine tam yenileme gerçekleştirilir.

Gerçekleştirilmiş görünüm yenilemelerini zamanlama

Databricks SQL gerçekleştirilmiş görünümünü, tanımlı bir zamanlamaya göre otomatik olarak yenilenmek üzere yapılandırabilirsiniz. Zamanlama ayarlamak için aşağıdakilerden birini yapın:

Bir zamanlama oluşturulduğunda, güncelleştirmeyi işlemek için otomatik olarak yeni bir Databricks işi yapılandırılır.

Zamanlamayı görüntülemek için aşağıdakilerden birini yapın:

  • DESCRIBE EXTENDED Azure Databricks kullanıcı arabiriminde SQL düzenleyicisinden deyimini çalıştırın.
  • Gerçekleştirilmiş görünümü görüntülemek için Katalog Gezgini'ni kullanın. Zamanlama, Genel Bakış sekmesinde, Yenileme durumu altında listelenir. Bkz . Katalog Gezgini nedir?.

Gerçekleştirilmiş görünüm yenilemesinin durumunu görüntüleme

Not

Delta Live Tables işlem hattı gerçekleştirilmiş görünüm yenilemelerini yönettiğinden, işlem hattı için başlatma süresi nedeniyle gecikme yaşanıyor. Bu süre, yenilemeyi gerçekleştirmek için gereken süreye ek olarak saniyeler ile dakikalar içinde olabilir.

Delta Live Tables kullanıcı arabiriminde gerçekleştirilmiş görünümü yöneten işlem hattını görüntüleyerek veya gerçekleştirilmiş görünüm için komutu tarafından döndürülen Yenileme Bilgileri'niDESCRIBE EXTENDEDgerçekleştirilmiş görünüm yenilemesinin durumunu görüntüleyebilirsiniz.

Delta Live Tables olay günlüğünü sorgulayarak gerçekleştirilmiş bir görünümün yenileme geçmişini de görüntüleyebilirsiniz. Gerçekleştirilmiş görünüm için yenileme geçmişini görüntüleme bölümüne bakın.

Sorgu geçmişini kullanarak çalıştırmaları izleme

Akış tablosu güncelleştirmelerinizi çalıştırmak için kullanılan Delta Live Tables işlem hattında kötü performans gösteren sorguları ve performans sorunlarını belirlemenize yardımcı olabilecek sorgu ayrıntılarına ve sorgu profillerine erişmek için sorgu geçmişi sayfasını kullanabilirsiniz. Sorgu geçmişleri ve sorgu profilleri için sağlanan bilgi türüne genel bakış için bkz . Sorgu geçmişi ve Sorgu profili.

Önemli

Bu özellik Genel Önizlemededir. Çalışma alanı yöneticileri Bu özelliği Önizlemeler sayfasından etkinleştirebilir. Bkz. Azure Databricks Önizlemelerini Yönetme.

Gerçekleştirilmiş görünümlerle ilgili tüm deyimler sorgu geçmişinde görünür. Herhangi bir komutu seçmek ve ilgili sorguları incelemek için Deyim açılan filtresini kullanabilirsiniz. Tüm CREATE deyimleri, Delta Live Tables işlem hattında zaman uyumsuz olarak yürüten bir deyim izler REFRESH . REFRESH Deyimler genellikle performansı iyileştirmeye yönelik içgörüler sağlayan ayrıntılı sorgu planlarını içerir.

Sorgu geçmişi kullanıcı arabirimindeki deyimlere erişmek REFRESH için aşağıdaki adımları kullanın:

  1. Sorgu Geçmişi kullanıcı arabirimini açmak için sol kenar çubuğuna tıklayınGeçmiş Simgesi.
  2. REFRESH açılır filtreden onay kutusunu seçin.
  3. Sorgunun süresi ve toplanan ölçümler gibi özet ayrıntılarını görüntülemek için sorgu deyiminin adına tıklayın.
  4. Sorgu profilini açmak için Sorgu profilini göster'e tıklayın. Sorgu profilinde gezinme hakkında ayrıntılı bilgi için bkz . Sorgu profili.
  5. İsteğe bağlı olarak, ilgili sorguyu veya işlem hattını açmak için Sorgu Kaynağı bölümündeki bağlantıları kullanın.

Bkz. CREATE MATERIALIZED VIEW.

Delta Live Tables kullanıcı arabiriminde yenileme durumunu görüntüleme

Varsayılan olarak, gerçekleştirilmiş görünümü yöneten Delta Live Tables işlem hattı Delta Live Tables kullanıcı arabiriminde görünmez. Delta Live Tables kullanıcı arabiriminde işlem hattını görüntülemek için işlem hattının İşlem hattı ayrıntıları sayfasının bağlantısına doğrudan erişmeniz gerekir. Bağlantıya erişmek için:

  • Deyimi tarafından döndürülen tablonun En Son Yenileme satırında gösterilen
  • Gerçekleştirilmiş görünümün köken sekmesinde İşlem Hatları'na ve ardından işlem hattı bağlantısına tıklayın.

Azure Databricks kullanıcı arabirimindeki SQL düzenleyicisi kullanılarak gönderilen zaman uyumsuz REFRESH komutlar için, Sonuçlar panelinde gösterilen bağlantıyı izleyerek yenileme durumunu görüntüleyebilirsiniz.

Etkin yenilemeyi durdurma

Delta Live Tables kullanıcı arabiriminde etkin yenilemeyi durdurmak için İşlem hattı ayrıntıları sayfasında Durdur'a tıklayarak işlem hattı güncelleştirmesini durdurun. Yenilemeyi Databricks CLI veya POST /api/2.0/pipelines/{pipeline_id}/stop işlemiyle pipelines API'sinde de durdurabilirsiniz.

Gerçekleştirilmiş görünümün tanımını güncelleştirme

Gerçekleştirilmiş görünümün tanımını güncelleştirmek için önce bırakmanız, ardından gerçekleştirilmiş görünümü yeniden oluşturmanız gerekir.

Silme vektörleri etkin bir malzeme görünümünden kayıtları kalıcı olarak silme

Önemli

Malzemeleşmiş görünümler içeren REORG deyimine destek Genel Önizleme'ndedir.

Not

  • Gerçekleştirilmiş görünümle REORG deyimi kullanmak için Databricks Runtime 15.4 ve üzeri gerekir.
  • REORG deyimini herhangi bir gerçekleştirilmiş görünümde kullanabilirsiniz ancak yalnızca silme vektörleri etkin bir gerçekleştirilmiş görünümden kayıtları silerken gereklidir. Silme vektörleri etkinleştirilmeden gerçekleştirilmiş bir görünümle kullanıldığında komutun hiçbir etkisi yoktur.

GDPR uyumluluğu gibi silme vektörleri etkinleştirilmiş gerçekleştirilmiş bir görünümün temel depolama alanından kayıtları fiziksel olarak silmek için, gerçekleştirilmiş görünümün verilerinde bir VACUUM işleminin çalıştığından emin olmak için ek adımlar atılmalıdır.

Aşağıda bu adımlar daha ayrıntılı olarak açıklanmaktadır:

  1. APPLY (PURGE) parametresini belirterek gerçekleştirilmiş görünümde bir REORG deyimi çalıştırın. Örneğin REORG TABLE <materialized-view-name> APPLY (PURGE);. Bkz. REORG TABLE.
  2. Gerçekleştirilmiş görünümün veri saklama süresinin geçmesini bekleyin. Varsayılan veri saklama süresi yedi gündür, ancak delta.deletedFileRetentionDuration tablo özelliğiyle yapılandırılabilir. Bkz . Zaman yolculuğu sorguları için veri saklamayı yapılandırma.
  3. REFRESH gerçekleştirilmiş görünüm. Bkz. gerçekleştirilmiş görünümü yenileme. REFRESH işlemini izleyen 24 saat içinde, kayıtların kalıcı olarak silindiğinden emin olmak için gereken VACUUM işlemi de dahil olmak üzere Delta Live Tables bakım görevleri otomatik olarak çalıştırılır. Bkz. Delta Live Tables tarafından gerçekleştirilen bakım görevleri.

Gerçekleştirilmiş görünümü bırakma

Not

Gerçekleştirilmiş görünümü bırakmak için komutunu göndermek için bu gerçekleştirilmiş görünümün sahibi olmanız veya gerçekleştirilmiş görünümde MANAGE ayrıcalığına sahip olmanız gerekir.

Gerçekleştirilmiş bir görünümü silmek için DROP VIEW deyimini kullanın. Bir DROP deyim göndermek için Azure Databricks kullanıcı arabiriminde, Databricks SQL CLI'sinde veya Databricks SQL API'sinde SQL düzenleyicisini kullanabilirsiniz. Aşağıdaki örnek, gerçekleştirilmiş görünümü bırakır mv1 :

DROP MATERIALIZED VIEW mv1;

Gerçekleştirilmiş görünümü açıklama

Gerçekleştirilmiş bir görünümün sütunlarını ve veri türlerini almak için deyimini DESCRIBE kullanın. Gerçekleştirilmiş bir görünümün sütunlarını, veri türlerini ve sahip, konum, oluşturma zamanı ve yenileme durumu gibi meta verileri almak için kullanın DESCRIBE EXTENDED. Bir DESCRIBE deyim göndermek için Azure Databricks kullanıcı arabirimindeki SQL düzenleyicisini, Databricks SQL CLI'yı veya Databricks SQL API'sini kullanın.

Gerçekleştirilmiş görünümün sahibini değiştirme

Hem meta veri deposu yöneticisi hem de çalışma alanı yöneticisiyseniz gerçekleştirilmiş görünümün sahibini değiştirebilirsiniz. Gerçekleştirilmiş görünümler değişiklikleri işlemek için Delta Live Tables işlem hatlarını otomatik olarak oluşturur ve kullanır. Gerçekleştirilmiş görünüm sahibini değiştirmek için aşağıdaki adımları kullanın:

  • Gerçekleştirilmiş görünümün köken sekmesinde İşlem Hatları'na ve ardından işlem hattı bağlantısına tıklayın.
  • Paylaşöğesine tıklayın. İzin Ayarları iletişim kutusu görüntülenir.
  • Geçerli sahibi kaldırmak için geçerli sahibin adının sağındaki x işaretine tıklayın.
  • Kullanılabilir kullanıcıların listesini filtrelemek için yazmaya başlayın. Yeni işlem hattı sahibi olması gereken kullanıcıya tıklayın.
  • Değişikliklerinizi kaydetmek ve iletişim kutusunu kapatmak için Kaydet'e tıklayın.

İşlem hattında tanımlanan gerçekleştirilmiş görünümler de dahil olmak üzere tüm işlem hattı varlıkları yeni işlem hattı sahibine aittir. Gelecekteki tüm güncelleştirmeler yeni sahibin kimliği kullanılarak çalıştırılır.

Gerçekleştirilmiş görünümlere erişimi denetleme

Gerçekleştirilmiş görünümler, veri paylaşımını desteklemek için zengin erişim denetimlerini desteklerken, potansiyel olarak özel verilerin ortaya konulmasını önler. Gerçekleştirilmiş görünüm sahibi veya MANAGE ayrıcalığına sahip bir kullanıcı, diğer kullanıcılara SELECT ayrıcalıkları verebilir. Gerçekleştirilmiş görünüme erişimi olan SELECT kullanıcıların gerçekleştirilmiş görünüm tarafından başvuruda bulunan tablolara erişmesi gerekmez SELECT . Bu erişim denetimi, temel alınan verilere erişimi denetlerken veri paylaşımını etkinleştirir.

Gerçekleştirilmiş görünüme ayrıcalıklar verme

Gerçekleştirilmiş görünüme erişim vermek için deyimini GRANT kullanın:

GRANT
  privilege_type [, privilege_type ] ...
  ON <mv_name> TO principal;

privilege_type:

  • SELECT - kullanıcı gerçekleştirilmiş görünüme sahip olabilir SELECT .
  • REFRESH - kullanıcı gerçekleştirilmiş görünüme sahip olabilir REFRESH . Yenilemeler, sahibin izinleri kullanılarak çalıştırılır.

Aşağıdaki örnek gerçekleştirilmiş bir görünüm oluşturur ve kullanıcıya seçme ve yenileme ayrıcalıkları verir:

CREATE MATERIALIZED VIEW <mv_name> AS SELECT * FROM <base_table>;
GRANT SELECT ON <mv_name> TO user;
GRANT REFRESH ON <mv_name> TO user;

Gerçekleştirilmiş görünümden ayrıcalıkları iptal etme

Gerçekleştirilmiş görünümden erişimi iptal etmek için deyimini REVOKE kullanın:

REVOKE
  privilege_type [, privilege_type ]
  ON <name> FROM principal;

Bir temel tablodaki SELECT ayrıcalıkları gerçekleştirilmiş görünüm sahibinden veya gerçekleştirilmiş görünümde MANAGE veya SELECT ayrıcalıkları verilmiş olan diğer kullanıcılardan iptal edildiğinde veya temel tablo bırakıldığında, gerçekleştirilmiş görünüm sahibi veya erişim verilen kullanıcı gerçekleştirilmiş görünümü sorgulamaya devam eder. Ancak, aşağıdaki davranış oluşur:

  • Gerçekleştirilmiş görünüm sahibi veya gerçekleştirilmiş görünüme erişimini kaybeden diğer kişiler artık REFRESH bu gerçekleştirilmiş görünüme sahip olamaz ve gerçekleştirilmiş görünüm eskir.
  • Zamanlamayla otomatikleştirilmişse, bir sonraki zamanlanan REFRESH başarısız olur veya çalıştırılmaz.

Aşağıdaki örnek, 'den SELECTayrıcalığı mv1 iptal eder:

REVOKE SELECT ON mv1 FROM user1;

Değişiklik veri akışını etkinleştirme

Belirli gelişmiş kullanım örnekleri dışında gerçekleştirilmiş görünüm temel tablolarında değişiklik veri akışı gereklidir. Temel tabloda veri akışını değiştirme özelliğini etkinleştirmek için aşağıdaki söz dizimini delta.enableChangeDataFeed kullanarak tablo özelliğini ayarlayın:

ALTER TABLE table1 SET TBLPROPERTIES (delta.enableChangeDataFeed = true);

Gerçekleştirilmiş görünümün yenileme geçmişini görüntüleme

Geçerli ve geçmiş yenilemeler dahil olmak üzere gerçekleştirilmiş bir görünümde işlemlerin REFRESH durumunu görüntülemek için Delta Live Tables olay günlüğünü sorgulayın:

SELECT
  *
FROM
  event_log(TABLE(<fully-qualified-table-name>))
WHERE
  event_type = "update_progress"
ORDER BY
  timestamp desc;

değerini, katalog ve şema da dahil olmak üzere gerçekleştirilmiş görünümün tam adıyla değiştirin <fully-qualified-table-name> .

Bkz . Delta Live Tables olay günlüğü nedir?.

Sınırlama

  • İşlem ve çalışma alanı gereksinimleri için bkz . Gereksinimler.
  • Gerçekleştirilmiş görünümler kimlik sütunlarını veya vekil anahtarları desteklemez.
  • Gerçekleştirilmiş görünümde bir -able sütunu üzerinde NULLtoplam toplama kullanılıyorsa ve bu sütunda yalnızca NULL değerler kalıyorsa, gerçekleştirilmiş görünüm sonuç toplama değeri yerine NULLsıfır olur.
  • Değişiklik veri akışını gerçekleştirilmiş görünümden okuyamazsınız.
  • Gerçekleştirilmiş görünümlerde zaman yolculuğu sorguları desteklenmez.
  • Gerçekleştirilmiş görünümleri destekleyen temel dosyalar, gerçekleştirilmiş görünüm tanımında görünmeyen yukarı akış tablolarındaki verileri (olası kişisel bilgiler dahil) içerebilir. Bu veriler, gerçekleştirilmiş görünümlerin artımlı olarak yenilenmesini desteklemek için temel alınan depolamaya otomatik olarak eklenir. Gerçekleştirilmiş bir görünümün temel dosyaları, gerçekleştirilmiş görünüm şemasının parçası olmayan yukarı akış tablolarından verileri açığa çıkarma riski içerebileceğinden Databricks, temel alınan depolamanın güvenilmeyen aşağı akış tüketicileriyle paylaşılmaması önerilir. Örneğin, gerçekleştirilmiş görünümün tanımının bir COUNT(DISTINCT field_a) yan tümce içerdiğini varsayalım. Gerçekleştirilmiş görünüm tanımı yalnızca toplama COUNT DISTINCT yan tümcesini içerse de, temel dosyalar gerçek değerlerinin field_alistesini içerir.