Afirmar a transformação no mapeamento do fluxo de dados

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!

Os fluxos de dados estão disponíveis no Azure Data Factory e no Azure Synapse Pipelines. Este artigo aplica-se ao mapeamento de fluxos de dados. Se você é novo em transformações, consulte o artigo introdutório Transformar dados usando um fluxo de dados de mapeamento.

A transformação assert permite que você crie regras personalizadas dentro de seus fluxos de dados de mapeamento para qualidade de dados e validação de dados. Você pode criar regras que determinarão se os valores atendem a um domínio de valor esperado. Além disso, você pode criar regras que verificam a exclusividade da linha. A transformação assert ajudará a determinar se cada linha em seus dados atende a um conjunto de critérios. A transformação assert também permite definir mensagens de erro personalizadas quando as regras de validação de dados não são atendidas.

Assert type

Configuração

No painel de configuração de transformação de declaração, você escolherá o tipo de declaração, fornecerá um nome exclusivo para a asserção, descrição opcional e definirá a expressão e o filtro opcional. O painel de visualização de dados indicará quais linhas falharam em suas afirmações. Além disso, você pode testar cada marca de linha downstream usando isError() e hasError() para linhas que falharam asserções.

Assert settings

Tipo de declaração

  1. Espere verdadeiro: O resultado da sua expressão deve ser avaliado para um resultado booleano verdadeiro. Use isso para validar intervalos de valores de domínio em seus dados.
  2. Esperar exclusivo: defina uma coluna ou uma expressão como uma regra de exclusividade em seus dados. Use isso para marcar linhas duplicadas.
  3. A expectativa existe: essa opção só está disponível quando você seleciona um segundo fluxo de entrada. Exists examinará ambos os fluxos e determinará se as linhas existem em ambos os fluxos com base nas colunas ou nas expressões que você especificou. Para adicionar o segundo fluxo para exists, selecione Additional streams.

Assert configuration

Falha no fluxo de dados

Selecione fail data flow se deseja que sua atividade de fluxo de dados falhe imediatamente assim que a regra de asserção falhar.

Afirmar ID

Assert ID é uma propriedade onde você inserirá um nome (string) para sua afirmação. Você poderá usar o identificador posteriormente a jusante em seu fluxo de dados usando hasError() ou para produzir o código de falha de asserção. As IDs de declaração devem ser exclusivas dentro de cada fluxo de dados.

Afirmar descrição

Insira uma descrição de cadeia de caracteres para sua afirmação aqui. Você também pode usar expressões e valores de coluna de contexto de linha aqui.

Filtro

Filter é uma propriedade opcional onde você pode filtrar a asserção para apenas um subconjunto de linhas com base no valor da expressão.

Expression

Insira uma expressão para avaliação para cada uma de suas afirmações. Você pode ter várias asserções para cada transformação de asserção. Cada tipo de asserção requer uma expressão que o ADF precisará avaliar para testar se a asserção foi aprovada.

Ignorar NULLs

Por padrão, a transformação assert incluirá NULLs na avaliação de asserção de linha. Você pode optar por ignorar NULLs com essa propriedade.

Falhas de linha de asserção direta

Quando uma asserção falha, você pode, opcionalmente, direcionar essas linhas de erro para um arquivo no Azure usando a guia "Erros" na transformação do coletor. Você também terá uma opção na transformação do coletor para não gerar linhas com falhas de asserção, ignorando as linhas de erro.

Exemplos

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 fluxo de dados

Exemplos

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