Manutenção do pipeline de ingestão do SQL Server

Prévia

O LakeFlow Connect está em um Public Preview fechado. Para participar da pré-visualização, entre em contato com a equipe do Databricks account .

Este artigo descreve as operações em andamento para manter o pipeline de ingestão do SQL Server usando a UI do LakeFlow Connect.

Remover arquivos de teste não utilizados

Para o pipeline de ingestão criado após 6 de janeiro de 2025, os dados de preparação de volume são automaticamente programados para exclusão após 25 dias e fisicamente removidos após 30 dias. Um pipeline de ingestão que não foi concluído com êxito por 25 dias ou mais pode resultar em lacunas de dados nas tabelas de destino. Para evitar lacunas, o senhor deve acionar um refresh completo das tabelas de destino.

Para o pipeline de ingestão criado antes de 6 de janeiro de 2025, entre em contato com o suporte Databricks para solicitar a ativação manual do gerenciamento automático de retenção para a preparação de dados CDC.

Os seguintes dados são automaticamente limpos:

  • Arquivos de dados do CDC

  • Snapshot arquivos

  • Preparando dados da tabela

Especificar tabelas a serem ingeridas

O pipeline API oferece dois métodos para especificar as tabelas a serem ingeridas no campo objects do ingestion_definition:

  • Especificação da tabela: Faz a ingestão de uma tabela individual do catálogo e esquema de origem especificados para o catálogo e esquema de destino especificados.

    {"table": {
    
            "source_catalog": ...,
    
            "source_schema": ...,
    
            "source_table": ...,
    
            "destination_catalog": ...,
    
            "destination_schema": ...
    
            }}
    
  • Especificação do esquema: Faz a ingestão de todas as tabelas do catálogo e esquema de origem especificados no catálogo e esquema especificados.

    {"schema": {
    
            "source_catalog": ...,
    
            "source_schema": ...,
    
            "destination_catalog": ...,
    
            "destination_schema": ...
    
            }}
    

Ao especificar os nomes source_catalog, source_schema e source_table no exemplo anterior, é necessário usar as letras maiúsculas e minúsculas exatas. Por exemplo, se o catálogo do banco de dados de origem for especificado como Marketing em sys.databases, a mesma caixa deverá ser usada em vez de, por exemplo, marketing. Caso contrário, nenhuma tabela será descoberta para ingestão.

Ao usar especificações de esquema, todas as novas tabelas no esquema de origem são automaticamente ingeridas no destino. Não há suporte para ignorar tabelas descartadas. Se uma tabela for descartada no banco de dados de origem, ela precisará ser explicitamente removida da definição do pipeline de ingestão. No caso da replicação de esquema completo, ela precisa ser substituída por um conjunto explícito de tabelas.

Para diminuir a carga no banco de dados de origem, o gateway só verifica periodicamente se há novas tabelas. Pode levar até 6 horas para que novas tabelas sejam descobertas. Se o senhor quiser acelerar esse processo, reinicie o gateway.

Várias especificações de tabela ou esquema podem ser incluídas no campo objects do ingestion_definition. Nenhum dos nomes de tabelas de origem em esquemas de origem diferentes pode se sobrepor. Isso resulta em falha no pipeline de ingestão.

Captura de DDL de origem e evolução do esquema

O conector do SQL Server pode rastrear alterações no esquema de tabela das tabelas de origem. Algumas alterações no esquema da tabela são tratadas automaticamente e o esquema da tabela de destino correspondente evolui automaticamente.

As seguintes alterações no esquema da tabela são tratadas automaticamente:

ALTER TABLE ADD COLUMN sem o valor default.

Todas as outras alterações de esquema de tabela são consideradas alterações de esquema incompatíveis.

ALTER TABLE... ADD COLUMN

O pipeline de ingestão é reiniciado automaticamente para incluir a(s) nova(s) coluna(s). As linhas na tabela Delta de destino antes da alteração do esquema têm o valor da(s) nova(s) coluna(s) definido como NULL.

Alterações incompatíveis no esquema

Uma alteração de esquema incompatível faz com que o pipeline de ingestão falhe com um erro INCOMPATIBLE_SCHEMA_CHANGE. Para continuar a replicação, acione um refresh completo das tabelas afetadas.

Observação

A Databricks não pode garantir que, no momento em que o pipeline de ingestão falhar devido a uma alteração de esquema incompatível, todas as linhas anteriores à alteração de esquema tenham sido ingeridas.

Alterar a ingestão pipeline programar

  1. No site Databricks workspace, clique em Job execução.

  2. Clique em Jobs tab.

  3. Clique no Job e, em seguida, modifique a seção programar & Triggers.

Atualização completa das tabelas de destino

O senhor pode usar o recurso refresh completo em Delta Live Tables com seu pipeline de ingestão. Um refresh completo sincroniza o esquema de uma ou mais tabelas de destino com o esquema das tabelas de origem correspondentes e copia novamente todos os dados da tabela. Isso é útil no caso de uma alteração de esquema incompatível.

Para acionar um refresh completo nas tabelas selecionadas, clique em Select tables for refresh na interface do usuário do DLT pipeline para a ingestão pipeline. Selecione as tabelas desejadas e clique em Full refresh selection (Atualizar seleção completa).

Para executar um refresh completo em todas as tabelas em uma ingestão pipeline, clique no menu suspenso ao lado do botão começar e selecione Full refresh all.

Uma atualização do DLT pipeline com um refresh completo de uma ou mais tabelas pode ser reconhecida pela fase após a fase de inicialização durante o pipeline start-up.

Importante

A atualização do pipeline de ingestão pode falhar durante a fase Initializing ou Resetting tables. O DLT tentará novamente o pipeline automaticamente várias vezes. Se as tentativas automáticas forem interrompidas manualmente ou eventualmente falharem fatalmente, comece a nova atualização do pipeline manualmente com a tabela refresh selecionada anteriormente. Se isso não for feito, as tabelas de destino podem ficar em um estado inconsistente com dados parciais. Se as tentativas manuais também falharem, crie um tíquete de suporte.

alertas e notificações

O alerta para pipeline falhas é configurado automaticamente para todos os gateways, gerenciar o pipeline de ingestão e gerenciar o Job de programação de ingestão. O senhor pode personalizar o alerta usando o pipeline API. Consulte Notificações em PUT /api/2.0/pipeline/{{pipeline} documentação.