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.

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.