Partilhar via


Solucionar problemas do recurso de captura de dados Alterar no Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo fornece sugestões sobre como solucionar problemas comuns com o recurso de captura de dados de alteração no Azure Data Factory.

Problema: problemas ao ativar o CDC nativo na minha fonte SQL.

Para fontes em SQL, dois conjuntos de tabelas estão disponíveis: tabelas com SQL CDC nativo habilitado e tabelas com colunas incrementais baseadas em tempo.

Siga estas etapas para configurar o CDC nativo para uma tabela de origem específica em seu banco de dados SQL.

Considere que você tem a tabela a seguir, com ID como a chave primária. Se uma Chave Primária estiver presente no esquema, supports_net_changes será definida como true por padrão. Caso contrário, configure-o usando o script na Consulta 3.

Consulta 1


CREATE TABLE Persons (
	ID int,
	LastName varchar(255) NOT NULL,
	FirstName varchar(255),
	Age int,
	Last_login DATETIME,
    	PRIMARY KEY (ID));

Nota

Atualmente, o recurso CDC do ADF carrega apenas alterações líquidas para operações de inserção, atualização e exclusão.

Para habilitar o CDC no nível do banco de dados, execute a seguinte consulta:

Consulta 2

EXEC sys.sp_cdc_enable_db

Para habilitar o CDC no nível da tabela, execute a seguinte consulta:

Consulta 3

EXEC sys.sp_cdc_enable_table  
	@source_schema = N'dbo'  
	, @source_name = N'Persons'  
	, @role_name = N'cdc_admin'  
	, @supports_net_changes = 1
        , @captured_column_list = N'ID';

Problema: as tabelas não estão disponíveis para seleção no processo de configuração de recursos CDC.

Se sua fonte SQL não tiver o CDC do SQL Server com net_changed habilitado ou não tiver colunas incrementais baseadas em tempo, as tabelas em sua fonte não estarão disponíveis para seleção.

Problema: o cluster de depuração não está disponível em um pool quente.

O cluster de depuração não está disponível em um pool quente. Haverá um tempo de espera na ordem de 1+ minutos.

Problema: problemas no rastreamento de operações de exclusão.

Atualmente, o recurso CDC dá suporte a operações de exclusão para os seguintes tipos de coletor - Banco de Dados SQL do Azure & Delta. Para conseguir isso na página de mapeamento de coluna, selecione a coluna de teclas que pode ser usada para determinar se uma linha da origem corresponde a uma linha do coletor. 

Problema: Meu recurso CDC falha quando a tabela SQL de destino tem colunas de identidade.

Obtendo o seguinte erro ao executar um CDC quando sua tabela de coletor de destino tem colunas de identidade,

Não é possível inserir valor explícito para a coluna de identidade na tabela 'TableName' quando IDENTITY_INSERT está definido como OFF.

Execute a consulta a seguir para determinar se você tem uma coluna de identidade no destino baseado em SQL.

Consulta 4

SELECT * 
FROM sys.identity_columns 
WHERE OBJECT_NAME(object_id) = 'TableName'

Para resolver este utilizador pode seguir um destes passos:

  1. Defina IDENTITY_INSERT como ON executando a seguinte consulta no nível do banco de dados e execute novamente o Mapeador CDC

Consulta 5

SET IDENTITY_INSERT dbo.TableName ON; 

(Ou)

  1. O usuário pode remover a coluna de identidade específica do mapeamento durante a execução de inserções.

Problema: problemas ao usar o tempo de execução da integração auto-hospedada.

Atualmente, o tempo de execução de integração auto-hospedado não é suportado no recurso CDC. Se estiver tentando se conectar a uma fonte local, use o tempo de execução de integração do Azure com a rede virtual gerenciada.