Declarar transformação no fluxo de dados de mapeamento
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!
Os fluxos de dados estão disponíveis nos pipelines do Azure Data Factory e do Azure Synapse. Este artigo se aplica ao fluxo de dados de mapeamento. Se você for iniciante nas transformações, veja o artigo introdutório Transformar dados usando um fluxo de dados de mapeamento.
A transformação Assert permite que você crie regras personalizadas dentro dos fluxos de dados de mapeamento para a qualidade dos dados e a validação de dados. Você pode criar regras que determinam 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 ajuda a determinar se cada linha em seus dados atende a um conjunto de critérios. A transformação Assert também permite que você defina mensagens de erro personalizadas quando as regras de validação de dados não são atendidas.
Configuração
No painel de configuração da transformação Assert, você escolhe o tipo de declaração, fornece um nome exclusivo para a asserção, fornece uma descrição opcional e define a expressão e o filtro opcional. O painel de visualização de dados indica quais linhas falharam em suas asserções. Além disso, você pode testar cada marca de linha downstream usando isError()
e hasError()
para linhas com declarações com falha.
Tipo de declaração
- Esperar verdadeiro: o resultado da expressão deve ser avaliado como um resultado booliano verdadeiro. Use esta configuração para validar intervalos de valores de domínio em seus dados.
- Esperar único: defina uma coluna ou uma expressão como uma regra de exclusividade em seus dados. Use esta configuração para marcar linhas duplicadas.
- Espera que exista: essa opção só está disponível quando você selecionou um segundo fluxo de entrada. Exists examina ambos os fluxos e determina 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 existir, selecione
Additional streams
.
Falha no fluxo de dados
Selecione fail data flow
se você deseja que sua atividade de fluxo de dados falhe imediatamente assim que a regra de asserção falhar.
ID da declaração
A ID de asserção é uma propriedade em que você insere um nome (cadeia de caracteres) para sua declaração. Você pode usar o identificador posteriormente downstream em seu fluxo de dados usando hasError()
ou para gerar o código de falha de declaração. As IDs de declaração devem ser exclusivas em cada fluxo de dados.
Descrição da declaração
Insira uma descrição da cadeia de caracteres para sua declaração aqui. Você também pode usar expressões e valores de coluna de contexto de linha aqui.
Filtrar
Filter é uma propriedade opcional em que você pode filtrar a declaraçã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 asserções. Você pode ter várias asserções para cada transformação de declaração. Cada tipo de asserção requer uma expressão que o ADF precisa avaliar para testar se a declaração foi aprovada.
Ignorar NULLs
Por padrão, a transformação assert inclui NULLs na avaliação de declaração de linha. Você pode optar por ignorar os valores NULLs com essa propriedade.
Falhas de linha de declaração direta
Quando uma declaração falha, opcionalmente, você pode direcionar essas linhas de erro para um arquivo no Azure usando a guia "Erros" na transformação do coletor. Você também tem uma opção na transformação do coletor para não gerar linhas com falhas de asserção ignorando 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 unique')) ~> Assert1
Conteúdo relacionado
- Use a transformação Select para selecionar e validar colunas.
- Use a Transformação de coluna derivada para transformar valores de coluna.