Funkcje przekształcania w dodatku Power Query na potrzeby uzdatniania danych
DOTYCZY: Azure Data Factory Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
Uzdatnianie danych w usłudze Azure Data Factory umożliwia wykonywanie bez kodu elastycznego przygotowywania danych i uzdatniania w skali chmury przez tłumaczenie skryptów dodatku Power Query M
na skrypt Przepływ danych. Usługa ADF integruje się z usługą Power Query Online i udostępnia funkcje dodatku Power Query M
na potrzeby uzdatniania danych za pośrednictwem wykonywania platformy Spark przy użyciu infrastruktury spark przepływu danych.
Obecnie nie wszystkie funkcje języka Power Query M są obsługiwane w przypadku uzdatniania danych, mimo że są dostępne podczas tworzenia. Podczas tworzenia mash-upów zostanie wyświetlony następujący komunikat o błędzie, jeśli funkcja nie jest obsługiwana:
UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.
Poniżej znajduje się lista obsługiwanych funkcji dodatku Power Query M.
Zarządzanie kolumnami
- Wybór: Table.SelectColumns
- Usuwanie: Table.RemoveColumns
- Zmiana nazwy: Table.RenameColumns, Table.PrefixColumns, Table.TransformColumnNames
- Zmiana kolejności: Table.ReorderColumns
Filtrowanie wierszy
Użyj funkcji M Table.SelectRows , aby filtrować według następujących warunków:
- Równość i nierówności
- Porównania liczbowe, tekstowe i daty (ale nie DateTime)
- Informacje liczbowe, takie jak Number.IsEven/, nieparzyste
- Zawieranie tekstu przy użyciu funkcji Text.Contains, Text.StartsWith lub Text.EndsWith
- Zakresy dat, w tym wszystkie funkcje daty "IsIn"
- Kombinacje tych warunków i, lub, lub nie
Dodawanie i przekształcanie kolumn
Następujące funkcje języka M dodają lub przekształcają kolumny: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Poniżej przedstawiono obsługiwane funkcje przekształcania.
- Arytmetyka liczbowa
- Łączenie tekstu
- Arytmetyka daty i godziny (operatory arytmetyczne, Date.AddDays, Date.AddMonths, Date.AddQuarters, Date.AddWeeks, Date.AddYears)
- Czasy trwania mogą być używane dla arytmetyki daty i godziny, ale muszą zostać przekształcone w inny typ przed zapisem do ujścia (operatory arytmetyczne, #duration, Duration.Days, Duration.Hours, Duration.Minutes, Duration.Seconds, Duration.TotalDays, Duration.TotalHours, Duration.TotalMinutes, Duration.TotalSeconds)
- Większość standardowych, naukowych i trygonometrycznych funkcji liczbowych (wszystkie funkcje w obszarze Operations, Rounding i Trigonometry z wyjątkiem Number.Factorial, Number.Permutations i Number.Combinations)
- Replacer.ReplaceText, Replacer.ReplaceValue, Text.Replace, Text.Remove)
- Wyodrębnianie tekstu pozycyjnego (Text.PositionOf, Text.Length, Text.Start, Text.End, Text.Middle, Text.ReplaceRange, Text.RemoveRange)
- Formatowanie tekstu podstawowego (Text.Lower, Text.Upper, Text.Trim/Start/End, Text.PadStart/End, Text.Reverse)
- Funkcje daty/godziny (Date.Day, Date.Month, Date.Year Time.Hour, Time.Minute, Time.Second, Date.DayOfWeek, Date.DayOfYear, Date.DaysInMonth)
- Jeśli wyrażenia (ale gałęzie muszą mieć pasujące typy)
- Filtry wierszy jako kolumna logiczna
- Liczba, tekst, logiczne, daty i stałe daty/godziny
Scalanie/łączenie tabel
- Dodatek Power Query wygeneruje zagnieżdżone sprzężenia (Table.NestedJoin; użytkownicy mogą również ręcznie napisać table.AddJoinColumn). Użytkownicy muszą następnie rozwinąć zagnieżdżonych kolumnę sprzężenia do sprzężenia niezagnieżdżonego (Table.ExpandTableColumn, nieobsługiwane w żadnym innym kontekście).
- Funkcję M Table.Join można napisać bezpośrednio, aby uniknąć konieczności dodatkowego kroku rozszerzenia, ale użytkownik musi upewnić się, że nie ma zduplikowanych nazw kolumn w tabelach sprzężonych
- Obsługiwane rodzaje sprzężenia: Wewnętrzny, LeftOuter, RightOuter, FullOuter
- Obie wartości Value.Equals i Value.NullableEquals są obsługiwane jako kluczowe porównania równości
Grupuj według
Użyj elementu Table.Group , aby agregować wartości.
- Musi być używany z funkcją agregacji
- Obsługiwane funkcje agregacji: List.Sum, List.Count, List.Average, List.Min, List.Max, List.StandardDeviation, List.First, List.Last
Sortowanie
Użyj funkcji Table.Sort do sortowania wartości.
Zmniejszanie wierszy
Zachowaj i usuń zakres, Zachowaj zakres (odpowiadające im funkcje M, tylko liczby pomocnicze, a nie warunki: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)
Znane nieobsługiwane funkcje
Function | Stan |
---|---|
Table.PromoteHeaders | Nieobsługiwane. Ten sam wynik można osiągnąć, ustawiając w zestawie danych wartość "Pierwszy wiersz jako nagłówek". |
Table.CombineColumns | Jest to typowy scenariusz, który nie jest bezpośrednio obsługiwany, ale można go osiągnąć, dodając nową kolumnę, która łączy dwie podane kolumny. Na przykład Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName]) |
Table.TransformColumnTypes | Jest to obsługiwane w większości przypadków. Następujące scenariusze są nieobsługiwane: przekształcanie ciągu na typ waluty, przekształcanie ciągu na typ czasu, przekształcanie ciągu na typ procentowy i transfomowanie przy użyciu ustawień regionalnych. |
Table.NestedJoin | Wykonanie sprzężenia spowoduje błąd weryfikacji. Kolumny muszą być rozwinięte, aby działały. |
Table.RemoveLastN | Usuwanie dolnych wierszy nie jest obsługiwane. |
Table.RowCount | Nieobsługiwane, ale można to osiągnąć, dodając kolumnę niestandardową zawierającą wartość 1, a następnie agregując tę kolumnę za pomocą elementu List.Sum. Tabela.Group jest obsługiwana. |
Obsługa błędów na poziomie wiersza | Obsługa błędów na poziomie wiersza nie jest obecnie obsługiwana. Na przykład aby odfiltrować wartości nieliczbowe z kolumny, jednym z podejść byłoby przekształcenie kolumny tekstowej na liczbę. Każda komórka, która nie zostanie przekształcona, będzie w stanie błędu i musi zostać przefiltrowana. Ten scenariusz nie jest możliwy w przypadku skalowania w poziomie M. |
Table.Transponuj | Nieobsługiwane |
Obejścia skryptu języka M
SplitColumn
Alternatywna dla podziału według długości i pozycji znajduje się poniżej
- Table.AddColumn(Source, "First characters", each Text.Start([Email], 7), wpisz tekst)
- Table.AddColumn(#"Wstawione pierwsze znaki", "Zakres tekstu", każdy Tekst.Middle([Email], 4, 9), wpisz tekst)
Ta opcja jest dostępna z opcji Wyodrębnij na wstążce
Table.CombineColumns
- Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName])
Czopów
- Wybierz pozycję Przekształcenie przestawne z edytora PQ i wybierz kolumnę przestawną
- Następnie wybierz kolumnę wartości i funkcję agregacji
- Po kliknięciu przycisku OK zobaczysz dane w edytorze zaktualizowane przy użyciu wartości przestawnych
- Zostanie również wyświetlony komunikat ostrzegawczy informujący o tym, że transformacja może nie być obsługiwana
- Aby naprawić to ostrzeżenie, rozwiń listę przestawną ręcznie przy użyciu edytora PQ
- Wybierz opcję Edytor zaawansowany na wstążce
- Ręczne rozwijanie listy wartości przestawnych
- Zastąp ciąg List.Distinct() listą wartości w następujący sposób:
#"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"
Formatowanie kolumn daty/godziny
Aby ustawić format daty/godziny podczas korzystania z usługi ADF dodatku Power Query, postępuj zgodnie z tymi zestawami, aby ustawić format.
- Wybierz kolumnę w interfejsie użytkownika dodatku Power Query i wybierz pozycję Zmień typ > daty/godziny
- Zostanie wyświetlony komunikat ostrzegawczy
- Otwórz Edytor zaawansowany i zmień wartość
TransformColumnTypes
naTransformColumns
. Określ format i kulturę na podstawie danych wejściowych.
#"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}})
Powiązana zawartość
Dowiedz się, jak utworzyć dane uzdatniania dodatku Power Query w usłudze ADF.