GERÇEKLEŞTİRİLMİŞ GÖRÜNÜM OLUŞTURMA
Şunlar için geçerlidir: Databricks SQL
Önemli
Bu özellik Genel Önizlemededir.
Gerçekleştirilmiş görünüm, sorgu için önceden derlenmiş sonuçların kullanılabildiği ve girişteki değişiklikleri yansıtacak şekilde güncelleştirilebildiği bir görünümdür. Gerçekleştirilmiş görünüm her yenilendiğinde, sorgu sonuçları yukarı akış veri kümelerindeki değişiklikleri yansıtacak şekilde yeniden hesaplanır. Tüm gerçekleştirilmiş görünümler bir DLT işlem hattı tarafından desteklenir. Gerçekleştirilmiş görünümleri el ile, zamanlamaya göre veya içerdikleri DLT işlem hattını zamanlayarak yenileyebilirsiniz.
Sözdizimi
CREATE MATERIALIZED VIEW [IF NOT EXISTS]
view_name
[ column_list ]
[ view_clauses ]
AS query
column_list
( { column_name [ MASK clause ] [...] } [, ...] )
view_clauses
{ PARTITIONED BY (col [, ...]) |
COMMENT view_comment |
TBLPROPERTIES clause |
SCHEDULE [ REFRESH ] CRON cron_string [ AT TIME ZONE timezone_id ] |
WITH { ROW FILTER clause } } [...]
Parametreler
YOKSA
Yoksa görünümü oluşturur. Bu ada göre bir görünüm zaten varsa,
CREATE VIEW
deyimi yoksayılır.veya
OR REFRESH
'ninIF NOT EXISTS
en fazla birini belirtebilirsiniz.-
Yeni oluşturulan görünümün adı. Tam görünüm adı benzersiz olmalıdır.
column_list
İsteğe bağlı olarak, görünümün sorgu sonucundaki sütunları etiketler. Sütun listesi sağlarsanız, sütun diğer adlarının sayısı sorgudaki ifade sayısıyla eşleşmelidir. Sütun listesi belirtilmezse, diğer adlar görünümün gövdesinden türetilir.
-
Sütun adları benzersiz olmalı ve sorgunun çıkış sütunlarıyla eşlenmelidir.
-
Önemli
Bu özellik Genel Önizlemededir.
Hassas verileri anonim hale getirmek için bir sütun maskesi işlevi ekler. Bu sütundan gelecek tüm sorgular, sütunun özgün değeri yerine bu işlevi sütun üzerinde değerlendirmenin sonucunu alır. Bu, işlevin, değeri yeniden işlemeye karar vermek için çağıran kullanıcının kimliğini ve/veya grup üyeliklerini incelediği ayrıntılı erişim denetimi amaçları için yararlı olabilir.
-
view_clauses
İsteğe bağlı olarak bölümleme, açıklamalar, kullanıcı tanımlı özellikler ve yeni gerçekleştirilmiş görünüm için yenileme zamanlaması belirtin. Her alt yan tümce yalnızca bir kez belirtilebilir.
-
Tabloyu bölümleme ölçütü olarak tablo sütunlarının isteğe bağlı listesi.
COMMENT view_comment
STRING
Tabloyu açıklamak için bir değişmez değer.-
İsteğe bağlı olarak bir veya daha fazla kullanıcı tanımlı özellik ayarlar.
SCHEDULE [ REFRESH ] CRON cron_string [ TIME ZONE timezone_id ]
Sağlandıysa, akış tablosunu veya gerçekleştirilmiş görünümü zamanlayarak verilerini verilen quartz cron zamanlaması ile yeniler. Yalnızca time_zone_values kabul edilir.
AT TIME ZONE LOCAL
desteklenmez. YoksaAT TIME ZONE
, oturum saat dilimi kullanılır. YoksaAT TIME ZONE
ve oturum saat dilimi ayarlanmadıysa bir hata oluşur.SCHEDULE
, ile eşanlamlı olarak eşdeğerdirSCHEDULE REFRESH
.Delta Live Tables işlem hattı tanımında söz dizimini kullanamazsınız
SCHEDULE
.-
Önemli
Bu özellik Genel Önizlemededir.
Tabloya bir satır filtresi işlevi ekler. Bu tablodan gelecek tüm sorgular, işlevin TRUE değerini değerlendirdiği satırlarının alt kümesini alır. Bu, işlevin belirli satırları filtreleyip filtrelememeye karar vermek için çağıran kullanıcının kimliğini ve/veya grup üyeliklerini incelediği ayrıntılı erişim denetimi amaçları için yararlı olabilir.
-
AS sorgusu
Görünümü temel tablolardan veya diğer görünümlerden oluşturan sorgu.
Gerekli izinler
Gerçekleştirilmiş görünüm (MV) oluşturan kullanıcı MV sahibidir ve aşağıdaki izinlere sahip olmalıdır:
SELECT
MV tarafından başvuruda bulunan temel tablolara göre ayrıcalık.USE CATALOG
ayrıcalığı üst katalogda veUSE SCHEMA
ayrıcalığı üst şemada.CREATE
MV şemasında ayrıcalık.
Bir kullanıcının MV'yi yenileyebilmesi için şunlar gerekir:
USE CATALOG
ayrıcalığı üst katalogda veUSE SCHEMA
ayrıcalığı üst şemada.- MV'nin sahipliği veya
REFRESH
MV üzerindeki ayrıcalık. - MV'nin sahibi, MV tarafından başvuruda bulunan temel tablolar üzerinde ayrıcalığı olmalıdır
SELECT
.
Bir kullanıcının MV'yi sorgulayabilmesi için şunlar gerekir:
USE CATALOG
ayrıcalığı üst katalogda veUSE SCHEMA
ayrıcalığı üst şemada.SELECT
gerçekleştirilmiş görünüme göre ayrıcalık.
Satır filtreleri ve sütun maskeleri
Önemli
Bu özellik Genel Önizlemededir.
Satır filtreleri, tablo taraması satırları her getirdiğinde filtre olarak uygulanan bir işlev belirtmenize olanak tanır. Bu filtreler, izleyen sorguların yalnızca filtre koşulunun true olarak değerlendirildiği satırları döndürmesini sağlar.
Sütun maskeleri, tablo taraması satırları her getirdiğinizde sütunun değerlerini maskelemenizi sağlar. Bu sütunu içeren gelecekteki tüm sorgular, işlevi sütun üzerinde değerlendirerek sütunun özgün değerini değiştirmenin sonucunu alır.
Satır filtrelerini ve sütun maskelerini kullanma hakkında daha fazla bilgi için bkz . Satır filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme.
Satır Filtrelerini ve Sütun Maskelerini Yönetme
Gerçekleştirilmiş görünümlerdeki satır filtreleri ve sütun maskeleri deyimi aracılığıyla CREATE
eklenmelidir.
Davranış
- Definer olarak yenile: Deyimi gerçekleştirilmiş bir görünümü yenilediğinde
REFRESH MATERIALIZED VIEW
, satır filtresi işlevleri tanımlayıcının haklarıyla (tablo sahibi olarak) çalışır. Bu, tablo yenilemesinin gerçekleştirilmiş görünümü oluşturan kullanıcının güvenlik bağlamını kullandığı anlamına gelir. - Sorgu: Çoğu filtre, tanımlayıcının haklarıyla çalıştırılırken, kullanıcı bağlamını (ve
IS_MEMBER
gibiCURRENT_USER
) denetleen işlevler özel durumlardır. Bu işlevler çağıran olarak çalışır. Bu yaklaşım, geçerli kullanıcının bağlamını temel alarak kullanıcıya özgü veri güvenliği ve erişim denetimlerini zorunlu kılıp uygular. - Satır filtreleri ve sütun maskeleri içeren kaynak tablolar üzerinde gerçekleştirilmiş görünümler oluştururken, gerçekleştirilmiş görünümün yenilenmesi her zaman tam bir yenilemedir. Tam yenileme, kaynakta bulunan tüm verileri en son tanımlarla yeniden işler. Bu, kaynak tablolardaki güvenlik ilkelerinin en güncel veri ve tanımlarla değerlendirilmesini ve uygulanmasını sağlar.
Gözlemlenebilirlik
Belirli bir gerçekleştirilmiş görünüme uygulanan mevcut satır filtrelerini ve sütun maskelerini incelemek için , INFORMATION_SCHEMA
veya Katalog Gezgini'ni kullanınDESCRIBE EXTENDED
. Bu işlevsellik, kullanıcıların gerçekleştirilmiş görünümlerde veri erişimi ve koruma önlemlerini denetlemesine ve gözden geçirmesine olanak tanır.
Sınırlamalar
- NULL özellikli bir sütun üzerinde toplama içeren
sum
gerçekleştirilmiş bir görünümde bu sütundan kaldırılan son NULL olmayan değer varsa ve bu nedenle bu sütunda yalnızcaNULL
değerler kaldığında, gerçekleştirilmiş görünümün sonuçta elde edilen toplam değeri yerineNULL
sıfır döndürür. - Sütun başvurusu için diğer ad gerekmez. Sütun olmayan başvuru ifadeleri, aşağıdaki örnekte olduğu gibi bir diğer ad gerektirir:
- Izin verilen:
SELECT col1, SUM(col2) AS sum_col2 FROM t GROUP BY col1
- İzin Verilmiyor:
SELECT col1, SUM(col2) FROM t GROUP BY col1
- Izin verilen:
- Gerçekleştirilmiş görünümler kimlik sütunlarını veya vekil anahtarları desteklemez.
- Gerçekleştirilmiş görünümler geçici
OPTIMIZE
veVACUUM
komutları desteklemez. Bakım otomatik olarak gerçekleşir. - Gerçekleştirilmiş görünümler ve
FOREIGN KEY
gibiPRIMARY KEY
tablo kısıtlamalarını desteklemez. - Gerçekleştirilmiş görünümler, veri kalitesi kısıtlamalarını tanımlama beklentilerini desteklemez.
Örnekler
-- Create a materialized view if it doesn't exist
> CREATE MATERIALIZED VIEW IF NOT EXISTS subscribed_movies
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb ON mo.member_id = mb.id;
-- Create and schedule a materialized view to be refreshed daily at midnight.
-- Note: All columns in a GROUP BY need to be explicitly aliased
> CREATE MATERIALIZED VIEW daily_sales
COMMENT 'Daily sales numbers'
SCHEDULE CRON '0 0 0 * * ? *'
AS SELECT date AS date, sum(sales) AS sumOfSales
FROM table1
GROUP BY date;
-- Create a materialized view with a row filter and a column mask
> CREATE MATERIALIZED VIEW masked_view (
id,
name,
region,
ssn MASK catalog.schema.ssn_mask_fn
)
WITH ROW FILTER catalog.schema.us_filter_fn ON (region)
AS SELECT id, name, region, ssn
FROM employees;
İlgili makaleler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin