Pular para o conteúdo principal

CRIAR FLUXO (DLT)

Use a instrução CREATE FLOW para criar fluxos ou backfills para as tabelas DLT.

Sintaxe

CREATE FLOW flow_name [COMMENT comment] AS
{
INSERT INTO [ONCE] target_table BY NAME query
}

Parâmetros

  • nome_do_fluxo

    O nome do fluxo a ser criado.

  • comentário

    Uma descrição opcional para o fluxo.

  • UMA VEZ

    Opcionalmente, defina o fluxo como um fluxo único, como um preenchimento. Usar ONCE altera o fluxo de duas maneiras:

    • A fonte query ou apply_changes_spec não é uma tabela de transmissão.
    • O fluxo é executado uma vez pelo site default. Se o pipeline for atualizado com um refresh completo, o fluxo ONCE será executado novamente para recriar os dados.
  • tabela_alvo

    A tabela a ser atualizada. Essa deve ser uma tabela de transmissão.

  • INSERT INTO

    Define uma consulta de tabela que é inserida na tabela de destino. Se a opção ONCE não for fornecida, a consulta deverá ser uma consulta de transmissão . Use a palavra-chave transmissão para usar a semântica de transmissão para ler a partir da fonte. Se a leitura encontrar uma alteração ou exclusão em um registro existente, um erro será gerado. É mais seguro ler de fontes estáticas ou somente anexadas. Para ingerir dados com commit de alteração, o senhor pode usar Python e a opção SkipChangeCommits para lidar com erros.

Exemplos

SQL
-- Create a streaming table, and add two flows that apply changes to it:
CREATE OR REFRESH STREAMING TABLE target_table;

-- first flow into target_table:
APPLY CHANGES INTO target_table
FROM stream(cdc_data.users)
KEYS (userId)
APPLY AS DELETE WHEN
operation = "DELETE"
SEQUENCE BY sequenceNum
COLUMNS * EXCEPT (operation, sequenceNum)
STORED AS SCD TYPE 2;

-- second flow into target_table:
CREATE FLOW my_append_flow AS
INSERT INTO ONCE target_table
SELECT * FROM my_backfill_table