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.
Eine Streamingtabelle ist eine Tabelle mit Unterstützung für Streaming oder inkrementelle Datenverarbeitung. Streamingtabellen werden von Pipelines gestützt. Jedes Mal, wenn eine Streamingtabelle aktualisiert wird, werden die Daten, die zu den Quelltabellen hinzugefügt wurden, an die Streamingtabelle angehängt. Sie können Streamingtabellen manuell oder in einem Zeitplan aktualisieren.
Weitere Informationen zum Ausführen oder Planen von Aktualisierungen finden Sie unter Ausführen eines Pipelineupdates.
Syntax
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 } } [ ... ]
Die Parameter
REFRESH
Wenn angegeben, wird die Tabelle erstellt oder eine vorhandene Tabelle und deren Inhalt aktualisiert.
PRIVATE
Erstellt eine private Streamingtabelle.
- Sie werden nicht zum Katalog hinzugefügt und sind nur innerhalb der definierenden Pipeline zugänglich.
- Sie können denselben Namen wie ein vorhandenes Objekt im Katalog haben. Wenn innerhalb der Pipeline eine private Streamingtabelle und ein Objekt im Katalog denselben Namen haben, werden Verweise auf diesen Namen der privaten Streamingtabelle zugeordnet.
- Private Streamingtabellen werden während der gesamten Lebensdauer der Pipeline beibehalten, nicht nur während eines einzelnen Updates.
Private Streamingtabellen wurden zuvor mit dem
TEMPORARYParameter erstellt.table_name
Der Name der neu erstellten Tabelle. Der vollqualifizierte Tabellenname muss eindeutig sein.
Tabellenspezifikation
Diese optionale Klausel definiert die Liste der Spalten, deren Typen, Eigenschaften, Beschreibungen und Spalteneinschränkungen.
-
Die Spaltennamen müssen eindeutig sein und mit den Ausgabespalten der Abfrage übereinstimmen.
-
Gibt den Datentyp der Spalte an. Nicht alle datentypen, die von Azure Databricks unterstützt werden, werden von Streamingtabellen unterstützt.
column_comment
Ein optionales
STRING-Literal, das die Spalte beschreibt. Diese Option muss zusammen mitcolumn_typeangegeben werden. Wenn der Spaltentyp nicht angegeben ist, wird der Spaltenkommentar übersprungen.-
Fügt eine Einschränkung hinzu, die Daten überprüft, während sie in die Tabelle fließt. Weitere Informationen finden Sie unter Verwalten der Datenqualität mit Pipelineerwartungen.
-
Von Bedeutung
Dieses Feature befindet sich in der Public Preview.
Fügt eine Spaltenmaskierungsfunktion hinzu, um sensible Daten zu anonymisieren.
-
Tabellenbeschränkung
Von Bedeutung
Dieses Feature befindet sich in der Public Preview.
Beim Angeben eines Schemas können Sie Primär- und Fremdschlüssel definieren. Die Constraints dienen der Information und werden nicht erzwungen. Siehe die CONSTRAINTKlausel in der SQL-Sprachreferenz.
Hinweis
Um Tabelleneinschränkungen zu definieren, muss ihre Pipeline eine Unity-Katalog-fähige Pipeline sein.
Tabellenklauseln
Geben Sie optional Partitionierung, Kommentare und benutzerdefinierte Eigenschaften für die Tabelle an. Jede Unterklausel kann nur einmal angegeben werden.
VERWENDEN VON DELTA
Gibt das Datenformat an. Die einzige Option ist DELTA.
Diese Klausel ist optional und standardmäßig DELTA.
PARTITIONIERT VON
Eine optionale Liste mit einer oder mehreren Spalten, die für die Partitionierung in der Tabelle verwendet werden sollen. Gegenseitiger Ausschluss mit
CLUSTER BYFlüssigkeitsclustering bietet eine flexible, optimierte Lösung für Clustering. Erwägen Sie die Verwendung von
CLUSTER BYanstelle vonPARTITIONED BYfür Pipelines.CLUSTER BY
Aktivieren des Liquid Clustering für die Tabelle und Definieren der Spalten, die als Clusterschlüssel verwendet werden sollen. Verwenden Sie automatische Flüssigclustering mit
CLUSTER BY AUTO, und Databricks wählt intelligent Clustering-Schlüssel aus, um die Abfrageleistung zu optimieren. Gegenseitiger Ausschluss mitPARTITIONED BYORT
Ein optionaler Speicherort für Tabellendaten. Wenn diese Einstellung nicht festgelegt ist, verwendet das System standardmäßig den Speicherort der Pipeline.
KOMMENTAR
Ein optionales
STRING-Literal zum Beschreiben der Tabelle.TBLPROPERTIES
Eine optionale Liste der Tabelleneigenschaften für die Tabelle.
MIT ROW FILTER
Von Bedeutung
Dieses Feature befindet sich in der Public Preview.
Fügt der Tabelle eine Zeilenfilterfunktion hinzu. Zukünftige Abfragen für diese Tabelle erhalten eine Teilmenge der Zeilen, für die die Funktion als TRUE ausgewertet wird. Dies ist für eine differenzierte Zugriffssteuerung nützlich, da die Funktion dadurch die Identität oder Gruppenmitgliedschaften der aufrufenden Benutzenden überprüfen kann, um zu entscheiden, ob bestimmte Zeilen gefiltert werden sollen.
Siehe
ROW FILTERKlausel.-
Diese Klausel füllt die Tabelle mit den Daten aus
queryauf. Diese Abfrage muss eine Streamingabfrage sein. Verwenden Sie das STREAM-Schlüsselwort, um Streamingsemantik zum Lesen aus der Quelle zu verwenden. Wenn beim Lesen eine Änderung oder löschung in einem vorhandenen Datensatz auftritt, wird ein Fehler ausgelöst. Es ist am sichersten, aus statischen oder nur angefügten Quellen zu lesen. Zum Einlesen von Daten mit Änderungs-Commits können Sie Python und dieSkipChangeCommitsOption zur Fehlerbehandlung verwenden.Bei gemeinsamer Angabe von
queryundtable_specificationmuss das intable_specificationangegebene Tabellenschema alle vonqueryzurückgegebenen Spalten enthalten. Andernfalls tritt ein Fehler auf. Alle Spalten, die intable_specificationangegeben, aber nicht vonqueryzurückgegeben wurden, geben bei der Abfragenull-Werte zurück.Weitere Informationen zum Streamen von Daten finden Sie unter Transformieren von Daten mit Pipelines.
Erforderliche Berechtigungen
Das für die Ausführung einer Pipeline verwendete Benutzendenkonto muss über die folgenden Berechtigungen verfügen:
- Berechtigung
SELECTfür die Basistabellen, auf die von der Streamingtabelle verwiesen wird. - Berechtigung
USE CATALOGfür den übergeordneten Katalog und BerechtigungUSE SCHEMAfür das übergeordnete Schema. - Berechtigung
CREATE MATERIALIZED VIEWfür das Schema für die Streamingtabelle.
Damit ein Benutzer die Pipeline aktualisieren kann, in der die Streamingtabelle definiert ist, ist folgendes erforderlich:
- Berechtigung
USE CATALOGfür den übergeordneten Katalog und BerechtigungUSE SCHEMAfür das übergeordnete Schema. - Besitz der Streamingtabelle oder Berechtigung
REFRESHfür die Streamingtabelle. - Der Besitzer der Streamingtabelle muss über die
SELECTBerechtigungen für die Basistabellen verfügen, auf die von der Streamingtabelle verwiesen wird.
Damit ein Benutzer die resultierende Streamingtabelle abfragen kann, ist Folgendes erforderlich:
- Berechtigung
USE CATALOGfür den übergeordneten Katalog und BerechtigungUSE SCHEMAfür das übergeordnete Schema. - Berechtigung
SELECTfür die Streamingtabelle.
Einschränkungen
- Nur Tabellenbesitzende können Streamingtabellen aktualisieren, um die neuesten Daten abzurufen.
-
ALTER TABLE-Befehle sind für Streamingtabellen nicht zulässig. Die Definition und die Eigenschaften der Tabelle sollten durch dieCREATE OR REFRESH- oder ALTER STREAMING TABLE-Anweisung geändert werden. - Die Weiterentwicklung des Tabellenschemas durch DML-Befehle wie
INSERT INTOundMERGEwird nicht unterstützt. - Die folgenden Befehle werden für Streamingtabellen nicht unterstützt:
CREATE TABLE ... CLONE <streaming_table>COPY INTOANALYZE TABLERESTORETRUNCATEGENERATE MANIFEST[CREATE OR] REPLACE TABLE
- Das Umbenennen der Tabelle oder das Ändern des Besitzers bzw. der Besitzerin wird nicht unterstützt.
- Generierte Spalten, Identitätsspalten und Standardspalten werden nicht unterstützt.
Examples
-- 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;