Solucionar problemas do recurso de captura de dados de alterações no Azure Data Factory
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Este artigo fornece sugestões sobre como solucionar problemas comuns com o recurso de captura de dados de alterações no Azure Data Factory.
Problema: problemas ao habilitar a CDA nativa na minha origem do SQL.
Para origens no SQL, dois conjuntos de tabelas estão disponíveis: tabelas com a CDA nativa no SQL habilitada e tabelas com colunas incrementais baseadas em tempo.
Siga estas etapas para configurar a CDA nativa para uma tabela de origem específica no banco de dados SQL.
Considere que você tem a tabela a seguir, com a ID como a Chave Primária. Se uma Chave Primária estiver presente no esquema, supports_net_changes será definido 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));
Observação
No momento, o recurso CDA do ADF carrega apenas os itens movimentados para operações insert, update e delete.
Para habilitar a CDA no nível do banco de dados, execute a seguinte consulta:
Consulta 2
EXEC sys.sp_cdc_enable_db
Para habilitar a CDA 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 do recurso CDA.
Se a origem do SQL não tiver a CDA do SQL Server com net_changed habilitado ou não tiver colunas incrementais baseadas em tempo, as tabelas na sua origem ficarão indisponíveis para seleção.
Problema: o cluster de depuração não está disponível em um pool warm.
O cluster de depuração não está disponível em um pool warm. Haverá um tempo de espera na ordem de mais de 1 minuto.
Problema: problema no rastreamento de operações de exclusão.
Atualmente, o recurso CDC oferece suporte a operações de exclusão para os seguintes tipos de coletor - Banco de Dados SQL do Azure & Delta. Para isso, na página de mapeamento de coluna, selecione a coluna de chave 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.
Obter o seguinte erro ao executar um CDC quando a tabela do coletor de destino tem colunas de identidade,
Não é possível inserir um valor explícito para a coluna de identidade na tabela 'TableName' quando IDENTITY_INSERT estiver definido como OFF.
Execute a consulta a seguir para determinar se há uma coluna de identidade no destino baseado em SQL.
Consulta 4
SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'TableName'
Para resolver isso, o usuário pode seguir uma destas etapas:
- Defina IDENTITY_INSERT como ON executando a seguinte consulta no nível do banco de dados e execute novamente o CDC Mapper
Consulta 5
SET IDENTITY_INSERT dbo.TableName ON;
(Ou)
- O usuário pode remover a coluna de identidade específica do mapeamento durante a execução de inserções.
Problema: dificuldades em usar o runtime de integração auto-hospedada.
Atualmente, não há suporte para o runtime de integração auto-hospedada no recurso CDC. Se estiver tentando se conectar a uma fonte local, use o runtime de integração do Azure com a rede virtual gerenciada.