Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Dieses Feature befindet sich in der Betaversion.
Verwenden Sie die CREATE TABLE ... FLOW Anweisung, um eine verwaltete Tabelle in einer Pipeline zu erstellen, die von einem oder mehreren Flüssen geschrieben wurde.
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
Um mehrere Quellen in eine verwaltete Tabelle einzufächern, deklarieren Sie mehrere Flüsse, die auf sie mit CREATE FLOW (Pipelines) abzielen:
CREATE FLOW flow_name AS INSERT INTO table_name BY NAME query
Parameters
table_name
Der Name der zu erstellenden verwalteten Tabelle. Wenn der Name nicht qualifiziert ist, wird die Tabelle im Zielschema der Pipeline erstellt. Der Name darf noch nicht zu einer Streamingtabelle gehören.
Tabellenspezifikation
Definiert optional die Spalten, deren Typen, Eigenschaften und Beschreibungen. Wenn sie weggelassen wird, wird das Schema aus der Flussabfrage abgeleitet.
CONSTRAINT expectation_name ERWARTEN (expectation_expr) [ ON VIOLATION { FAIL UPDATE | DROP ROW } ]
Fügt Datenqualitätserwartungen in die verwaltete Tabelle hinzu. Diese Erwartungen an die Datenqualität können zeitlich verfolgt und über das Ereignisprotokoll der Pipeline abgerufen werden. Die Erwartung
FAIL UPDATEbewirkt, dass die Verarbeitung nicht erfolgreich ist, wenn die Tabelle sowohl erstellt als auch aktualisiert wird. Die ErwartungDROP ROWbewirkt, dass die gesamte Zeile gelöscht wird, wenn die Erwartung nicht erfüllt wird. Weitere Informationen finden Sie unter Verwalten der Datenqualität mit Pipelineerwartungen.expectation_exprkönnen aus Literalen, Spaltenkennungen innerhalb der Tabelle und deterministischen, integrierten SQL-Funktionen oder -Operatoren bestehen, außer:-
Aggregatfunktionen
- Analysefensterfunktionen
- Rangfolgefensterfunktionen
- Tabellenwertgenerator-Funktionen
Darüber hinaus darf
expectation_exprkeine Unterabfrage enthalten.-
Aggregatfunktionen
PARTITIONIERT VON (Spalte [, ...])
Partitioniert die Tabelle optional durch eine Teilmenge von Spalten.
CLUSTER BY Klausel
Ermöglicht optional die Flüssigkeitsclusterung auf dem Tisch. Sie können nicht kombinieren
PARTITIONED BYundCLUSTER BY.LOCATION-Pfad
Ein optionaler Speicherort für die Tabellendaten.
KOMMENTAR table_comment
Ein
STRINGLiteral, das die Tabelle beschreibt.TBLPROPERTIES-Klausel
Legt optional eine oder mehrere benutzerdefinierte Tabelleneigenschaften fest.
WITH-Klausel ROW FILTER
Fügt der Tabelle eine Zeilenfilterfunktion hinzu. Zukünftige Abfragen für diese Tabelle erhalten eine Teilmenge der Zeilen, für die die Funktion ausgewertet wird
TRUE.FLOW INSERT [ONCE] BY NAME-Abfrage
Definiert einen Anfügefluss, der das Ergebnis der
queryTabelle einfügt, wobei Ergebnisspalten nach Namen zu Tabellenspalten übereinstimmen.querykann auf Batch- oder Streamingquellen verweisen.ONCEführt den Ablauf nur einmal aus (z. B. bei einem Rückfüllvorgang), anstatt auf jeder Aktualisierung. Jeder benannte Fluss verarbeitet seine Eingabe genau einmal pro Pipelineaktualisierung, identisch mitFLOW INSERT BY NAMEeiner Streamingtabelle.
Einschränkungen
- Verwaltete Tabellen unterstützen keine CDC-Änderungsflüsse.
AUTO CDC INTO(SQL) oderapply_changes/apply_changes_from_snapshot(Python) für eine verwaltete Tabelle schlägt mitMANAGED_TABLE_DOES_NOT_SUPPORT_CDC. Verwenden Sie eine CREATE STREAMING TABLE (Pipeline) für CDC-Ziele. - Verwaltete Tabellen werden nicht unterstützt
FLOW ... REPLACE WHERE. NurFLOW INSERT BY NAMEwird unterstützt. - Verwaltete Tabellen werden nur in Pipelines mit Unity-Katalog unterstützt. Der Hive-Metaspeicher wird nicht unterstützt.
- Sie können den Namen einer vorhandenen Streamingtabelle für eine verwaltete Tabelle nicht wiederverwenden. Legen Sie die Streamingtabelle zuerst ab, oder die Anweisung schlägt mit
CANNOT_SWITCH_STREAMING_TABLE_TO_MANAGED_TABLE.
Beispiele
-- 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;