criar_fluxo_automático_cdc
A função create_auto_cdc_flow()
cria um fluxo que usa a funcionalidade de captura de dados de alterações (CDC) do pipeline declarativo LakeFlow (CDC) para processar dados de origem de um feed de dados alterados (CDF).
Esta função substitui a função anterior apply_changes()
. As duas funções têm a mesma assinatura. A Databricks recomenda atualizar para usar o novo nome.
Você deve declarar uma tabela de transmissão de destino para aplicar as alterações. Opcionalmente, você pode especificar o esquema para sua tabela de destino. Ao especificar o esquema da tabela de destino create_auto_cdc_flow()
, você deve incluir as colunas __START_AT
e __END_AT
com o mesmo tipo de dados dos campos sequence_by
.
Para criar a tabela de destino necessária, você pode usar a função create_streaming_table() na interface Python do pipeline declarativo LakeFlow .
Sintaxe
from pyspark import pipelines as dp
dp.create_auto_cdc_flow(
target = "<target-table>",
source = "<data-source>",
keys = ["key1", "key2", "keyN"],
sequence_by = "<sequence-column>",
ignore_null_updates = False,
apply_as_deletes = None,
apply_as_truncates = None,
column_list = None,
except_column_list = None,
stored_as_scd_type = <type>,
track_history_column_list = None,
track_history_except_column_list = None,
name = None,
once = False
)
Para o processamento create_auto_cdc_flow
, o comportamento default para eventos INSERT
e UPDATE
é inserir eventos CDC da origem: atualizar todas as linhas na tabela de destino que correspondem à(s) key(s) especificada(s) ou inserir uma nova linha quando um registro correspondente não existir na tabela de destino. O tratamento de eventos DELETE
pode ser especificado com o parâmetro apply_as_deletes
.
Para saber mais sobre o processamento CDC com um feed de alterações, consulte APIs AUTO CDC : Simplifique a captura de dados de alterações (CDC) com pipeline declarativo LakeFlow. Para obter um exemplo de uso da função create_auto_cdc_flow()
, consulte Exemplo: processamento de SCD tipo 1 e SCD tipo 2 com dados de origem CDF.
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
|
| Obrigatório. O nome da tabela a ser atualizada. Você pode usar a função create_streaming_table() para criar a tabela de destino antes de executar a função |
|
| Obrigatório. A fonte de dados contendo registros CDC . |
|
| Obrigatório. A coluna ou combinação de colunas que identifica exclusivamente uma linha nos dados de origem. Isso é usado para identificar quais eventos do CDC se aplicam a registros específicos na tabela de destino. Você pode especificar:
|
|
| Obrigatório. Os nomes das colunas especificam a ordem lógica dos eventos do CDC nos dados de origem. O pipeline declarativo LakeFlow usa esse sequenciamento para lidar com eventos de alteração que chegam fora de ordem. A coluna especificada deve ser um tipo de dado classificável. Você pode especificar:
|
|
| Permitir a ingestão de atualizações contendo um subconjunto da coluna de destino. Quando um evento CDC corresponde a uma linha existente e O padrão é |
|
| Especifica quando um evento CDC deve ser tratado como um
Para lidar com dados fora de ordem, a linha excluída é temporariamente retida como uma marca de exclusão na tabela Delta subjacente, e uma view é criada no metastore que filtra essas marcas de exclusão. O intervalo de retenção padrão é de dois dias e pode ser configurado com a propriedade da tabela |
|
| Especifica quando um evento de CDC deve ser tratado como uma tabela completa
Como esta cláusula aciona um truncamento completo da tabela de destino, ela deve ser usada somente para casos de uso específicos que exigem essa funcionalidade. O parâmetro |
|
| Um subconjunto de colunas a incluir na tabela de destino. Use
Argumentos para funções |
|
| Se os registros devem ser armazenados como SCD tipo 1 ou SCD tipo 2. Defina como |
|
| Um subconjunto de colunas de saída a serem rastreadas para histórico na tabela de destino. Use
Argumentos para funções |
|
| O nome do fluxo. Se não for fornecido, o padrão será o mesmo valor de |
|
| Opcionalmente, defina o fluxo como um fluxo único, como um aterro. Usar
|