CREATE TABLE ... FLOW (pijplijnen)

Important

Deze functie bevindt zich in de bètaversie.

Gebruik de CREATE TABLE ... FLOW instructie om een beheerde tabel te maken in een pijplijn, geschreven door een of meer stromen.

Syntax

CREATE TABLE
  table_name
  [ table_specification ]
  [ table_clauses ]
  [ flow_clause ]

table_specification
  ( { column_identifier column_type [column_properties] } [, ...] )

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

Als u meerdere bronnen in één beheerde tabel wilt weergeven, declareert u verschillende stromen die hierop zijn gericht met CREATE FLOW (pijplijnen):>

CREATE FLOW flow_name AS INSERT INTO table_name BY NAME query

Parameters

  • table_name

    De naam van de beheerde tabel die moet worden gemaakt. Als de naam niet is gekwalificeerd, wordt de tabel gemaakt in het doelschema van de pijplijn. De naam mag niet al deel uitmaken van een streamingtabel.

  • tabelspecificatie

    Definieer eventueel de kolommen, hun typen, eigenschappen en beschrijvingen. Als u dit weglaat, wordt het schema afgeleid van de stroomquery.

  • GEPARTITIONEERD DOOR (kolom [, ...])

    U kunt de tabel desgewenst partitioneren op basis van een subset kolommen.

  • CLUSTER BY clausule

    U kunt eventueel liquide clustering op de tabel inschakelen. U kunt het niet combineren PARTITIONED BY en CLUSTER BY.

  • LOCATIEpad

    Een optionele opslaglocatie voor de tabelgegevens.

  • OPMERKING: table_comment

    Een STRING letterlijke beschrijving van de tabel.

  • TBLPROPERTIES-component

    U kunt desgewenst een of meer door de gebruiker gedefinieerde tabeleigenschappen instellen.

  • WITH-component ROW FILTER

    Hiermee voegt u een rijfilterfunctie toe aan de tabel. Toekomstige query's voor die tabel ontvangen een subset van de rijen waarvoor de functie evalueert TRUE.

  • FLOW INSERT [EENMAAL] OP NAAMquery

    Definieert een toevoegstroom die het resultaat van query de tabel invoegt, waarbij resultaatkolommen op naam worden gekoppeld aan tabelkolommen. query kan verwijzen naar batch- of streamingbronnen. ONCE voert de stroom één keer uit (bijvoorbeeld voor een backfill) in plaats van bij elke update. Elke benoemde stroom verwerkt de invoer precies eenmaal per pijplijnupdate, identiek aan FLOW INSERT BY NAME die in een streamingtabel.

Limitations

  • Beheerde tabellen bieden geen ondersteuning voor CDC-wijzigingsstromen. AUTO CDC INTO(SQL) of apply_changes / apply_changes_from_snapshot (Python) voor een beheerde tabel mislukt met MANAGED_TABLE_DOES_NOT_SUPPORT_CDC. Gebruik een CREATE STREAMING TABLE (pijplijnen) voor CDC-doelen.
  • Beheerde tabellen bieden geen ondersteuning FLOW ... REPLACE WHEREvoor . Alleen FLOW INSERT BY NAME wordt ondersteund.
  • Beheerde tabellen worden alleen ondersteund in pijplijnen met Unity Catalog. De Hive-metastore wordt niet ondersteund.
  • U kunt de naam van een bestaande streamingtabel voor een beheerde tabel niet opnieuw gebruiken. Verwijder eerst de streamingtabel of de instructie mislukt met 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');

Aanvullende bronnen