Partilhar via


Transformações de pesquisa 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.

Use a transformação de pesquisa para fazer referência a dados de outra fonte em um fluxo de fluxo de dados. A transformação de pesquisa acrescenta colunas de dados correspondentes aos dados de origem.

Uma transformação de pesquisa é semelhante a uma junção externa esquerda. Todas as linhas do fluxo primário existirão no fluxo de saída com colunas adicionais do fluxo de pesquisa.

Configuração

A captura de tela mostra a guia Configurações de pesquisa com os rótulos descritos no texto a seguir.

Fluxo primário: o fluxo de entrada de dados. Este fluxo é equivalente ao lado esquerdo de uma junção.

Fluxo de pesquisa: os dados que são anexados ao fluxo primário. Os dados adicionados são determinados pelas condições de pesquisa. Este fluxo é equivalente ao lado direito de uma junção.

Corresponder várias linhas: se habilitado, uma linha com várias correspondências no fluxo primário retornará várias linhas. Caso contrário, apenas uma única linha será retornada com base na condição 'Match on'.

Corresponder em: visível apenas se a opção 'Corresponder a várias linhas' não estiver selecionada. Escolha se deseja corresponder em qualquer linha, na primeira partida ou na última partida. Qualquer linha é recomendada, pois executa o mais rápido. Se a primeira ou a última linha estiver selecionada, será necessário especificar as condições de classificação.

Condições de pesquisa: escolha em quais colunas corresponder. Se a condição de igualdade for cumprida, as linhas serão consideradas uma correspondência. Passe o mouse e selecione 'Coluna computada' para extrair um valor usando a linguagem de expressão de fluxo de dados.

Todas as colunas de ambos os fluxos são incluídas nos dados de saída. Para soltar colunas duplicadas ou indesejadas, adicione uma transformação select após a transformação de pesquisa. As colunas também podem ser descartadas ou renomeadas em uma transformação de coletor.

Adesões não equi

Para usar um operador condicional como não igual a (!=) ou maior que (>) em suas condições de pesquisa, altere a lista suspensa do operador entre as duas colunas. As junções não equi exigem que pelo menos um dos dois fluxos seja transmitido usando a transmissão fixa na guia Otimizar .

Pesquisa não equi

Analisando linhas correspondentes

Após a transformação da pesquisa, a função isMatch() pode ser usada para ver se a pesquisa corresponde a linhas individuais.

Padrão de pesquisa

Um exemplo desse padrão é usar a transformação de divisão condicional para dividir a isMatch() função. No exemplo acima, as linhas correspondentes passam pelo fluxo superior e as linhas não correspondentes fluem pelo NoMatch fluxo.

Condições de pesquisa de teste

Ao testar a transformação de pesquisa com visualização de dados no modo de depuração, use um pequeno conjunto de dados conhecidos. Ao fazer a amostragem de linhas de um grande conjunto de dados, não é possível prever quais linhas e chaves serão lidas para teste. O resultado é não determinístico, o que significa que as suas condições de adesão podem não devolver quaisquer correspondências.

Otimização de transmissão

Associação transmitida em direto

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.

Pesquisa em cache

Se você estiver fazendo várias pesquisas menores na mesma fonte, um coletor e uma pesquisa em cache talvez sejam um caso de uso melhor do que a transformação de pesquisa. Exemplos comuns em que um coletor de cache pode ser melhor são a pesquisa de um valor máximo em um armazenamento de dados e a correspondência de códigos de erro com um banco de dados de mensagens de erro. Para obter mais informações, saiba mais sobre coletores de cache e pesquisas em cache.

Script de fluxo de dados

Sintaxe

<leftStream>, <rightStream>
    lookup(
        <lookupConditionExpression>,
        multiple: { true | false },
        pickup: { 'first' | 'last' | 'any' },  ## Only required if false is selected for multiple
        { desc | asc }( <sortColumn>, { true | false }), ## Only required if 'first' or 'last' is selected. true/false determines whether to put nulls first
        broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
    ) ~> <lookupTransformationName>

Exemplo

A captura de tela mostra a guia Configurações de pesquisa para o código a seguir.

O script de fluxo de dados para a configuração de pesquisa acima está no trecho de código abaixo.

SQLProducts, DimProd lookup(ProductID == ProductKey,
    multiple: false,
    pickup: 'first',
    asc(ProductKey, true),
    broadcast: 'auto')~> LookupKeys