Compartir a través de


Solución de problemas del recurso de captura de datos modificados en Azure Data Factory

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este artículo se proporcionan sugerencias sobre cómo solucionar problemas habituales con el recurso de captura de datos modificados en Azure Data Factory.

Incidencia: Problemas al habilitar la CDC nativa en mi origen de SQL.

En el caso de los orígenes de SQL, hay dos conjuntos de tablas disponibles: tablas con la CDC nativa en SQL habilitada y tablas con columnas incrementales que funcionan por tiempo.

Siga estos pasos para configurar una CDC nativa para una tabla de origen específica en la base de datos SQL.

Imagine que tiene la siguiente tabla, con el Id. como clave principal. Si una clave principal está presente en el esquema, supports_net_changes se establece en true de manera predeterminada. Si no es así, configúrelo con el script de la 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

Actualmente, el recurso de CDC en ADF solo carga los cambios netos para las operaciones de inserción, actualización y eliminación.

Para habilitar la CDC en el nivel de la base de datos, ejecute la siguiente consulta:

Consulta 2

EXEC sys.sp_cdc_enable_db

Para habilitar la CDC en el nivel de las tablas, ejecute la siguiente 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';

Incidencia: Las tablas no están disponibles para seleccionarlas en el proceso de configuración de recursos de CDC.

Si el origen de SQL no tiene SQL Server CDC con net_changed habilitado o no tiene columnas incrementales que funcionen por tiempo, las tablas del origen no estarán disponibles para su selección.

Incidencia: El clúster de depuración no está disponible en un grupo intermedio.

El clúster de depuración no está disponible en un grupo intermedio. Probablemente habrá un tiempo de espera de más de un minuto.

Incidencia: problemas al realizar el seguimiento de las operaciones de eliminación.

Actualmente, el recurso CDC admite operaciones de eliminación para los siguientes tipos de receptor: Azure SQL Database y Delta. Para lograrlo, en la página de asignación de columnas, seleccione la columna claves que se puede usar para determinar si una fila del origen coincide con una fila del receptor. 

Incidencia: se produce un error en el recurso CDC cuando la tabla SQL de destino tiene columnas de identidad.

Se obtiene el siguiente error al ejecutar un CDC cuando la tabla receptora de destino tiene columnas de identidad,

No se puede insertar un valor explícito en la columna de identidad de la tabla "TableName" cuando IDENTITY_INSERT es OFF.

Ejecute la consulta siguiente para determinar si tiene una columna de identidad en el destino basado en SQL.

Consulta 4

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

Para resolver este usuario, puede seguir cualquiera de estos pasos:

  1. Establezca IDENTITY_INSERT en ON ejecutando la siguiente consulta en el nivel de base de datos y vuelva a ejecutar el asignador CDC.

Consulta 5

SET IDENTITY_INSERT dbo.TableName ON; 

(O bien)

  1. El usuario puede quitar la columna de identidad específica de la asignación mientras realiza inserciones.

Problema: Problema al usar el entorno de ejecución de integración autohospedado.

Actualmente, el entorno de ejecución de integración autohospedado no se admite en el recurso CDC. Si intenta conectarse a un origen local, use el entorno de ejecución de integración de Azure con una red virtual administrada.