Pular para o conteúdo principal

Solucionar problemas de conectores baseados em consultas

info

Visualização

Os conectores baseados em consultas estão em versão prévia pública. Entre em contato com a equipe da sua account Databricks para solicitar acesso.

Colunas de cursor inválidas

Sintoma: O pipeline falha com o erro INVALID_CURSOR_COLUMNS.

Causa: A coluna do cursor não está configurada corretamente. A causa mais comum é especificar mais de uma coluna de cursor. Os conectores baseados em consultas exigem exatamente uma coluna de cursor.

Resolução:

  1. Abra a configuração do seu pipeline (arquivo YAML ou JSON da CLI).
  2. Verifique o campo cursor_column (ingestão de conexão externa) ou a lista cursor_columns (ingestão de catálogo externo).
  3. Confirme se foi especificado exatamente um nome de coluna. Remova quaisquer entradas adicionais.
  4. Confirme se a coluna especificada existe na tabela de origem e se possui valores que aumentam monotonicamente.
  5. Reimplantado ou atualizando o pipeline e acionando uma nova execução.

Falhas de conexão

Sintoma: O pipeline não consegue se conectar ao banco de dados de origem ou o teste de conexão retorna um erro.

Resolução:

  1. Verifique se o objeto de conexão Unity Catalog é válido:

    • No workspace Databricks , acesse Catálogo > Conexões e confirme se a conexão existe e se as credenciais estão atualizadas.
    • Se as credenciais expiraram ou foram alteradas, atualize a conexão com os novos valores.
  2. Verificar a conectividade de rede do compute serverless para o banco de dados de origem:

    • Confirme se o host do banco de dados está acessível a partir da rede compute serverless .
    • Verifique se as regras do firewall, as configurações do grupo de segurança ou o peering de VPC/VNet permitem o tráfego dos intervalos de IP compute serverless para a porta do banco de dados.
    • Para bancos de dados on-premises , confirme se o caminho de rede (como AWS Direct Connect ou Azure ExpressRoute) está ativo.
  3. Para a importação de catálogos externos, confirme se o catálogo externo do Unity Catalog está acessível:

    • No workspace Databricks , acesse Catálogo e confirme se o catálogo externo está visível e pode ser consultado.
    • Tente executar um simples SELECT em uma tabela no catálogo estrangeiro para verificar se a conexão de federação do Lakehouse está funcionando.

O pipeline não está ingerindo novas linhas.

Sintoma: A execução pipeline foi bem-sucedida, mas a tabela de destino não está recebendo novas linhas, embora existam novos dados na origem.

Possíveis causas e soluções:

  • O valor da coluna do cursor não está avançando. Verifique se a coluna do cursor na fonte está sendo atualizada quando as linhas são alteradas. Se o valor da coluna não mudar quando uma linha for modificada, o conector não detectará a alteração. Considere usar uma coluna diferente, como um timestamp last_modified que é atualizado a cada gravação.
  • Valores de cursor nulos. As linhas em que a coluna do cursor é NULL são excluídas da ingestão. Se muitas linhas contiverem valores NULL na coluna do cursor, essas linhas nunca serão processadas. Certifique-se de que a coluna do cursor esteja preenchida para todas as linhas que você deseja importar.
  • Atraso na chegada dos dados ou desalinhamento do relógio. Se as linhas forem gravadas com um carimbo de data/hora futuro, se os dados chegarem com atraso em relação ao programador pipeline ou se houver uma deriva significativa do relógio na origem, essas linhas podem ter valores de cursor acima da marca d'água máxima atual, mas ainda não estarem visíveis para a próxima execução. Na maioria dos casos, isso se resolve na próxima execução.
  • É necessário refresh completamente. Se você alterou a coluna do cursor ou redefiniu os dados de origem, execute uma refresh completa para reingerir os dados desde o início. Consulte refresh completamente as tabelas de destino.

Exclusão de envio não funciona

Sintoma: Linhas que foram excluídas logicamente na origem ainda estão presentes na tabela de destino após a execução do pipeline.

Causa: O acompanhamento de exclusão suave requer o parâmetro deletion_condition na configuração do seu pipeline . Este parâmetro só pode ser configurado através da API.

Resolução:

  1. Confirme se o parâmetro deletion_condition está definido na configuração do seu pipeline e se a sua expressão SQL identifica corretamente as linhas excluídas logicamente. Por exemplo:

    JSON
    "deletion_condition": "deleted_at IS NOT NULL"
  2. Verifique se a expressão é avaliada corretamente em relação aos dados reais da tabela de origem. Execute a consulta equivalente diretamente na fonte para confirmar se ela retorna as linhas que você espera que sejam excluídas.

  3. Se você adicionou recentemente o deletion_condition a um pipeline existente, inicie uma execução pipeline e verifique se a tabela de destino reflete as exclusões após a conclusão da execução.

Para a sintaxe de referência de deletion_condition, consulte Condição de exclusão.