Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Important
Ez a funkció bétaverzióban érhető el.
CREATE TABLE ... FLOW Az utasítással egy felügyelt táblát hozhat létre egy folyamatban, amelyet egy vagy több folyamat ír.
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
Ha több forrást szeretne egy felügyelt táblába beszűkíteni, deklaráljon több olyan folyamatot, amely a CREATE FLOW -val (folyamatokkal) célozza meg:
CREATE FLOW flow_name AS INSERT INTO table_name BY NAME query
Parameters
table_name
A létrehozandó felügyelt tábla neve. Ha a név nincs minősítve, a tábla a folyamat célsémában jön létre. A név nem tartozhat még streamelési táblához.
táblázat_specifikáció
Opcionálisan meghatározza az oszlopokat, azok típusait, tulajdonságait és leírását. Ha nincs megadva, a rendszer a sémát a folyamat lekérdezéséből következteti.
CONSTRAINT expectation_name EXPECT (expectation_expr) [ SÉRTÉS ESETÉN { HIBA UPDATE | SOR ELHAGYÁSA } ]
Hozzáadja az adatminőségi elvárásokat a kezelt táblához. Ezek az adatminőségi elvárások idővel nyomon követhetők, és a pipeline eseménynaplóján keresztül elérhetők. A
FAIL UPDATEelvárás miatt a feldolgozás sikertelen lesz a tábla létrehozásakor és a tábla frissítésekor is. HaDROP ROWa várakozás nem teljesül, az egész sor elvetésre kerül. Lásd Az adatminőség kezelése folyamatelvárásokkal.expectation_exprLiterálisokból, oszlopazonosítókból állhatnak a táblán belül, valamint determinisztikus, beépített SQL függvényekből vagy operátorokból, kivéve:-
Összesítő függvények
- Analitikai ablakfüggvények
- Rangsorolási ablakfüggvények
- Értékadó generátorfunkciók tábla szerint
Emellett
expectation_exprnem tartalmazhat lekérdezést.-
Összesítő függvények
PARTICIONÁLT (col [, ...])
Igény szerint a táblát oszlopok egy részhalmaza particionálásával is particionálhatja.
CLUSTER BY klauzula
Opcionálisan lehetővé teszi a folyékony fürtözést a táblán. Nem egyesíthető és
PARTITIONED BYnem kombinálhatóCLUSTER BY.HELY elérési útja
A táblaadatok opcionális tárolási helye.
MEGJEGYZÉS table_comment
A
STRINGtáblát leíró literál.TBLPROPERTIES záradék
Igény szerint beállíthat egy vagy több felhasználó által definiált táblatulajdonságokat.
WITH ROW FILTER záradék
Sorszűrő függvényt ad hozzá a táblához. A tábla jövőbeli lekérdezései azoknak a soroknak a részhalmazát kapják meg, amelyekre a függvény kiértékeli a függvényt
TRUE.FLOW INSERT [EGYSZER] NÉV SZERINT lekérdezés
Egy hozzáfűzési folyamatot határoz meg, amely beszúrja
querya tábla eredményét, és név szerint megfelelteti az eredményoszlopokat a táblázatoszlopoknak.queryköteg- vagy streamelési forrásokra hivatkozhat.ONCEA folyamatot egyetlen alkalommal futtatja (például egy visszatöltés esetén), nem pedig minden frissítésen. Minden elnevezett folyamat folyamatfrissítésenként pontosan egyszer dolgozza fel a bemenetét, ugyanaz, mintFLOW INSERT BY NAMEegy streamelési táblában.
Limitations
- A felügyelt táblák nem támogatják a CDC-változási folyamatokat.
AUTO CDC INTO(SQL) vagyapply_changes/apply_changes_from_snapshot(Python) egy felügyelt táblán sikertelen leszMANAGED_TABLE_DOES_NOT_SUPPORT_CDC. Használjon (CREATE STREAMING TABLEfolyamatokat) CDC-célokhoz. - A felügyelt táblák nem támogatottak
FLOW ... REPLACE WHERE. Kizárólag azFLOW INSERT BY NAMEtámogatott. - A felügyelt táblák csak a Unity Catalogtal rendelkező folyamatokban támogatottak. A Hive metaadattára nem támogatott.
- Egy felügyelt tábla meglévő streamelési táblájának nevét nem használhatja újra. Először helyezze el a streamelési táblát, vagy az utasítás meghiúsul a következővel
CANNOT_SWITCH_STREAMING_TABLE_TO_MANAGED_TABLE: .
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;