Solucionar problemas de ingestão do Salesforce
Esta página descreve problemas comuns com o conector de ingestão do Salesforce em Databricks LakeFlow Connect e como resolvê-los.
Solução de problemas gerais de pipeline
Se um pipeline falhar durante a execução, clique na etapa que falhou e confirme se a mensagem de erro fornece informações suficientes sobre a natureza do erro.
O senhor também pode verificar e download o clustering logs na página de detalhes pipeline clicando em Update details (Atualizar detalhes) no painel direito e, em seguida, em logs. Examine o site logs em busca de erros ou exceções.
Firewalls e configurações de rede virtual bloqueiam o acesso ao serviço de armazenamento
Firewalls and virtual networks' settings may be blocking access to storage services. Please verify your Azure storage credentials or firewall exception settings
Esse problema decorre de suas configurações de rede. Para solucionar problemas, tente o seguinte:
LIMITE_EXCEDIDO
[SAAS_CONNECTOR_SOURCE_API_ERROR] An error occurred in the Salesforce API call. Source API type: CREATE_BULK_QUERY_JOB. Error code: LIMIT_EXCEEDED.
Try refreshing the destination table. If the issue persists, please file a ticket.
Isso ocorre quando o senhor atinge um limite de API em seu Salesforce account. Como primeira etapa, aguarde a redefinição dos limites do site API e, em seguida, acesse refresh a tabela de destino. Se o problema persistir, registre um ticket. O senhor pode limitar a prevalência desse erro reduzindo o volume de programação ou de ingestão.
USUÁRIO_INVÁLIDO
[SAAS_CONNECTOR_SOURCE_API_ERROR] An error occurred in the Salesforce API call. Source API type: CREATE_BULK_QUERY_JOB. Error code: INVALID_USER.
Try refreshing the destination table. If the issue persists, please file a ticket.
A documentação do desenvolvedor da Salesforce indica que esse erro pode ocorrer por dois motivos:
- O usuário que está executando o pipeline de ingestão não tem as permissões corretas
- O trabalho foi criado por um usuário diferente do usuário que o está executando no momento
Portanto, você pode solucionar os problemas da seguinte maneira:
- Valide se as credenciais em sua conexão permanecem corretas. Isso pode ser resolvido corrigindo as credenciais.
- Confirme se o usuário pode ter sido alterado desde que o senhor começou a usar a conexão pela primeira vez. Isso pode ser resolvido com a atualização completa do pipeline.
Se o problema persistir, registre um ticket de suporte.
FALHA NA TRANSMISSÃO
STREAM_FAILED: Terminated with exception: Ingestion for object XYZ is incomplete because the Salesforce API query job took too long, failed, or was manually cancelled. To try again, you can either re-run the entire pipeline or refresh this specific destination table. If the error persists, file a ticket. SQLSTATE: XXKST
Quando o conector está sendo ingerido do Salesforce, a consulta do Salesforce pode retornar um erro. Isso acontece por vários motivos (por exemplo, demora muito, falha ou é cancelado manualmente).
Esse erro pode ser transitório, portanto, o senhor deve começar tentando novamente o pipeline. Se isso não resolver o problema, registre um ticket de suporte.
A tabela de destino tem menos linhas do que a tabela de origem
The destination table has fewer rows than the source table.
O conector tem como objetivo ingerir todas as linhas exclusivas da tabela de origem.
Primeiro, valide se a conexão tem acesso a todas as linhas na tabela. A partir daí, confirme se há alguma linha duplicada na tabela de origem; elas não são ingeridas. Se nenhum desses problemas for a causa raiz, registre um ticket de suporte.
Uma tabela só pode pertencer a um pipeline
ExtendedAnalysisException: Table XYZ is already managed by pipeline ABC. A table can only be owned by one pipeline. Concurrent pipeline operations such as maintenance full refresh with conflict with each other. Please rename the table XYZ to proceed.
Cada tabela de destino é mapeada para um único pipeline de ingestão. Se o senhor tentar criar um pipeline que grave uma tabela chamada "XYZ" em um esquema de destino que já contenha uma tabela chamada "XYZ", o pipeline falhará. Você pode gravá-lo em um esquema de destino diferente.
Valores nulos em uma coluna recém-adicionada
Você pode ver novas colunas em sua tabela por um dos seguintes motivos:
- Uma nova coluna foi adicionada à tabela.
- A coluna sempre existiu na tabela, mas o usuário só recentemente obteve acesso a ela.
- A coluna sempre existiu na fonte, mas foi anteriormente excluída da ingestão, mas o usuário a incluiu recentemente.
Esse problema ocorre no segundo cenário. Para qualquer linha que já tenha sido ingerida, os dados serão NULL na nova coluna. Para preencher esses dados, o senhor deve executar um refresh completo da tabela.
(No primeiro cenário, a coluna está totalmente preenchida. No terceiro cenário, o pipeline falha depois que o senhor faz essa alteração; é possível executar um refresh completo para redefinir os dados e continuar executando o pipeline).
Falta tabela ou coluna
Talvez o senhor não consiga encontrar um objeto ou coluna source-produto-name-short pelos seguintes motivos:
-
O senhor não tem permissões suficientes de source-produto-name-short para acessar o objeto ou a coluna.
-
A coluna ausente representa:
- Um campo de objeto composto source-produto-name-short (por exemplo: endereço, local)
- Um campo binário base64
-
O nome da tabela em source-produto-name-short é diferente do nome da tabela que o senhor forneceu. O nome do objeto diferencia maiúsculas de minúsculas e os objetos do cliente têm o sufixo
__c
.
Falha ao criar uma conexão com o Salesforce usando o OAuth
Se o senhor encontrar erros ao tentar criar uma conexão com source-produto-name-short usando OAuth (por exemplo, "invalid grant of tokens"):
- Confirme se as credenciais do OAuth estão corretas.
- Se estiver tentando se conectar a uma instância do sandbox em source-produto-name-short, confirme que selecionou Is sandbox .
Falha no trabalho de consulta em massa do Salesforce
Quando o senhor ingere grandes volumes de dados de source-produto-name-short, o conector envia uma consulta em massa ao servidor source-produto-name-short para recuperar os dados. Você pode receber um erro como o seguinte:
Ingestion for object `<object-name>` is incomplete because the Salesforce API query job took too long, failed, or was manually canceled. To try again, you can either re-run the entire pipeline or refresh this specific destination table. If the error persists, file a ticket. Job ID: 750TU00000DEdbWYAT. Job status: <Failed|Aborted|NOT_FOUND>.
Neste exemplo, o Job de consulta em massa falhou, foi cancelado ou excluído no lado source-produto-name-short. Para investigar por que a consulta falhou, o senhor pode visitar a página Bulk Data Load Jobs (Trabalhos de carregamento de dados em massa ) na UI source-produto-name-short:
https://<your-url>/lightning/setup/AsyncApiJobStatus/home
Tentar novamente o pipeline pode corrigir o problema.
O conector ingere menos linhas do que o esperado
Confirme se você tem acesso a todas as linhas no objeto.
Por que eu tenho valores nulos em uma nova coluna?
Você pode ver valores nulos em uma nova coluna quando:
- O senhor executa o pipeline com a versão original da tabela.
- A coluna é adicionada à fonte de dados.
- O senhor executa o pipeline em uma nova versão da tabela, incluindo a nova coluna.
Se novas colunas forem adicionadas automaticamente após o carregamento inicial devido à seleção de colunas do Databricks ou a atualizações de origem, o conector preencherá novamente as linhas dos valores anteriores do cursor. No entanto, se você receber acesso a uma nova coluna, o conector não será preenchido.
Para resolver isso, execute um refresh completo da tabela.