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.

Mensagem de erro de falha do pipeline

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.

Detalhes da atualização do pipeline

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.