Átalakítás elemzése a leképezési adatfolyamban
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!
Az adatfolyamok az Azure Data Factoryben és az Azure Synapse Pipelinesban is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem használta az átalakításokat, tekintse meg az adatok leképezési adatfolyam használatával történő átalakításáról szóló bevezető cikket.
Az Elemzés átalakítás használatával elemezheti az adatok szöveges oszlopait, amelyek sztringek a dokumentumformátumban. Az elemezhető beágyazott dokumentumok jelenlegi támogatott típusai a JSON, az XML és a tagolt szöveg.
Konfiguráció
Az elemzési átalakítási konfigurációs panelen először válassza ki azoknak az oszlopoknak az adattípusát, amelyeket beágyazottként szeretne elemezni. Az elemzési átalakítás a következő konfigurációs beállításokat is tartalmazza.
Oszlop
A származtatott oszlopokhoz és aggregátumokhoz hasonlóan az Oszlop tulajdonságban módosíthatja a meglévő oszlopokat úgy, hogy kiválasztja azt a legördülő választóból. Vagy itt beírhatja egy új oszlop nevét. Az ADF ebben az oszlopban tárolja az elemezt forrásadatokat. A legtöbb esetben egy új oszlopot szeretne definiálni, amely elemzi a bejövő beágyazott dokumentumsztringmezőt.
Expression
Az elemzés forrásának beállításához használja a kifejezésszerkesztőt. A forrás beállítása olyan egyszerű lehet, mint a forrásoszlop kijelölése az elemezni kívánt önálló adatokkal, vagy összetett kifejezéseket is létrehozhat elemzésre.
Mintakifejezések
Forrássztring-adatok:
chrome|steel|plastic
- Kifejezés:
(desc1 as string, desc2 as string, desc3 as string)
- Kifejezés:
Forrás JSON-adatok:
{"ts":1409318650332,"userId":"309","sessionId":1879,"page":"NextSong","auth":"Logged In","method":"PUT","status":200,"level":"free","itemInSession":2,"registration":1384448}
- Kifejezés:
(level as string, registration as long)
- Kifejezés:
Beágyazott JSON-adatok forrása:
{"car" : {"model" : "camaro", "year" : 1989}, "color" : "white", "transmission" : "v8"}
- Kifejezés:
(car as (model as string, year as integer), color as string, transmission as string)
- Kifejezés:
Forrás XML-adatok:
<Customers><Customer>122</Customer><CompanyName>Great Lakes Food Market</CompanyName></Customers>
- Kifejezés:
(Customers as (Customer as integer, CompanyName as string))
- Kifejezés:
Forrás XML attribútumadatokkal:
<cars><car model="camaro"><year>1989</year></car></cars>
- Kifejezés:
(cars as (car as ({@model} as string, year as integer)))
- Kifejezés:
Fenntartott karakterekkel rendelkező kifejezések:
{ "best-score": { "section 1": 1234 } }
- A fenti kifejezés nem működik, mivel a "-" karaktert
best-score
kivonási műveletként értelmezi a rendszer. A JSON-motornak a szöveg szó szerinti értelmezéséhez használjon zárójeles jelölést tartalmazó változót:var bestScore = data["best-score"]; { bestScore : { "section 1": 1234 } }
- A fenti kifejezés nem működik, mivel a "-" karaktert
Megjegyzés: Ha olyan hibákba ütközik, @model) amikor attribútumokat nyer ki (konkrétan egy összetett típusból, a megkerülő megoldás az, hogy az összetett típust sztringgé alakítja, távolítsa el a @ szimbólumot (pontosabban: replace(toString(your_xml_string_parsed_column_name.cars.car),'@''''), majd használja a JSON-transzformációs tevékenység elemzését.
Kimeneti oszlop típusa
Itt konfigurálhatja a cél kimeneti sémát az egyetlen oszlopba írt elemzésből. A legegyszerűbben úgy állíthatja be a kimenet sémáját az elemzésből, ha a kifejezésszerkesztő jobb felső sarkában található "Típus észlelése" gombot választja. Az ADF megpróbálja automatikusan létrehozni a sémát a sztringmezőből, amelyet elemez, és beállít a kimeneti kifejezésben.
Ebben a példában meghatároztuk a bejövő "jsonString" mező elemzését, amely egyszerű szöveg, de JSON-struktúraként van formázva. Az elemzési eredményeket JSON-ként fogjuk tárolni egy új, "json" nevű oszlopban ezzel a sémával:
(trade as boolean, customers as string[])
A kimenet megfelelő leképezésének ellenőrzéséhez tekintse meg a vizsgálat lapot és az adatok előnézetét.
Hierarchikus adatok kinyerése a Származtatott oszlop tevékenység használatával (azaz your_complex_column_name.car.model a kifejezésmezőben)
Példák
source(output(
name as string,
location as string,
satellites as string[],
goods as (trade as boolean, customers as string[], orders as (orderId as string, orderTotal as double, shipped as (orderItems as (itemName as string, itemQty as string)[]))[])
),
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
documentForm: 'documentPerLine') ~> JsonSource
source(output(
movieId as string,
title as string,
genres as string
),
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false) ~> CsvSource
JsonSource derive(jsonString = toString(goods)) ~> StringifyJson
StringifyJson parse(json = jsonString ? (trade as boolean,
customers as string[]),
format: 'json',
documentForm: 'arrayOfDocuments') ~> ParseJson
CsvSource derive(csvString = 'Id|name|year\n\'1\'|\'test1\'|\'1999\'') ~> CsvString
CsvString parse(csv = csvString ? (id as integer,
name as string,
year as string),
format: 'delimited',
columnNamesAsHeader: true,
columnDelimiter: '|',
nullValue: '',
documentForm: 'documentPerLine') ~> ParseCsv
ParseJson select(mapColumn(
jsonString,
json
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> KeepStringAndParsedJson
ParseCsv select(mapColumn(
csvString,
csv
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> KeepStringAndParsedCsv
Adatfolyamszkript
Syntax
Példák
parse(json = jsonString ? (trade as boolean,
customers as string[]),
format: 'json|XML|delimited',
documentForm: 'singleDocument') ~> ParseJson
parse(csv = csvString ? (id as integer,
name as string,
year as string),
format: 'delimited',
columnNamesAsHeader: true,
columnDelimiter: '|',
nullValue: '',
documentForm: 'documentPerLine') ~> ParseCsv
Kapcsolódó tartalom
- Az Elsimított átalakítás használatával sorokat forgathat oszlopokhoz.
- A Származtatott oszlop átalakításával alakíthatja át a sorokat.