Sdílet prostřednictvím


Transformační funkce v Power Query pro transformaci dat

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Transformace dat ve službě Azure Data Factory umožňuje provádět agilní přípravu a transformaci dat bez kódu v cloudovém měřítku překladem skriptů Power Query M do Tok dat skriptu. ADF se integruje s Power Query Online a zpřístupňuje funkce Power Query M pro transformaci dat prostřednictvím spouštění Sparku pomocí infrastruktury Sparku toku dat.

V současné době nejsou podporované všechny funkce Power Query M pro transformaci dat, i když jsou během vytváření dostupné. Při sestavování mash-ups se zobrazí výzva s následující chybovou zprávou, pokud funkce není podporovaná:

UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.

Níže je seznam podporovaných funkcí Power Query M.

Správa sloupců

Filtrování řádků

K filtrování následujících podmínek použijte M function Table.SelectRows :

Přidání a transformace sloupců

Následující funkce jazyka M přidávají nebo transformují sloupce: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Níže jsou uvedené podporované transformační funkce.

Slučování/spojování tabulek

  • Power Query vygeneruje vnořené spojení (Table.NestedJoin; uživatelé můžou také ručně zapisovat Table.AddJoinColumn). Uživatelé pak musí sloupec vnořeného spojení rozbalit do nevnořeného spojení (Table.ExpandTableColumn, nepodporuje se v žádném jiném kontextu).
  • Funkce M function Table.Join se dá zapsat přímo, aby se zabránilo nutnosti dalšího rozšiřovacího kroku, ale uživatel musí zajistit, aby mezi připojenými tabulkami nebyly žádné duplicitní názvy sloupců.
  • Podporované druhy spojení: inner, leftouter, rightouter, fullouter
  • Hodnoty.Equals i Value.NullableEquals se podporují jako porovnávače rovnosti klíčů.

Seskupit podle

K agregaci hodnot použijte Table.Group .

Třídění

K řazení hodnot použijte Table.Sort .

Zmenšení řádků

Keep and Remove Top, Keep Range (odpovídající M functions, only supporting counts, not conditions: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)

Známé nepodporované funkce

Function Stav
Table.PromoteHeaders Nepodporováno Stejný výsledek lze dosáhnout nastavením prvního řádku jako záhlaví v datové sadě.
Table.CombineColumns Jedná se o běžný scénář, který není přímo podporovaný, ale dá se dosáhnout přidáním nového sloupce, který zřetězí dva sloupce. Například Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName])
Table.TransformColumnTypes Tato funkce je ve většině případů podporovaná. Následující scénáře nejsou podporovány: transformace řetězce na typ měny, transformace řetězce na typ času, transformace řetězce na typ Procento a tranfoming s národním prostředím.
Table.NestedJoin Při pouhém spojení dojde k chybě ověření. Aby sloupce fungovaly, musí být rozbalené.
Table.RemoveLastN Odebrání dolních řádků se nepodporuje.
Table.RowCount Nepodporuje se, ale můžete toho dosáhnout přidáním vlastního sloupce obsahujícího hodnotu 1 a agregací tohoto sloupce pomocí List.Sum. Tabulka.Group je podporovaná.
Zpracování chyb na úrovni řádků Zpracování chyb na úrovni řádků se v současné době nepodporuje. Pokud chcete například vyfiltrovat nečíselné hodnoty ze sloupce, je jedním z přístupů transformace textového sloupce na číslo. Každá buňka, která se nepodaří transformovat, bude v chybovém stavu a musí být filtrovaná. Tento scénář není možné v M s horizontálním navýšením kapacity.
Table.Transpone Nepodporováno

Alternativní řešení skriptů M

SplitColumn

Alternativní rozdělení podle délky a pozice je uvedeno níže.

  • Table.AddColumn(Source; "First characters", each Text.Start([Email], 7); type text)
  • Table.AddColumn(#"Vložené první znaky"; "Rozsah textu", každý Text.Middle([E-mail], 4, 9), text typu)

Tato možnost je přístupná z možnosti Extrahovat na pásu karet.

Power Query Add Column

Table.CombineColumns

  • Table.AddColumn(RemoveEmailColumn; "Name", each [FirstName] & " " & [LastName])

Čepy

  • Výběr transformace kontingenční tabulky z editoru PQ a výběru sloupce kontingenční tabulky

Power Query Pivot Common

  • Dále vyberte sloupec hodnot a agregační funkci.

Power Query Pivot Selector

  • Když kliknete na OK, zobrazí se data v editoru aktualizovaná o kontingenční hodnoty.
  • Zobrazí se také zpráva s upozorněním, že transformace nemusí být podporována.
  • Pokud chcete toto upozornění opravit, rozbalte kontingenční seznam ručně pomocí editoru PQ.
  • Výběr možnosti Rozšířený editor na pásu karet
  • Ruční rozbalení seznamu kontingenčních hodnot
  • Nahraďte List.Distinct() seznamem hodnot, jako je tento:
#"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"

Formátování sloupců data a času

Pokud chcete nastavit formát data a času při použití ADF Power Query, nastavte formát podle těchto sad.

Power Query Change Type

  1. Vyberte sloupec v uživatelském rozhraní Power Query a zvolte Změnit typ > data a času.
  2. Zobrazí se zpráva s upozorněním
  3. Otevřete Rozšířený editor a přejděte TransformColumnTypes na TransformColumns. Zadejte formát a jazykovou verzi na základě vstupních dat.

Power Query Editor

#"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}})

Naučte se vytvářet transformace dat v Power Query v ADF.