Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Akış tablosu, akış veya artımlı veri işleme desteğine sahip bir tablodur. Akış tabloları işlem hatları tarafından desteklenir. Akış tablosu her yenilendiğinde, kaynak tablolara eklenen veriler akış tablosuna eklenir. Akış tablolarını el ile veya bir zamanlamaya göre yenileyebilirsiniz.
Yenilemeleri gerçekleştirme veya zamanlama hakkında daha fazla bilgi edinmek için bkz. İşlem hattı güncelleştirmesini çalıştırma.
Sözdizimi
CREATE [OR REFRESH] [PRIVATE] STREAMING TABLE
table_name
[ table_specification ]
[ table_clauses ]
[ AS query ]
table_specification
( { column_identifier column_type [column_properties] } [, ...]
[ column_constraint ] [, ...]
[ , table_constraint ] [...] )
column_properties
{ NOT NULL | COMMENT column_comment | column_constraint | MASK clause } [ ... ]
table_clauses
{ USING DELTA
PARTITIONED BY (col [, ...]) |
CLUSTER BY clause |
LOCATION path |
COMMENT view_comment |
TBLPROPERTIES clause |
WITH { ROW FILTER clause } } [ ... ]
Parametreler
REFRESH
Belirtilirse, tabloyu oluşturur veya var olan bir tabloyu ve içeriğini güncelleştirir.
ÖZEL
Özel bir akış tablosu oluşturur.
- Bunlar kataloğa eklenmez ve yalnızca tanımlama işlem hattı içinde erişilebilir
- Katalogdaki mevcut bir nesneyle aynı ada sahip olabilirler. İşlem hattı içinde, bir özel akış tablosu ve katalogdaki bir nesne aynı ada sahipse, ada yapılan başvurular özel akış tablosuna çözümlenir.
- Özel akış tabloları yalnızca bir güncelleştirmede değil, işlem hattının tüm ömrü boyunca kalıcı hale gelir.
Özel akış tabloları daha önce
TEMPORARYparametresi kullanılarak oluşturulmuştur.table_name
Yeni oluşturulan tablonun adı. Tam nitelikli tablo adı benzersiz olmalıdır.
tablo_özellikleri
Bu isteğe bağlı yan tümcesi sütunların listesini, türlerini, özelliklerini, açıklamalarını ve sütun kısıtlamalarını tanımlar.
-
Sütun adları benzersiz olmalı ve sorgunun çıkış sütunlarıyla eşlenmelidir.
-
Sütunun veri türünü belirtir. Azure Databricks tarafından desteklenen tüm veri türleri akış tabloları tarafından desteklenmez.
column_comment
Sütunu tanımlayan isteğe bağlı
STRINGsabit değeri. Bu seçenek ilecolumn_typebirlikte belirtilmelidir. Sütun türü belirtilmezse, sütun açıklaması atlanır.-
Tabloya akan verileri doğrulayan bir kısıtlama ekler. bkz. İşlem hattı beklentileriyle veri kalitesini yönetme.
-
Önemli
Bu özellik Genel Önizleme aşamasındadır.
Hassas verileri anonim hale getirmek için bir sütun maskesi işlevi ekler.
-
tablo_kısıtlaması
Önemli
Bu özellik Genel Önizleme aşamasındadır.
Şema belirtirken birincil ve yabancı anahtarlar tanımlayabilirsiniz. Kısıtlamalar bilgilendirme amaçlıdır ve uygulanmaz. SQL dil referansındaki CONSTRAINT maddesi'yi inceleyin.
Uyarı
Tablo kısıtlamalarını tanımlamak için işlem hattınızın Unity Kataloğu özellikli bir işlem hattı olması gerekir.
tablo koşulları
İsteğe bağlı olarak tablo için bölümleme, açıklamalar ve kullanıcı tanımlı özellikler belirtin. Her alt yan tümce yalnızca bir kez belirtilebilir.
DELTA KULLANMA
Veri biçimini belirtir. Tek seçenek DELTA'dır.
Bu yan tümce isteğe bağlıdır ve varsayılan olarak DELTA'ya ayarlanmıştır.
BÖLÜMLERE AYRILDI
Tablodaki bölümleme için kullanılacak bir veya daha fazla sütunun isteğe bağlı listesi.
CLUSTER BYile birbirini dışlar.Sıvı kümeleme, kümeleme için esnek, iyileştirilmiş bir çözüm sağlar. İşlem hatları için
CLUSTER BYyerinePARTITIONED BYkullanmayı göz önünde bulundurun.CLUSTER BY
Tabloda sıvı kümelemeye olanak tanıyın ve kümeleme anahtarları olarak kullanılacak sütunları tanımlayın. ile
CLUSTER BY AUTOotomatik sıvı kümelemeyi kullanın ve Databricks sorgu performansını iyileştirmek için kümeleme anahtarlarını akıllı bir şekilde seçer.PARTITIONED BYile birbirini dışlar.YER
Tablo verileri için isteğe bağlı bir depolama konumu. Ayarlanmadığı takdirde, sistem otomatik olarak varsayılan olarak işlem hattı depolama konumunu kullanır.
YORUM
Tabloyu açıklamak için isteğe bağlı
STRINGbir sabit.TBLPROPERTIES
Tablo için isteğe bağlı tablo özellikleri listesi.
İLE ROW FILTER
Önemli
Bu özellik Genel Önizleme aşamasındadır.
Tabloya bir satır filtresi işlevi ekler. Bu tablo için gelecekteki sorgular, işlevin TRUE olarak değerlendirildiği satırların bir alt kümesini alır. Bu, işlevin belirli satırları filtreleyip filtrelememeye karar vermek için çağıran kullanıcının kimlik ve grup üyeliklerini incelemesine izin verdiğinden, ayrıntılı erişim denetimi için kullanışlıdır.
Bkz:
ROW FILTERyan tümcesi.-
Bu yan tümce,
queryverilerini kullanarak tabloyu doldurur. Bu sorgu bir akış sorgusu olmalıdır. Kaynaktan okumak üzere akış semantiğini kullanmak için STREAM anahtar sözcüğünü kullanın. Okuma işlemi var olan bir kayıtta bir değişiklik veya silme işlemiyle karşılaşırsa bir hata oluşur. Statik veya yalnızca ekleme kaynaklarından okumak en güvenlidir. Değişiklik taahhütleri içeren verileri içeri çekmek için Python'ı veSkipChangeCommitsseçeneğini hataları işlemek için kullanabilirsiniz.Birlikte bir
queryve birtable_specificationbelirttiğinizde,table_specificationiçinde belirtilen tablo şemasıquerytarafından döndürülen tüm sütunları içermelidir, aksi takdirde bir hata alırsınız.table_specificationbelirtilen ancakquerytarafından döndürülmeyen tüm sütunlar sorgulandığındanulldeğerleri döndürür.Akış verileri hakkında daha fazla bilgi için bkz. İşlem hatları ile veri dönüştürme.
Gerekli izinler
İşlem hattı için çalıştırma kullanıcısının aşağıdaki izinlere sahip olması gerekmektedir.
-
SELECTayrıcalığı, akış tablosunun atıfta bulunduğu temel tablolar üzerindedir. - Üst katalogda
USE CATALOGayrıcalığı ve üst şemadakiUSE SCHEMAayrıcalığı. -
CREATE MATERIALIZED VIEWayrıcalığı, akış tablosu için şema üzerinde yetkidir.
Bir kullanıcının akış tablosunun içinde tanımlandığı işlem hattını güncelleştirebilmesi için şunlar gerekir:
- Üst katalogda
USE CATALOGayrıcalığı ve üst şemadakiUSE SCHEMAayrıcalığı. - Akış tablosunun veya
REFRESHayrıcalığının sahipliği. - Akış tablosunun sahibi, akış tablosunun başvurduğu temel tablolar üzerinde
SELECTayrıcalığına sahip olmalıdır.
Kullanıcının sonuçta elde edilen akış tablosunu sorgulayabilmesi için şunlar gerekir:
- Üst katalogda
USE CATALOGayrıcalığı ve üst şemadakiUSE SCHEMAayrıcalığı. -
SELECTakış tablosu üzerinde ayrıcalığa sahip olun.
Sınırlamalar
- En son verileri almak için yalnızca tablo sahipleri akış tablolarını yenileyebilir.
- akış tablolarında
ALTER TABLEkomutlara izin verilmez. Tablonun tanımı ve özellikleriCREATE OR REFRESHveya ALTER STREAMING TABLE deyimiyle değiştirilmelidir. - tablo şemasını
INSERT INTOveMERGEgibi DML komutları aracılığıyla geliştirme desteklenmez. - Akış tablolarında aşağıdaki komutlar desteklenmez:
CREATE TABLE ... CLONE <streaming_table>COPY INTOANALYZE TABLERESTORETRUNCATEGENERATE MANIFEST[CREATE OR] REPLACE TABLE
- Tabloyu yeniden adlandırmak veya sahibini değiştirmek desteklenmemektedir.
- Oluşturulan sütunlar, kimlik sütunları ve varsayılan sütunlar desteklenmez.
Örnekler
-- Define a streaming table from a volume of files:
CREATE OR REFRESH STREAMING TABLE customers_bronze
AS SELECT * FROM STREAM read_files("/databricks-datasets/retail-org/customers/*", format => "csv")
-- Define a streaming table from a streaming source table:
CREATE OR REFRESH STREAMING TABLE customers_silver
AS SELECT * FROM STREAM(customers_bronze)
-- Define a table with a row filter and column mask:
CREATE OR REFRESH STREAMING TABLE customers_silver (
id int COMMENT 'This is the customer ID',
name string,
region string,
ssn string MASK catalog.schema.ssn_mask_fn COMMENT 'SSN masked for privacy'
)
WITH ROW FILTER catalog.schema.us_filter_fn ON (region)
AS SELECT * FROM STREAM(customers_bronze)
-- Define a streaming table that you can add flows into:
CREATE OR REFRESH STREAMING TABLE orders;