Átalakítási függvények a Power Queryben az adatátalakításhoz
A következőkre vonatkozik: Azure Data Factory
Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
A Data Wrangling az Azure Data Factoryben lehetővé teszi a kód nélküli agilis adatelőkészítést és a felhőbeli szintű skálázást a Power Query-szkriptek M
Adatfolyam szkriptekké való fordításával. Az ADF integrálható a Power Query Online-nal, és elérhetővé teszi a Power Query-függvényeket M
az adatfolyam Spark-infrastruktúra használatával történő adatátszervezéshez.
Jelenleg nem minden Power Query M-függvény támogatott az adatkonvergáláshoz annak ellenére, hogy a létrehozás során elérhető. Az összefésült adatok létrehozásakor a rendszer a következő hibaüzenetet fogja kérni, ha egy függvény nem támogatott:
UserQuery : Expression.Error: The transformation logic is not supported as it requires dynamic access to rows of data, which cannot be scaled out.
Az alábbiakban a támogatott Power Query M-függvények listája látható.
Oszlopkezelés
- Kijelölés: Table.SelectColumns
- Eltávolítás: Table.RemoveColumns
- Átnevezés: Table.RenameColumns, Table.PrefixColumns, Table.TransformColumnNames
- Átrendezés: Table.ReorderColumns
Sorszűrés
Az M függvény Table.SelectRows használatával a következő feltételekre szűrhet:
- Egyenlőség és egyenlőtlenség
- Numerikus, szöveges és dátum-összehasonlítások (de a DateTime nem)
- Numerikus adatok, például Szám.IsEven/Páratlan
- Szöveg elszigetelése a Text.Contains, a Text.StartsWith vagy a Text.EndsWith használatával
- Dátumtartományok, beleértve az összes "IsIn" dátumfüggvényt)
- Ezek kombinációi feltételek használatával és vagy nem
Oszlopok hozzáadása és átalakítása
A következő M függvények oszlopokat adnak hozzá vagy alakítanak át: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, Table.DuplicateColumn. Az alábbiakban a támogatott átalakítási függvények találhatók.
- Numerikus aritmetika
- Szövegösszefűzés
- Dátum és idő aritmetika (Számtani operátorok, Date.AddDays, Date.AddMonths, Date.AddQuarters, Date.AddWeeks, Date.AddYears)
- Az időtartamok felhasználhatók dátum- és időritkításhoz, de a fogadóba való írás előtt át kell alakítani egy másik típusra (Számtani operátorok, #duration, Duration.Days, Duration.Hours, Duration.Minutes, Duration.Seconds, Duration.TotalDays, Duration.TotalHours, Duration.TotalMinutes, Duration.TotalSeconds)
- A legtöbb standard, tudományos és trigonometrikus numerikus függvény (Az Operations, Rounding és Trigonometryfüggvények összes függvénye a Number.Factorial, a Number.Permutations és a Number.Combinations kivételével)
- Csere (Replacer.ReplaceText, Replacer.ReplaceValue, Text.Replace, Text.Remove)
- Pozíciószöveg kinyerése (Text.PositionOf, Text.Length, Text.Start, Text.End, Text.Middle, Text.ReplaceRange, Text.RemoveRange)
- Egyszerű szövegformázás (Text.Lower, Text.Upper, Text.Trim/Start/End, Text.PadStart/End, Text.Reverse)
- Dátum/idő függvények (Date.Day, Date.Month, Date.Year Time.Hour, Time.Minute, Time.Second, Date.DayOfWeek, Date.DayOfYear, Date.DaysInMonth)
- Ha a kifejezéseknek (de az ágaknak egyező típusokkal kell rendelkezniük)
- Sorszűrők logikai oszlopként
- Szám, szöveg, logikai, dátum és dátum/idő állandók
Táblák egyesítése/összekapcsolása
- A Power Query beágyazott illesztéseket hoz létre (Table.NestedJoin; a felhasználók manuálisan is írhatnak Table.AddJoinColumn). A felhasználóknak ezután a beágyazott illesztés oszlopát nem beágyazott illesztéssé kell bontaniük (Table.ExpandTableColumn, más környezetben nem támogatott).
- Az M függvény Table.Join közvetlenül írható, hogy ne legyen szükség további bővítési lépésre, de a felhasználónak gondoskodnia kell arról, hogy ne legyenek ismétlődő oszlopnevek az összekapcsolt táblák között
- Támogatott illesztéstípusok: Inner, LeftOuter, RightOuter, FullOuter
- A Value.Equals és a Value.NullableEquals is támogatott fő egyenlőség-összehasonlítóként
Csoportosítás szempontja:
Értékek összesítése a Table.Group használatával.
- Aggregációs függvényhez kell használni
- Támogatott összesítési függvények: List.Sum, List.Count, List.Average, List.Min, List.Max, List.StandardDeviation, List.First, List.Last
Rendezés
Értékek rendezése a Table.Sort használatával.
Sorok csökkentése
Felső érték megtartása és eltávolítása, Tartomány megtartása (megfelelő M függvények, csak támogató számok, nem feltételek: Table.FirstN, Table.Skip, Table.RemoveFirstN, Table.Range, Table.MinN, Table.MaxN)
Ismert nem támogatott függvények
Függvény | Állapot |
---|---|
Table.PromoteHeaders | Nem támogatott. Ugyanez az eredmény az adathalmaz "Első sor fejlécként" beállításával érhető el. |
Table.CombineColumns | Ez egy gyakori forgatókönyv, amely nem támogatott közvetlenül, de egy új oszlop hozzáadásával érhető el, amely két adott oszlopot fűz össze. Például Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] &" & [LastName]) |
Table.TransformColumnTypes | Ez a legtöbb esetben támogatott. A következő forgatókönyvek nem támogatottak: sztring átalakítása pénznemtípusra, sztring időtípussá alakítása, sztring százalékos típussá alakítása és területi beállítással történő átalakítás. |
Table.NestedJoin | Az összekapcsolás csak ellenőrzési hibát eredményez. Az oszlopokat ki kell bontani ahhoz, hogy működjön. |
Table.RemoveLastN | Az alsó sorok eltávolítása nem támogatott. |
Table.RowCount | Nem támogatott, de az 1 értéket tartalmazó egyéni oszlop hozzáadásával, majd az oszlop list.sum értékkel való összesítésével érhető el. A Table.Group támogatott. |
Sorszintű hibakezelés | A sorszintű hibakezelés jelenleg nem támogatott. Ha például egy oszlopból szeretné kiszűrni a nem numerikus értékeket, az egyik módszer a szövegoszlop számmá alakítása. Minden olyan cella, amely nem tud átalakítást végrehajtani, hibaállapotban lesz, és szűrni kell. Ez a forgatókönyv a vertikálisan felskálázott M esetében nem lehetséges. |
Table.Transzponálás | Nem támogatott |
M-szkript megkerülő megoldásai
SplitColumn
A hossz és a pozíció szerinti felosztás alternatívát az alábbiakban találja
- Table.AddColumn(Source, "First characters", each Text.Start([Email], 7), type text)
- Table.AddColumn(#"Inserted first characters", "Text range", each Text.Middle([Email], 4, 9), type text)
Ez a beállítás a menüszalag Kinyerés lehetőségéből érhető el
Table.CombineColumns
- Table.AddColumn(RemoveEmailColumn, "Name", each [FirstName] & " " & [LastName])
Forgócsapok
- Válassza a Kimutatás átalakítás lehetőséget a PQ-szerkesztőből, és válassza ki a kimutatásoszlopot
- Ezután válassza ki az érték oszlopot és az összesítő függvényt
- Amikor az OK gombra kattint, a szerkesztőben megjelennek az adatok, és frissülnek a pivoted értékek
- Figyelmeztető üzenet is jelenik meg arról, hogy az átalakítás nem támogatott
- A figyelmeztetés kijavításához bontsa ki manuálisan a kimutatáslistát a PQ-szerkesztővel
- Válassza Speciális szerkesztő lehetőséget a menüszalagon
- A kimutatásértékek listájának manuális kibontása
- Cserélje le a List.Distinct() elemet az alábbihoz hasonló értékek listájára:
#"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"
Dátum-/időoszlopok formázása
A Power Query ADF használatakor a dátum/idő formátum beállításához kövesse ezeket a készleteket a formátum beállításához.
- Jelölje ki az oszlopot a Power Query felhasználói felületén, és válassza a Típus módosítása dátum/idő lehetőséget >
- Figyelmeztető üzenet jelenik meg
- Nyissa meg a Speciális szerkesztő, és váltson
TransformColumnTypes
a gombraTransformColumns
. Adja meg a formátumot és a kulturális környezetet a bemeneti adatok alapján.
#"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}})
Kapcsolódó tartalom
Megtudhatja, hogyan hozhat létre adatátrendező Power Queryt az ADF-ben.