Partilhar via


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 desejas fazer uma operação comum num grande grupo de colunas. Por exemplo, querer converter todas as colunas que têm 'total' no seu nome para o tipo 'double'.

Padrões de coluna em coluna derivada e agregado

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

A captura de ecrã mostra o ícone de mais para adicionar modelo de coluna.

Utilize o construtor de expressões para inserir a condição de correspondência. Crie uma expressão booleana que corresponda às colunas, com base em name, type, stream, origin e position da coluna. O padrão afetará qualquer coluna, derivada ou definida, onde a condição retorna true.

A captura de tela mostra a guia Configurações da coluna Derivada.

O padrão de coluna acima corresponde a todas as colunas 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.

A captura de tela mostra a guia Esquema de saída.

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.

A captura de tela mostra o padrão de coluna hierárquica.

Achatamento de estruturas

Quando os seus dados têm estruturas complexas, como arrays, estruturas hierárquicas e mapas, pode utilizar a Transformação Flatten para desenrolar arrays e desnormalizar os 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:

A captura de tela mostra a estrutura plana da coluna Derivada.

Mapeamento baseado em regras para seleção e destino

Ao mapear colunas na origem e selecionar transformações, você pode adicionar mapeamentos fixos ou mapeamentos baseados em regras. Correspondência com base nos name, type, stream, origin e nas colunas 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 pela qual corresponder e como nomear 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 onde a coluna correspondente será mapeada.

A captura de tela mostra um mapeamento.

Utilize a sintaxe $$ para referenciar o nome de entrada de uma coluna correspondente. Usando a imagem acima como exemplo, podemos dizer que um utilizador pretende fazer correspondência em todas as colunas de texto 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 são compatíveis com colunas desviadas e definidas. Para ver quais colunas definidas são mapeadas por uma regra, clique no ícone de óculos ao lado da regra. Verifique a sua saída utilizando a pré-visualização de dados.

Mapeamento Regex

Se clicar no ícone de seta 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 ao padrão de Regex especificado. Isso pode ser usado em combinação com mapeamentos baseados em regras padrão.

A captura de ecrã mostra a condição de mapeamento regex com correspondências no nível de hierarquia e no 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 $$.

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

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-se para a correspondência do nome da coluna atual em tempo de execução para tipos escalares. Para tipos hierárquicos, $0 representa o caminho hierárquico 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