Existe 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 exists é uma transformação de filtragem de linha que verifica se seus dados existem em outra fonte ou fluxo. O fluxo de saída inclui todas as linhas no fluxo esquerdo que existem ou não existem no fluxo direito. A transformação existente é semelhante a SQL WHERE EXISTS
e SQL WHERE NOT EXISTS
.
Configuração
- Escolha qual fluxo de dados você está verificando a existência no menu suspenso Fluxo à direita.
- Especifique se você está procurando que os dados existam ou não existam na configuração Tipo de existência .
- Selecione se deseja ou não uma expressão personalizada.
- Escolha quais colunas-chave você deseja comparar conforme suas condições existentes. Por padrão, o fluxo de dados procura igualdade entre uma coluna em cada fluxo. Para comparar através de um valor calculado, passe o mouse sobre a lista suspensa de colunas e selecione Coluna computada.
Existem várias condições
Para comparar várias colunas de cada fluxo, adicione uma nova condição existente clicando no ícone de adição ao lado de uma linha existente. A cada condição adicional junta-se uma instrução "e". Comparar duas colunas é o mesmo que a seguinte expressão:
source1@column1 == source2@column1 && source1@column2 == source2@column2
Expressão personalizada
Para criar uma expressão de forma livre que contenha operadores diferentes de "e" e "igual a", selecione o campo Expressão personalizada. Insira uma expressão personalizada através do construtor de expressões de fluxo de dados clicando na caixa azul.
Se você estiver criando padrões dinâmicos em seus fluxos de dados usando a "vinculação tardia" de colunas via desvio de esquema, poderá usar a byName()
função de expressão para usar a transformação existente sem codificar (ou seja, vincular antecipadamente) os nomes das colunas. Exemplo: toString(byName('ProductNumber','source1')) == toString(byName('ProductNumber','source2'))
Otimização de transmissão
Na transformação de junções, pesquisas e existências, se um ou ambos os fluxos de dados se ajustarem à memória do nó de trabalho, você poderá otimizar o desempenho habilitando a Difusão. Por padrão, o mecanismo de ignição decidirá automaticamente se transmite ou não um lado. Para escolher manualmente o lado da transmissão, selecione Fixo.
Não é recomendável desativar a transmissão por meio da opção Desativado, a menos que suas junções estejam enfrentando erros de tempo limite.
Script de fluxo de dados
Sintaxe
<leftStream>, <rightStream>
exists(
<conditionalExpression>,
negate: { true | false },
broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
) ~> <existsTransformationName>
Exemplo
O exemplo abaixo é uma transformação existente chamada checkForChanges
que leva fluxo NameNorm2
esquerdo e fluxo TypeConversions
direito. A condição exists é a expressão NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region
que retorna true se as colunas e Region
em EMPID
cada fluxo corresponderem. Como estamos verificando a existência, negate
é falso. Não estamos habilitando nenhuma transmissão na guia otimizar, então broadcast
tem valor 'none'
.
Na experiência da interface do usuário, essa transformação se parece com a imagem abaixo:
O script de fluxo de dados para essa transformação está no trecho abaixo:
NameNorm2, TypeConversions
exists(
NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region,
negate:false,
broadcast: 'auto'
) ~> checkForChanges
Conteúdos relacionados
Transformações semelhantes são Pesquisa e Associação.