Solucionar problemas de conexões 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 .
Observação
O conector do SQL Server é compatível com o banco de dados SQL do Azure e o Amazon RDS para SQL Server.
Solução de problemas genéricos dos passos
Se um pipeline falhar, clique no passo que falhou e veja se a mensagem ou o código de erro fornece informações suficientes sobre a natureza do erro.
O senhor também pode verificar os logs do cluster na página de detalhes do pipeline. Examine o site logs em busca de erros ou exceções. O senhor também pode download os arquivos log localmente para uma inspeção mais detalhada.
Verificar se o CDC está ativado para um banco de dados ou uma tabela
Para verificar se o CDC está ativado para o banco de dados <database-name>
:
select is_cdc_enabled from sys.databases where name='<database-name>';
Para verificar se o CDC está ativado para a tabela <schema-name>.<table-name>
:
select t.is_tracked_by_cdc
from sys.tables t join sys.schemas s on t.schema_id = s.schema_id
where s.name='<schema-name>' and t.name='<table-name>';
Verificar se o acompanhamento de alterações está ativado para um banco de dados ou uma tabela
Para verificar se o acompanhamento de alterações está habilitado para o banco de dados`<database-name>`:
select ctdb.*
from sys.change_tracking_databases ctdb join sys.databases db
on db.database_id = ctdb.database_id
where db.name = '<MyDatabaseName>'
Para verificar se o acompanhamento de alterações está ativado para a tabela <schema-name>.<table-name>
:
select s.name schema_name, t.name table_name, ct.*
from sys.change_tracking_tables ct join sys.tables t
on ct.object_id = t.object_id
join sys.schemas s on t.schema_id = s.schema_id
where s.name = '<MySchemaName>' and t.name = '<MyTableName>'
Tempo limite de espera por tokens de mesa
A ingestão pipeline pode ter um tempo limite enquanto aguarda o fornecimento de informações pelo gateway. Isso pode ocorrer porque:
O senhor está executando uma versão mais antiga do gateway.
Ocorreu um erro ao gerar as informações necessárias. Verifique se há erros no driver do gateway logs.
default auth: não é possível configurar as credenciais padrão
Se o senhor receber esse erro, há um problema com a descoberta das credenciais de usuário atuais. Tente substituir o seguinte:
w = WorkspaceClient()
com:
w = WorkspaceClient(host=input('Databricks Workspace URL: '), token=input('Token: '))
Consulte Autenticação na documentação do Databricks SDK para Python.
tech.replicant.common.ExtractorException: com.microsoft.sqlserver.JDBC.SQLServerException: Nome de coluna inválido 'SERIAL_NUMBER'.
O senhor pode receber esse erro se estiver usando uma versão mais antiga de uma tabela interna. Execute o seguinte no banco de dados conectado:
drop table dbo.replicate_io_audit_ddl_trigger_1;
PERMISSION_DENIED: O senhor não está autorizado a criar clusters. Entre em contato com o administrador.
Entre em contato com um administrador do Databricks account para conceder permissões Unrestricted cluster creation
ao senhor.
CÓDIGO DE ERRO DO DLT: INGESTION_GATEWAY_INTERNAL_ERROR
Verifique o(s) arquivo(s) stdout
no driver logs.
org.apache.spark.sql.catalyst.ExtendedAnalysisException
Mensagem de erro:
Ingestion pipeline error: “org.apache.spark.sql.catalyst.ExtendedAnalysisException: Cannot have multiple queries named `XYZ_snapshot_load` for `XYZ`. Additional queries on that table must be named. Note that unnamed queries default to the same name as the table.
Problema: Isso indica que há um conflito de nomes devido a várias tabelas de origem denominadas XYZ
em diferentes esquemas de origem que estão sendo ingeridas pelo mesmo pipeline de ingestão para o mesmo esquema de destino.
soluções: Criar vários pares gateway-ingestão pipeline gravando essas tabelas conflitantes em diferentes esquemas de destino.
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.