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) de LakeFlow Pipelines para processar dados de origem de um feed de dados de alterações (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.
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>",
system_sequence_by = None, # optional
ignore_null_updates = False, # optional
ignore_null_updates_column_list = None, # optional
ignore_null_updates_except_column_list = None, # optional
columns_to_update = None, # optional
apply_as_deletes = None, # optional
apply_as_truncates = None, # optional
column_list = None, # optional
except_column_list = None, # optional
stored_as_scd_type = "1", # optional
track_history_column_list = None, # optional
track_history_except_column_list = None, # optional
name = None, # optional
once = False # optional
)
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 As APIs AUTO CDC : Simplifique a captura de dados de alterações (CDC) com pipeline. Para um exemplo de utilização da função create_auto_cdc_flow() , consulte os exemplos AUTO CDC.
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 que especificam a ordem lógica dos eventos de CDC nos dados de origem. LakeFlow Pipelines usam esse sequenciamento para manipular eventos de alteração que chegam fora de ordem. A coluna especificada deve ser um tipo de dados classificável. Você pode especificar um dos seguintes:
|
|
| A coluna que especifica o tempo do sistema em que cada evento CDC é conhecido pelo sistema. Usado com Este parâmetro é opcional e aplica-se apenas a tabelas bitemporais. |
|
| Controla como os valores Defina como O padrão é Para um controle mais preciso sobre quais colunas ignoram valores |
|
| Um subconjunto de colunas para o qual os valores |
|
| Um subconjunto de colunas que aplicam valores |
|
| O nome de uma coluna de origem que contém, para cada registro de alteração, o conjunto de colunas a ser atualizado como um array de strings de nomes de colunas ( Você não pode definir |
|
| 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 Se você usar o Auto Loader como fonte para seu pipeline CDC, o Auto Loader não garante a ordem de processamento dos arquivos. Para obter detalhes, consulte Lidar com dados fora de ordem. Defina |
|
| 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, SCD tipo 2 ou bitemporal. 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
|