Compartir vía


Transformación de aserciones en el flujo de datos de asignación

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.

Los flujos de datos están disponibles en las canalizaciones Azure Data Factory y Azure Synapse. Este artículo se aplica a los flujos de datos de asignación. Si carece de experiencia con las transformaciones, consulte el artículo de introducción Transformación de datos mediante flujos de datos de asignación.

La transformación de aserciones permite crear reglas personalizadas dentro de los flujos de datos de asignación para evaluar la calidad de los datos y validarlos. Puede crear reglas que determinen si los valores cumplen un dominio de valor esperado. Además, puede crear reglas que comprueben la unidad de fila. La transformación de aserciones le ayudará a determinar si cada fila de los datos cumple un conjunto de criterios. La transformación de aserciones también permite establecer mensajes de error personalizados cuando no se cumplen las reglas de validación de datos.

Tipo de aserción

Configuración

En el panel de configuración de la transformación de aserciones, elegirá el tipo de aserción, proporcionará un nombre único para la aserción y una descripción opcional y definirá la expresión y el filtro opcional. El panel de vista previa de datos indicará en qué filas las aserciones han dado error. Además, puede probar cada etiqueta de fila de bajada mediante isError() y hasError() para las filas en las que las aserciones dieron error.

Configuración de Assert

Tipo de aserción

  1. Expect true (Esperar true): el resultado de la expresión debe evaluarse como un resultado booleano true. Use esta opción para validar los intervalos de valores de dominio en los datos.
  2. Expect unique (Esperar unique): establezca una columna o una expresión como una regla de unicidad en los datos. Use esta opción para etiquetar filas duplicadas.
  3. Expect exists (Esperar exists): esta opción solo está disponible cuando se ha seleccionado una segunda secuencia entrante. "exists" examinará ambas secuencias y determinará si las filas existen en ambas en función de las columnas o las expresiones que haya especificado. Para agregar la segunda secuencia para "exists", seleccione Additional streams.

Configuración de Assert

Error en el flujo de datos

Seleccione fail data flow si quiere que la actividad de flujo de datos produzca error tan pronto como lo haga la regla de aserción.

Assert ID

Assert ID es una propiedad donde escribirá un nombre (cadena) para la aserción. Podrá usar el identificador más adelante en el flujo de datos mediante hasError() o para generar el código de error de aserción. Los identificadores de aserción deben ser únicos dentro de cada flujo de datos.

Descripción de la aserción

Escriba aquí una descripción de cadena para la aserción. También puede usar aquí expresiones y valores de columna de contexto de fila.

Filter

Filter es una propiedad opcional en la que puede filtrar la aserción solo por un subconjunto de filas en función del valor de la expresión.

Expresión

Escriba una expresión para la evaluación de cada una de las aserciones. Puede tener varias aserciones para cada transformación de aserción. Cada tipo de aserción requiere una expresión que ADF deberá evaluar para probar si se ha superado la aserción.

Omisión de valores NULL

De forma predeterminada, la transformación de aserciones incluirá valores NULL en la evaluación de aserciones de fila. Con esta propiedad, puede optar por omitir los valores NULL.

Errores de fila de aserción directa

Cuando se produce un error en una aserción, opcionalmente puede dirigir esas filas de error a un archivo en Azure mediante la pestaña "Errores" de la transformación del receptor. También tendrá una opción en la transformación del receptor para no generar ninguna fila con errores de aserción omitendo las filas de error.

Ejemplos

source(output(
		AddressID as integer,
		AddressLine1 as string,
		AddressLine2 as string,
		City as string,
		StateProvince as string,
		CountryRegion as string,
		PostalCode as string,
		rowguid as string,
		ModifiedDate as timestamp
	),
	allowSchemaDrift: true,
	validateSchema: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source1
source(output(
		CustomerID as integer,
		AddressID as integer,
		AddressType as string,
		rowguid as string,
		ModifiedDate as timestamp
	),
	allowSchemaDrift: true,
	validateSchema: false,
	isolationLevel: 'READ_UNCOMMITTED',
	format: 'table') ~> source2
source1, source2 assert(expectExists(AddressLine1 == AddressLine1, false, 'nonUS', true(), 'only valid for U.S. addresses')) ~> Assert1

Script de flujo de datos

Ejemplos

source1, source2 assert(expectTrue(CountryRegion == 'United States', false, 'nonUS', null, 'only valid for U.S. addresses'),
	expectExists(source1@AddressID == source2@AddressID, false, 'assertExist', StateProvince == 'Washington', toString(source1@AddressID) + ' already exists in Washington'),
	expectUnique(source1@AddressID, false, 'uniqueness', null, toString(source1@AddressID) + ' is not unqiue')) ~> Assert1