Analýza transformace v mapování toku 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.
Toky dat jsou k dispozici ve službě Azure Data Factory i v kanálech Azure Synapse. Tento článek se týká mapování toků dat. Pokud s transformacemi začínáte, přečtěte si úvodní článek Transformace dat pomocí mapování toku dat.
Pomocí transformace parsování můžete analyzovat textové sloupce v datech, které jsou řetězce ve formuláři dokumentu. Aktuální podporované typy vložených dokumentů, které je možné analyzovat, jsou JSON, XML a text s oddělovači.
Konfigurace
Na konfiguračním panelu transformace analýzy nejprve vyberete typ dat obsažených ve sloupcích, které chcete analyzovat v textu. Transformace analýzy obsahuje také následující nastavení konfigurace.
Column
Podobně jako u odvozených sloupců a agregací se jedná o místo, kde buď upravíte existující sloupec tak, že ho vyberete z rozevíracího výběru. Nebo můžete sem zadat název nového sloupce. ADF uloží analyzovaná zdrojová data v tomto sloupci. Ve většině případů budete chtít definovat nový sloupec, který analyzuje pole řetězce příchozího vloženého dokumentu.
Výraz
Pomocí tvůrce výrazů nastavte zdroj pro analýzu. To může být stejně jednoduché jako jen výběr zdrojového sloupce s daty, která chcete analyzovat, nebo můžete vytvořit složité výrazy pro analýzu.
Příklady výrazů
Zdrojová řetězcová data:
chrome|steel|plastic
- Výraz:
(desc1 as string, desc2 as string, desc3 as string)
- Výraz:
Zdrojová data JSON:
{"ts":1409318650332,"userId":"309","sessionId":1879,"page":"NextSong","auth":"Logged In","method":"PUT","status":200,"level":"free","itemInSession":2,"registration":1384448}
- Výraz:
(level as string, registration as long)
- Výraz:
Zdrojová vnořená data JSON:
{"car" : {"model" : "camaro", "year" : 1989}, "color" : "white", "transmission" : "v8"}
- Výraz:
(car as (model as string, year as integer), color as string, transmission as string)
- Výraz:
Zdrojová data XML:
<Customers><Customer>122</Customer><CompanyName>Great Lakes Food Market</CompanyName></Customers>
- Výraz:
(Customers as (Customer as integer, CompanyName as string))
- Výraz:
Zdrojový KÓD XML s daty atributů:
<cars><car model="camaro"><year>1989</year></car></cars>
- Výraz:
(cars as (car as ({@model} as string, year as integer)))
- Výraz:
Poznámka: Pokud dojde k chybám extrahování atributů (tj. @model) ze složitého typu, je alternativním řešením převést komplexní typ na řetězec, odeberte symbol @ (tj. replace(toString(your_xml_string_parsed_column_name.cars.car),'@',') a pak použijte aktivitu transformace JSON parse.
Typ výstupního sloupce
Tady je místo, kde nakonfigurujete cílové výstupní schéma z analýzy, která se zapíše do jednoho sloupce. Nejjednodušší způsob, jak nastavit schéma pro výstup z analýzy, je vybrat tlačítko Zjistit typ v pravém horním rohu tvůrce výrazů. ADF se pokusí automaticky zjistit schéma z pole řetězce, které analyzujete a nastavíte ho ve výstupním výrazu.
V tomto příkladu jsme definovali parsování příchozího pole jsonString, což je prostý text, ale formátovaný jako struktura JSON. Analyzované výsledky uložíme jako JSON do nového sloupce s názvem json s tímto schématem:
(trade as boolean, customers as string[])
Zkontrolujte kartu kontroly a náhled dat a ověřte, že je výstup správně namapovaný.
Pomocí aktivity Odvozený sloupec extrahujte hierarchická data (tj. your_complex_column_name.car.model v poli výrazu).
Příklady
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
Skript toku dat
Syntaxe
Příklady
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
Související obsah
- Pomocí zploštěné transformace můžete převést řádky na sloupce.
- Transformace odvozeného sloupce slouží k transformaci řádků.