Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.
O Data Wrangling em Azure Data Factory permite fazer preparação e wrangling ágil de dados sem código à escala cloud, traduzindo scripts Power Query M para Fluxo de Dados script. O ADF integra-se com Power Query Online e disponibiliza funções Power Query M para manipulação de dados via execução Spark usando a infraestrutura de fluxo de dados Spark.
Atualmente, nem todas as funções do Power Query M são suportadas para manipulação de dados, apesar de estarem disponíveis durante a autoria. Ao criar seus mash-ups, você receberá a seguinte mensagem de erro se uma função não for suportada:
UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.
Abaixo está uma lista das funções suportadas do Power Query M.
Gestão de Colunas
- Seleção: Table.SelectColumns
- Remoção: Table.RemoveColumns
- Renomeando: Table.RenameColumns, Table.PrefixColumns, Table.TransformColumnNames
- Reordenando: Table.ReorderColumns
Filtragem de linhas
Use a função M Table.SelectRows para filtrar as seguintes condições:
- Igualdade e desigualdade
- Comparações numéricas, de texto e de data (mas não DateTime)
- Informações numéricas como /
- Contenção de texto usando Text.Contains, Text.StartsWith ou Text.EndsWith
- Intervalos de datas, incluindo todas as funções de data 'IsIn')
- Combinações destas condições de utilização e, ou não
Adicionando e transformando colunas
As seguintes funções M adicionam ou transformam colunas: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Abaixo estão as funções de transformação suportadas.
- Aritmética numérica
- Concatenação de texto
- Aritmética de Data e Hora (operadores aritméticos, Date.AddDays, Date.AddMonths, Date.AddQuarters, Date.AddWeeks, Date.AddYears)
- As durações podem ser usadas para aritmética de data e hora, mas devem ser transformadas em outro tipo antes de serem gravadas em um coletor (operadores aritméticos, #duration, Duration.Days, Duration.Hours, Duration.Minutes, Duration.Seconds, Duration.TotalDays, Duration.TotalHours, Duration.TotalMinutes, Duration.TotalSeconds)
- A maioria das funções numéricas padrão, científicas e trigonométricas (Todas as funções em Operações, Arredondamento e Trigonometria, exceto Número.Fatorial, Número.Permutações e Número.Combinações)
- Substituição (Replacer.ReplaceText, Replacer.ReplaceValue, Text.Replace, Text.Remove)
- Extração de texto posicional (Text.PositionOf, Text.Length, Text.Start, Text.End, Text.Middle, Text.ReplaceRange, Text.RemoveRange)
- Formatação de texto básica (Text.Lower, Text.Upper, Text.TrimStart/End, Text.PadStart/End, /
- Funções Data/Hora (Data.Dia, Data.Mês, Data.AnoHora, Hora.Minuto, Hora.Minuto, Hora.Segundo, Data.DiadeSemana, Data.DiadeAno, Data.DiasEmMês)
- Se as expressões (mas as ramificações devem ter tipos correspondentes)
- Filtros de linha como uma coluna lógica
- Constantes de número, texto, lógica, data e data/hora
Mesclagem/junção de tabelas
- Power Query gera uma junção aninhada (Table.NestedJoin; os utilizadores também podem escrever manualmente Table.AddJoinColumn). Os usuários devem então expandir a coluna de junção aninhada em uma associação não aninhada (Table.ExpandTableColumn, sem suporte em nenhum outro contexto).
- A função M Table.Join pode ser escrita diretamente para evitar a necessidade de uma etapa de expansão adicional, mas o usuário deve garantir que não haja nomes de colunas duplicados entre as tabelas unidas
- Tipos de junção suportados: Inner, LeftOuter, RightOuter, FullOuter
- Value.Equals e Value.NullableEquals são suportados como comparadores de igualdade de chave
Agrupar por
Use Table.Group para agregar valores.
- Deve ser usado com uma função de agregação
- Funções de agregação suportadas: List.Sum, List.Count, List.Average, List.Min, List.Max, List.StandardDeviation, List.First, List.Last
Ordenar
Use Table.Sort para classificar valores.
Redução de linhas
Manter e Remover Topo, Manter Intervalo (funções M correspondentes, suportando apenas contagens, não condições: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)
Funções conhecidas não suportadas
| Function | Status |
|---|---|
| Table.PromoteHeaders | Não suportado. O mesmo resultado pode ser alcançado definindo "Primeira linha como cabeçalho" no conjunto de dados. |
| Table.CombineColumns | Este é um cenário comum que não é suportado diretamente, mas pode ser alcançado adicionando uma nova coluna que concatena duas colunas específicas. Por exemplo, Table.AddColumn(RemoveEmailColumn, "Name", cada [FirstName] & " " & [LastName]) |
| Table.TransformColumnTypes | Isso é suportado na maioria dos casos. Não há suporte para os seguintes cenários: transformar cadeia de caracteres em tipo de moeda, transformar cadeia de caracteres em tipo de tempo, transformar cadeia de caracteres em tipo de porcentagem e transformar com localidade. |
| Table.NestedJoin | Apenas fazer uma junção resultará em um erro de validação. As colunas devem ser expandidas para que funcione. |
| Table.RemoveLastN | Não há suporte para remover linhas inferiores. |
| Table.RowCount | Não há suporte, mas pode ser obtido adicionando uma coluna personalizada contendo o valor 1 e, em seguida, agregando essa coluna com List.Sum. Table.Group é suportado. |
| Tratamento de erros ao nível da linha | Atualmente, não há suporte para o tratamento de erros em nível de linha. Por exemplo, para filtrar valores não numéricos de uma coluna, uma abordagem seria transformar a coluna de texto em um número. Todas as células que não conseguirem se transformar estarão em um estado de erro e precisarão ser filtradas. Este cenário não é possível em M escalonado. |
| Tabela.Transpor | Não suportado |
Soluções alternativas de script M
SplitColumn
Uma alternativa para dividir por comprimento e por posição está listada abaixo
- Table.AddColumn(Fonte, "Primeiros caracteres", cada Text.Start([Email], 7), digite texto)
- Table.AddColumn(#"Inseridos primeiros caracteres", "Intervalo de texto", cada Text.Middle([Email], 4, 9), digite texto)
Esta opção pode ser acessada a partir da opção Extrair na faixa de opções
Table.CombineColumns
- Table.AddColumn(RemoveEmailColumn, "Name", cada [FirstName] & " " & [LastName])
Pivôs
- Selecione Transformação de pivô no editor PQ e selecione sua coluna de pivô
- Em seguida, selecione a coluna de valor e a função de agregação
- Ao clicar em OK, você verá os dados no editor atualizados com os valores dinâmicos
- Você também verá uma mensagem de aviso informando que a transformação pode não ser suportada
- Para corrigir esse aviso, expanda a lista dinâmica manualmente usando o editor PQ
- Selecione a opção Editor Avançado na fita
- Expandir a lista de valores dinâmicos manualmente
- Substitua List.Distinct() pela lista de valores como esta:
#"Pivoted column" = Table.Pivot(Table.TransformColumnTypes(#"Changed column type 1", {{"genres", type text}}), {"Drama", "Horror", "Comedy", "Musical", "Documentary"}, "genres", "Rating", List.Average)
in
#"Pivoted column"
Formatação de colunas de data/hora
Para definir o formato data/hora ao usar o Power Query ADF, por favor siga estes conjuntos para definir o formato.
- Selecione a coluna na interface Power Query e escolha Alterar Tipo > Data/Hora
- Você verá uma mensagem de aviso
- Abre Editor Avançado e muda
TransformColumnTypesparaTransformColumns. Especifique o formato e a cultura com base nos dados de entrada.
#"Changed column type 1" = Table.TransformColumns(#"Duplicated column", {{"start - Copy", each DateTime.FromText(_, [Format = "yyyy-MM-dd HH:mm:ss", Culture = "en-us"]), type datetime}})