Pular para o conteúdo principal

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

info

Visualização

O conector do Microsoft SQL Server está em uma versão prévia pública fechada. 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 de tabela: ingere 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: ingere todas as tabelas do catálogo e do esquema de origem especificados no catálogo e no 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 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 deve ser usada em vez de, por exemplo, marketing. Caso contrário, nenhuma tabela será descoberta para ingestão.

Ao usar as especificações do 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 removida explicitamente da definição do pipeline de ingestão. No caso da replicação completa do esquema, 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 você 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 da tabela de origem em diferentes esquemas de origem 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 no esquema da 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 de esquema incompatíveis

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.

nota

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 .

refresh completo das tabelas de destino

O senhor pode usar o recurso refresh completo no DLT 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 UI 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.

important

A atualização do pipeline de ingestão pode falhar durante a fase Initializing ou Resetting tables. A 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. Não fazer isso pode fazer com que as tabelas de destino sejam deixadas em um estado inconsistente com dados parciais. Se as tentativas manuais também falharem, crie um ticket de suporte.

alertas e notificações

O alerta para falhas no pipeline é 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 no PUT /api/2.0/pipeline/{pipeline} documentação.