Partilhar via


Selecionar 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.

Use a transformação select para renomear, soltar ou reordenar colunas. Essa transformação não altera os dados da linha, mas escolhe quais colunas são propagadas a jusante.

Em uma transformação selecionada, os usuários podem especificar mapeamentos fixos, usar padrões para fazer mapeamento baseado em regras ou habilitar o mapeamento automático. Mapeamentos fixos e baseados em regras podem ser usados dentro da mesma transformação de seleção. Se uma coluna não corresponder a um dos mapeamentos definidos, ela será descartada.

Mapeamento fixo

Se houver menos de 50 colunas definidas em sua projeção, todas as colunas definidas terão um mapeamento fixo por padrão. Um mapeamento fixo pega uma coluna de entrada definida e a mapeia com um nome exato.

Mapeamento fixo

Nota

Não é possível mapear ou renomear uma coluna derivada usando um mapeamento fixo

Mapeando colunas hierárquicas

Mapeamentos fixos podem ser usados para mapear uma subcoluna de uma coluna hierárquica para uma coluna de nível superior. Se você tiver uma hierarquia definida, use a lista suspensa de coluna para selecionar uma subcoluna. A transformação select criará uma nova coluna com o valor e o tipo de dados da subcoluna.

Mapeamento hierárquico

Mapeamento baseado em regras

Se desejar mapear muitas colunas ao mesmo tempo ou passar colunas derivadas para jusante, use o mapeamento baseado em regras para definir seus mapeamentos usando padrões de coluna. Correspondência com base nas namecolunas , type, stream, e position . Você pode ter qualquer combinação de mapeamentos fixos e baseados em regras. Por padrão, todas as projeções com mais de 50 colunas usarão como padrão um mapeamento baseado em regras que corresponde em cada coluna e gera o nome inserido.

Para adicionar um mapeamento baseado em regras, clique em Adicionar mapeamento e selecione Mapeamento baseado em regras.

A captura de tela mostra o mapeamento baseado em regras selecionado em Adicionar mapeamento.

Cada mapeamento baseado em regras requer duas entradas: a condição na qual corresponder e o nome de cada coluna mapeada. Ambos os valores são inseridos através do construtor de expressões. Na caixa de expressão à esquerda, insira sua condição de correspondência booleana. Na caixa de expressão à direita, especifique para que a coluna correspondente será mapeada.

A captura de tela mostra um mapeamento.

Use $$ a sintaxe para fazer referência ao nome de entrada de uma coluna correspondente. Usando a imagem acima como exemplo, digamos que um usuário queira corresponder em todas as colunas de cadeia de caracteres cujos nomes tenham menos de seis caracteres. Se uma coluna de entrada foi nomeada test, a expressão $$ + '_short' irá renomear a coluna test_short. Se esse for o único mapeamento existente, todas as colunas que não atenderem à condição serão descartadas dos dados gerados.

Os padrões correspondem às colunas derivadas e definidas. Para ver quais colunas definidas são mapeadas por uma regra, clique no ícone de óculos ao lado da regra. Verifique sua saída usando a visualização de dados.

Mapeamento Regex

Se você clicar no ícone de divisa para baixo, poderá especificar uma condição de mapeamento regex. Uma condição de mapeamento de regex corresponde a todos os nomes de coluna que correspondem à condição de regex especificada. Isso pode ser usado em combinação com mapeamentos baseados em regras padrão.

A captura de tela mostra a condição de mapeamento regex com as correspondências de nível de hierarquia e nome.

O exemplo acima corresponde ao padrão (r) regex ou a qualquer nome de coluna que contenha um r minúsculo. Semelhante ao mapeamento baseado em regras padrão, todas as colunas correspondentes são alteradas pela condição à direita usando $$ a sintaxe.

Se você tiver várias correspondências de regex no nome da coluna, poderá fazer referência a correspondências específicas usando $n onde 'n' se refere a qual correspondência. Por exemplo, '$2' refere-se à segunda correspondência dentro do nome de uma coluna.

Hierarquias baseadas em regras

Se a projeção definida tiver uma hierarquia, você poderá usar o mapeamento baseado em regras para mapear as subcolunas de hierarquia. Especifique uma condição correspondente e a coluna complexa cujas subcolunas você deseja mapear. Cada subcoluna correspondente será produzida usando a regra 'Nome como' especificada à direita.

A captura de tela mostra um mapeamento baseado em regras usando para uma hierarquia.

O exemplo acima corresponde em todas as subcolunas da coluna acomplexa. a contém duas subcolunas b e c. O esquema de saída incluirá duas colunas b e c como a condição 'Nome como' é $$.

Parametrização

Você pode parametrizar nomes de colunas usando mapeamento baseado em regras. Use a palavra-chave name para fazer a correspondência entre os nomes das colunas de entrada e um parâmetro. Por exemplo, se você tiver um parâmetro mycolumnde fluxo de dados , poderá criar uma regra que corresponda a qualquer nome de coluna igual a mycolumn. Você pode renomear a coluna correspondente para uma cadeia de caracteres codificada, como 'chave comercial', e fazer referência a ela explicitamente. Neste exemplo, a condição correspondente é name == $mycolumn e a condição de nome é 'chave comercial'.

Mapeamento automático

Ao adicionar uma transformação selecionada, o mapeamento automático pode ser habilitado alternando o controle deslizante de mapeamento automático. Com o mapeamento automático, a transformação select mapeia todas as colunas de entrada, excluindo duplicatas, com o mesmo nome da entrada. Isso incluirá colunas derivadas, o que significa que os dados de saída podem conter colunas não definidas no esquema. Para obter mais informações sobre colunas derivadas, consulte desvio de esquema.

Mapeamento automático

Com o mapeamento automático ativado, a transformação select honrará as configurações de ignorar duplicados e fornecerá um novo alias para as colunas existentes. O aliasing é útil ao fazer várias junções ou pesquisas no mesmo fluxo e em cenários de associação automática.

Colunas duplicadas

Por padrão, a transformação select descarta colunas duplicadas na projeção de entrada e saída. As colunas de entrada duplicadas geralmente vêm de transformações de junção e pesquisa em que os nomes das colunas são duplicados em cada lado da junção. Colunas de saída duplicadas podem ocorrer se você mapear duas colunas de entrada diferentes para o mesmo nome. Escolha se deseja soltar ou passar colunas duplicadas alternando a caixa de seleção.

Ignorar duplicatas

Ordenação das colunas

A ordem dos mapeamentos determina a ordem das colunas de saída. Se uma coluna de entrada for mapeada várias vezes, apenas o primeiro mapeamento será honrado. Para qualquer queda de coluna duplicada, a primeira correspondência será mantida.

Script de fluxo de dados

Sintaxe

<incomingStream>
    select(mapColumn(
        each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
        <fixedColumn>, ## fixed mapping, no rename
        <renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
        each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
        each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
    ),
    skipDuplicateMapInputs: { true | false },
    skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>

Exemplo

Abaixo está um exemplo de um mapeamento de seleção e seu script de fluxo de dados:

Selecionar exemplo de script

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • Depois de usar Select para renomear, reordenar e colunas de alias, use a transformação Sink para colocar seus dados em um armazenamento de dados.