Usando padrões de coluna no mapeamento de fluxos 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!

Várias transformações de fluxos de dados de mapeamento permitem que você faça referência a colunas de modelo com base em padrões em vez de nomes de colunas codificados. Essa correspondência é conhecida como padrões de coluna. Você pode definir padrões para corresponder a colunas com base em nome, tipo de dados, fluxo, origem ou posição, em vez de exigir nomes de campo exatos. Há dois cenários em que os padrões de coluna são úteis:

  • Se os campos de origem de entrada mudarem com frequência, como o caso de alterar colunas em arquivos de texto ou bancos de dados NoSQL. Esse cenário é conhecido como desvio de esquema.
  • Se você deseja fazer uma operação comum em um grande grupo de colunas. Por exemplo, querer converter todas as colunas que têm 'total' no nome da coluna em duplas.

Padrões de coluna em coluna derivada e agregado

Para adicionar um padrão de coluna em uma transformação de coluna, agregação ou janela derivada, clique em Adicionar acima da lista de colunas ou no ícone de adição ao lado de uma coluna derivada existente. Escolha Adicionar padrão de coluna.

Screenshot shows the plus icon to Add column pattern.

Use o construtor de expressões para inserir a condição de correspondência. Crie uma expressão booleana que corresponda a namecolunas com base no , , , origintypestreame position da coluna. O padrão afetará qualquer coluna, derivada ou definida, onde a condição retorna true.

Screenshot shows the Derived column's settings tab.

O padrão de coluna acima corresponde a cada coluna do tipo double e cria uma coluna derivada por correspondência. Ao indicar $$ como o campo de nome da coluna, cada coluna correspondente é atualizada com o mesmo nome. O valor de cada coluna é o valor existente arredondado para duas casas decimais.

Para verificar se a condição correspondente está correta, você pode validar o esquema de saída das colunas definidas na guia Inspecionar ou obter um instantâneo dos dados na guia Visualização de dados.

Screenshot shows the Output schema tab.

Correspondência de padrões hierárquicos

Você também pode criar correspondência de padrões dentro de estruturas hierárquicas complexas. Expanda a seção Each MoviesStruct that matches onde você será solicitado para cada hierarquia em seu fluxo de dados. Em seguida, você pode criar padrões correspondentes para propriedades dentro dessa hierarquia escolhida.

Screenshot shows hierarchical column pattern.

Achatamento de estruturas

Quando seus dados têm estruturas complexas, como matrizes, estruturas hierárquicas e mapas, você pode usar a transformação Nivelar para desenrolar matrizes e desnormalizar seus dados. Para estruturas e mapas, use a transformação de coluna derivada com padrões de coluna para formar sua tabela relacional nivelada a partir das hierarquias. Você pode usar os padrões de coluna que se pareceriam com este exemplo, que nivela a hierarquia geográfica em um formulário de tabela relacional:

Screenshot shows the Derived column's flatten structure.

Mapeamento baseado em regras em selecionar e colecionar

Ao mapear colunas na origem e selecionar transformações, você pode adicionar mapeamentos fixos ou mapeamentos baseados em regras. Correspondência com base nas namecolunas , , , origin, typestreame 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.

Screenshot shows Rule-based mapping selected from Add mapping.

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.

Screenshot shows a mapping.

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.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

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.

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.

Screenshot shows a rule-based mapping using for a hierarchy.

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' é $$.

Valores de expressão correspondentes a padrões

  • $$ Traduz para o nome ou valor de cada partida em tempo de execução. $$ Pense como equivalente athis
  • $0 Traduz para a correspondência de nome de coluna atual em tempo de execução para tipos escalares. Para tipos hierárquicos, $0 representa o caminho de hierarquia de coluna correspondente atual.
  • name representa o nome de cada coluna de entrada
  • type representa o tipo de dados de cada coluna de entrada. A lista de tipos de dados no sistema de tipos de fluxos de dados pode ser encontrada aqui.
  • stream representa o nome associado a cada fluxo ou transformação no seu fluxo
  • position é a posição ordinal das colunas no seu fluxo de dados
  • origin é a transformação onde uma coluna se originou ou foi atualizada pela última vez