Pular para o conteúdo principal

Solucionar problemas de conexões do SQL Server

info

Visualização

O conector do Microsoft SQL Server está em uma versão prévia pública fechada. Para participar da pré-visualização, entre em contato com a equipe do Databricks account .

Etapas de solução de problemas

Se um pipeline falhar, clique na etapa 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 o clustering logs na página de detalhes 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\>:

SQL
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á habilitado para a tabela <schema-name>.<table-name>:

SQL
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 ser porque:

  • Você 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 do default

Se você receber esse erro, há um problema com a descoberta das credenciais atuais do usuário. 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'.

Você pode receber esse erro se estiver usando uma versão mais antiga de uma tabela interna. Execute o seguinte no banco de dados conectado:

SQL
drop table dbo.replicate_io_audit_ddl_trigger_1;

PERMISSION_DENIED: o senhor não está autorizado a criar clustering. Entre em contato com seu administrador.

Entre em contato com um administrador do Databricks account para que ele lhe conceda as permissões do Unrestricted cluster creation.

CÓDIGO DE ERRO DO DLT: INGESTION_GATEWAY_INTERNAL_ERROR

Verifique o(s) arquivo(s) stdout no driver logs.

org.apache.spark.sql.catalyst.Exceção de análise estendida

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 de esquema incompatíveis

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.

nota

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.