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.
Important
Bu özellik Beta sürümündedir.
CREATE TABLE ... FLOW bir veya daha fazla akış tarafından yazılmış bir işlem hattında yönetilen tablo oluşturmak için deyimini kullanın.
Syntax
CREATE TABLE
table_name
[ table_specification ]
[ table_clauses ]
[ flow_clause ]
table_specification
( { column_identifier column_type [column_properties] } [, ...]
[ CONSTRAINT expectation_name EXPECT (expectation_expr)
[ ON VIOLATION { FAIL UPDATE | DROP ROW } ] ] [, ...] )
table_clauses
{ PARTITIONED BY (col [, ...]) |
CLUSTER BY clause |
LOCATION path |
COMMENT table_comment |
TBLPROPERTIES clause |
WITH { ROW FILTER clause } } [ ... ]
flow_clause
FLOW INSERT [ONCE] BY NAME query
Birden çok kaynağı tek bir yönetilen tabloda gruplandırmak için CREATE FLOW (işlem hatları) ile onu hedefleyen birkaç akış bildirin:
CREATE FLOW flow_name AS INSERT INTO table_name BY NAME query
Parameters
table_name
Oluşturulacak yönetilen tablonun adı. Ad uygun değilse, tablo işlem hattının hedef şemasında oluşturulur. Ad zaten bir akış tablosuna ait olmamalıdır.
tablo_özellikleri
İsteğe bağlı olarak sütunları, bunların türlerini, özelliklerini ve açıklamalarını tanımlar. Atlanırsa, şema akış sorgusundan çıkarılır.
CONSTRAINT expectation_name EXPECT (expectation_expr) [ İHLAL DURUMUNDA { FAIL UPDATE | SATIRI SİL } ]
Yönetilen tabloya veri kalitesi beklentileri ekler. Bu veri kalitesi beklentileri zamanla takip edilebilir ve boru hattının olay günlüğü üzerinden erişilebilir.
FAIL UPDATEbir beklenti, hem tabloyu oluştururken hem de tabloyu yenilerken işlemenin başarısız olmasına neden olur. Beklenti karşılanmadığında,DROP ROWsatırın tamamının silinmesine neden olur. Bkz. İşlem hattı beklentileriyle veri kalitesini yönetme.expectation_exprliterallardan, tablo içindeki sütun tanımlayıcılarından ve deterministik, yerleşik SQL fonksiyonları veya operatörlerinden oluşabilir, hariç:-
Toplama işlevleri
- Analitik pencere işlevleri
- Derecelendirme penceresi işlevleri
- Tablo değer döndüren oluşturucu işlevleri
Ayrıca
expectation_exprherhangi bir alt sorgu içermemelidir.-
Toplama işlevleri
BÖLÜMLENDİ (sütun [, ...])
İsteğe bağlı olarak tabloyu sütunların bir alt kümesine göre bölümlere ayırır.
CLUSTER BY cümle
İsteğe bağlı olarak tabloda sıvı kümelemini etkinleştirir. ve
PARTITIONED BYöğesini birleştiremezsinizCLUSTER BY.KONUM yolu
Tablo verileri için isteğe bağlı bir depolama konumu.
YORUM tablo_yorumu
STRINGTabloyu açıklayan değişmez değer.TBLPROPERTIES yan tümcesi
İsteğe bağlı olarak bir veya daha fazla kullanıcı tanımlı tablo özelliği ayarlar.
WITH ROW FILTER yan tümcesi
Tabloya bir satır filtresi işlevi ekler. Bu tablo için gelecekteki sorgular, işlevinin olarak değerlendirildiği
TRUEsatırların bir alt kümesini alır.FLOW INSERT [ONCE] BY NAME sorgusu
Sonucu
querytabloya ekleyen ve sonuç sütunlarını tablo sütunlarıyla ada göre eşleştiren bir ekleme akışı tanımlar.querytoplu iş veya akış kaynaklarına başvurabilir.ONCEakışı her güncelleştirme yerine tek bir kez (örneğin, bir geri doldurma) çalıştırır. Her adlandırılmış akış, akış tablosundakiyle aynıFLOW INSERT BY NAMEolan işlem hattı güncelleştirmesi başına girişini tam olarak bir kez işler.
Sınırlamalar
- Yönetilen tablolar CDC değişiklik akışlarını desteklemez.
AUTO CDC INTOyönetilen tabloya karşı (SQL) veyaapply_changes/apply_changes_from_snapshot(Python) ileMANAGED_TABLE_DOES_NOT_SUPPORT_CDCbaşarısız oluyor. CDC hedefleri için birCREATE STREAMING TABLE (işlem hatları) kullanın. - Yönetilen tablolar desteklemez
FLOW ... REPLACE WHERE. YalnızcaFLOW INSERT BY NAMEdesteklenir. - Yönetilen tablolar yalnızca Unity Kataloğu ile işlem hatlarında desteklenir. Hive meta veri deposu desteklenmez.
- Yönetilen tablo için mevcut akış tablosunun adını yeniden kullanamazsınız. Önce akış tablosunu bırakın veya deyimi ile
CANNOT_SWITCH_STREAMING_TABLE_TO_MANAGED_TABLEbaşarısız olur.
Examples
-- Create a managed table populated by an append flow
CREATE TABLE output
FLOW INSERT BY NAME SELECT id FROM LIVE.source;
-- Create a partitioned managed table from a streaming source
CREATE TABLE events
PARTITIONED BY (bucket)
FLOW INSERT BY NAME
SELECT id, bucket FROM STREAM read_files('abfss://my_path', format => 'json');
-- Create a managed table with a data quality expectation that drops violating rows
CREATE TABLE valid_events
(CONSTRAINT positive_id EXPECT (id > 0) ON VIOLATION DROP ROW)
FLOW INSERT BY NAME SELECT id FROM LIVE.source;