Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En strömningstabell är en tabell med stöd för direktuppspelning eller inkrementell databearbetning. Strömmande tabeller stöds av pipelines. Varje gång en strömmande tabell uppdateras läggs data som läggs till i källtabellerna till i strömningstabellen. Du kan uppdatera strömmande tabeller manuellt eller enligt ett schema.
Mer information om hur du utför eller schemalägger uppdateringar finns i Köra en pipelineuppdatering.
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 } } [ ... ]
Parameterar
REFRESH
Om du anger det skapar du tabellen eller uppdaterar en befintlig tabell och dess innehåll.
PRIVAT
Skapar en privat strömningstabell.
- De läggs inte till i katalogen och är endast tillgängliga i den definierande pipelinen
- De kan ha samma namn som ett befintligt objekt i katalogen. Om en privat direktuppspelningstabell och ett objekt i katalogen har samma namn i pipelinen matchas referenser till namnet till den privata direktuppspelningstabellen.
- Privata direktuppspelningstabeller sparas bara under pipelinens livslängd, inte bara en enda uppdatering.
Privata direktuppspelningstabeller skapades tidigare med parametern
TEMPORARY.table_name
Namnet på den nyligen skapade tabellen. Det fullständigt kvalificerade tabellnamnet måste vara unikt.
tabellspecifikation
Den här valfria satsen definierar listan över kolumner, deras typer, egenskaper, beskrivningar och kolumnbegränsningar.
-
Kolumnnamnen måste vara unika och mappas till frågans utdatakolumner.
-
Specificerar kolumnens datatyp. Alla datatyper som stöds av Azure Databricks stöds inte av strömmande tabeller.
column_comment
En valfri
STRING-literal som beskriver kolumnen. Det här alternativet måste anges tillsammans medcolumn_type. Om kolumntypen inte har angetts hoppas kolumnkommenteringen över.-
Lägger till en begränsning som validerar data när de flödar in i tabellen. Se avsnittet Hantera datakvalitet med pipeline-förväntningar.
-
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Lägger till en kolumnmaskfunktion för att anonymisera känsliga data.
-
tabellbegränsning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
När du anger ett schema kan du definiera primära och externa nycklar. Begränsningarna är informationsmässiga och tillämpas inte. CONSTRAINT Se satsen i SQL-språkreferensen.
Anmärkning
För att definiera tabellbegränsningar måste pipelinen vara en Unity Catalog-aktiverad pipeline.
tabellklausuler
Du kan också ange partitionering, kommentarer och användardefinierade egenskaper för tabellen. Varje undersats kan endast anges en gång.
ANVÄNDA DELTA
Anger dataformatet. Det enda alternativet är DELTA.
Den här satsen är valfri och är standard för DELTA.
Partitionerad efter
En valfri lista över en eller flera kolumner som ska användas för partitionering i tabellen. Ömsesidigt uteslutande med
CLUSTER BY.Flytande klustring ger en flexibel, optimerad lösning för klustring. Överväg att använda
CLUSTER BYi stället förPARTITIONED BYför pipelines.CLUSTER BY
Aktivera flytande klustring i tabellen och definiera de kolumner som ska användas som klustringsnycklar. Använd automatisk flytande klustring med
CLUSTER BY AUTO, och Databricks väljer intelligent klustringsnycklar för att optimera frågeprestanda. Ömsesidigt uteslutande medPARTITIONED BY.PLATS
En valfri lagringsplats för tabelldata. Om det inte anges kommer systemet att välja pipelinelagringsplatsen som standardinställning.
KOMMENTAR
En valfri
STRINGliteral för att beskriva tabellen.TBLPROPERTIES
En valfri lista över tabellegenskaper för tabellen.
MED ROW FILTER
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Lägger till en radfilterfunktion i tabellen. Framtida frågor för tabellen tar emot en delmängd av de rader som funktionen utvärderas till TRUE för. Detta är användbart för detaljerad åtkomstkontroll eftersom den gör att funktionen kan kontrollera identitets- och gruppmedlemskapen för den anropande användaren för att avgöra om vissa rader ska filtreras.
-
Den här satsen fyller i tabellen med hjälp av data från
query. Den här frågan måste vara en direktuppspelningsfråga . Använd stream-nyckelordet för att använda strömmande semantik för att läsa från källan. Om läsningen påträffar en ändring eller borttagning av en befintlig post utlöses ett fel. Det är säkrast att läsa från statiska eller endast tilläggskällor. Om du vill mata in data som har ändringsincheckningar kan du använda Python ochSkipChangeCommitsalternativet för att hantera fel.När du anger en
queryoch entable_specificationtillsammans måste tabellschemat som anges itable_specificationinnehålla alla kolumner som returneras avquery, annars får du ett fel. Alla kolumner som anges itable_specificationmen som inte returneras avqueryreturnerarnullvärden när du frågar.Mer information om strömmande data finns i Transformera data med pipelines.
Behörigheter som krävs
Kör som-användaren för en pipeline måste ha följande behörigheter:
-
SELECTöver bastabellerna som refereras av strömningstabellen. -
USE CATALOGbehörighet i den överordnade katalogen ochUSE SCHEMAbehörighet i det överordnade schemat. -
CREATE MATERIALIZED VIEWbehörighet i schemat för strömningstabellen.
För att en användare ska kunna uppdatera pipelinen definieras strömningstabellen inom:
-
USE CATALOGbehörighet i den överordnade katalogen ochUSE SCHEMAbehörighet i det överordnade schemat. - Ägarskap för strömningstabellen eller
REFRESHbehörigheten i strömningstabellen. - Ägaren av strömningstabellen måste ha behörighet
SELECTför bastabellerna som strömningstabellen hänvisar till.
För att en användare ska kunna köra frågor mot den resulterande direktuppspelningstabellen behöver de:
-
USE CATALOGbehörighet i den överordnade katalogen ochUSE SCHEMAbehörighet i det överordnade schemat. -
SELECTprivilegium över strömningstabellen.
Begränsningar
- Endast tabellägare kan uppdatera strömmande tabeller för att hämta de senaste data.
-
ALTER TABLEkommandon tillåts inte för strömmande tabeller. Tabellens definition och egenskaper bör ändras via instruktionenCREATE OR REFRESHeller ALTER STREAMING TABLE. - Det går inte att utveckla tabellschemat via DML-kommandon som
INSERT INTOochMERGE. - Följande kommandon stöds inte i strömmande tabeller:
CREATE TABLE ... CLONE <streaming_table>COPY INTOANALYZE TABLERESTORETRUNCATEGENERATE MANIFEST[CREATE OR] REPLACE TABLE
- Det går inte att byta namn på tabellen eller ändra ägaren.
- Genererade kolumner, identitetskolumner och standardkolumner stöds inte.
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;