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:
- 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)
- 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.