Sdílet prostřednictvím


Transformace jímky při mapování toku dat

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Návod

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Toky dat jsou k dispozici v kanálech Azure Data Factory i v kanálech Azure Synapse Analytics. 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í toků dat.

Po dokončení transformace dat je pomocí transformace jímky zapište do cílového úložiště. Každý tok dat vyžaduje alespoň jednu transformaci jímky, ale k dokončení toku transformace můžete zapisovat do tolika jímek, kolik je potřeba. Pokud chcete zapisovat do dalších jímek, vytvořte nové datové proudy prostřednictvím nových větví a podmíněných rozdělení.

Každá transformace jímky je přidružená přesně k jednomu objektu datové sady nebo propojené službě. Transformace jímky určuje tvar a umístění dat, do které chcete zapisovat.

Vložené datové sady

Při vytváření transformace jímky zvolte, zda jsou informace o jímce definovány uvnitř objektu datové sady nebo v rámci transformace jímky. Většina formátů je k dispozici pouze v jednom nebo druhém. Informace o použití konkrétního konektoru najdete v příslušném dokumentu konektoru.

Pokud je formát podporován pro vložený i v objektu datové sady, existují výhody obou. Objekty datové sady jsou opakovaně použitelné entity, které je možné použít v jiných tocích dat a aktivitách, jako je kopírování. Tyto opakovaně použitelné entity jsou zvlášť užitečné, když používáte posílené schéma. Datové sady nejsou založené na Sparku. V některých případech může být potřeba přepsat určitá nastavení nebo projekce schématu v transformaci jímky.

Vložené datové sady se doporučují, když používáte flexibilní schémata, jednorázové instance jímky nebo parametrizované jímky. Pokud je jímka silně parametrizovaná, vložené datové sady umožňují nevytvořit "fiktivní" objekt. Vložené datové sady jsou založené na Sparku a jejich vlastnosti jsou nativní pro tok dat.

Pokud chcete použít vloženou datovou sadu, vyberte požadovaný formát v selektoru typu jímky. Místo výběru datové sady jímky vyberte propojenou službu, ke které se chcete připojit.

Snímek obrazovky znázorňující vybrané řádkově

Databáze pracovního prostoru (pouze pracovní prostory Synapse)

Pokud používáte toky dat v pracovních prostorech Azure Synapse, máte možnost přesměrovat data přímo do databáze typu, který se nachází ve vašem pracovním prostoru Synapse. To zmírní nutnost přidat propojené služby nebo datové sady pro tyto databáze. Databáze vytvořené prostřednictvím šablon databáze Azure Synapse jsou přístupné také při výběru databáze pracovního prostoru.

Poznámka:

Konektor Azure Synapse Workspace DB je aktuálně v režimu Public Preview a nyní může pracovat pouze s databázemi Spark Lake.

Snímek obrazovky znázorňující vybranou databázi pracovního prostoru

Podporované typy jímky

Mapování toku dat se řídí přístupem k extrahování, načítání a transformaci (ELT) a pracuje s pracovními datovými sadami, které jsou všechny v Azure. V současné době je možné v transformaci jímky použít následující datové sady.

Návod

Váš dřez může mít jiný formát než váš zdroj. Toto je jeden z kroků, jak můžete transformovat z jednoho formátu do druhého. Například z CSV do umyvadla na parkety. Možná budete muset provést některé transformace v toku dat mezi zdrojem a jímkou, aby to fungovalo správně. (Například Parquet má specifičtější požadavky na záhlaví než CSV.)

Konektor Formát Datová sada/podporující inline форматování
Azure Blob Storage Avro
Text s oddělovači
Delta
JSON
ORC
Parkety
✓/✓
✓/✓
-/✓
✓/✓
✓/✓
✓/✓
Azure Cosmos DB pro NoSQL ✓/-
Azure Data Lake Storage Gen1 Avro
Text s oddělovači
JSON
ORC
Parkety
✓/-
✓/-
✓/-
✓/✓
✓/-
Azure Data Lake Storage Gen2 Avro
Obecný datový model
Text s oddělovači
Delta
JSON
ORC
Parkety
✓/✓
-/✓
✓/✓
-/✓
✓/✓
✓/✓
✓/✓
Azure Database for MySQL ✓/✓
Azure Database for PostgreSQL ✓/✓
Azure Data Explorer ✓/✓
Azure SQL Database ✓/✓
Azure SQL Managed Instance ✓/-
Azure Synapse Analytics ✓/-
Dataverse ✓/✓
Dynamics 365 ✓/✓
Dynamics CRM ✓/✓
Fabric Lakehouse ✓/✓
SFTP Avro
Text s oddělovači
JSON
ORC
Parkety
✓/✓
✓/✓
✓/✓
✓/✓
✓/✓
Bledule ✓/✓
SQL Server ✓/✓

Nastavení specifická pro tyto konektory se nacházejí na kartě Nastavení . Příklady skriptů toku informací a toku dat v těchto nastaveních najdete v dokumentaci ke konektoru.

Služba má přístup k více než 90 nativním konektorům. Pokud chcete zapisovat data do těchto dalších zdrojů z toku dat, použijte aktivitu kopírování k načtení těchto dat z podporované jímky.

Nastavení jímky

Po přidání jímky nakonfigurujte na kartě Jímka . Tady můžete vybrat nebo vytvořit datovou sadu, do které se vaše jímka zapisuje. Vývojové hodnoty pro parametry datové sady lze konfigurovat v nastavení ladění. (Režim ladění musí být zapnutý.)

Následující video vysvětluje řadu různých možností jímky pro typy souborů s oddělovači textu.

Snímek obrazovky s nastavením jímky

Posun schématu: Posun schématu je schopnost služby nativně zpracovávat flexibilní schémata ve vašich tocích dat, aniž by bylo nutné explicitně definovat změny sloupců. Povolení posunu schématu umožňuje přidávat další sloupce k tomu, co je definováno ve schématu cílových dat.

Ověřit schéma: Pokud je vybráno ověření schématu, tok dat selže, pokud v cílovém úložišti není nalezen některý sloupec z cílové projekce nebo pokud datové typy neodpovídají. Pomocí tohoto nastavení vynucujte, aby schéma jímky splňovalo kontrakt definované projekce. Je užitečné ve scénářích jímky databáze signalizovat, že se změnily názvy nebo typy sloupců.

Příjemce mezipaměti

Ukládání do mezipaměti nastává, když tok dat zapisuje data do mezipaměti Sparku místo do úložiště dat. Při mapování toků dat můžete na tato data v rámci stejného toku odkazovat mnohokrát pomocí vyhledávání v mezipaměti. To je užitečné, když chcete odkazovat na data jako součást výrazu, ale nechcete k nim explicitně spojit sloupce. Běžné příklady, kde může cache systém pomoci, zahrnují vyhledání maximální hodnoty v datovém úložišti a přiřazování chybových kódů k databázi chybových zpráv.

Pokud chcete zapisovat do jímky mezipaměti, přidejte transformaci jímky a jako typ jímky vyberte Mezipaměť . Na rozdíl od jiných typů jímky nemusíte vybírat datovou sadu nebo propojenou službu, protože nepíšete do externího úložiště.

Výběr úložiště mezipaměti

V nastavení jímky můžete volitelně zadat klíčové sloupce jímky mezipaměti. Tyto podmínky se používají jako odpovídající podmínky při použití lookup() funkce ve vyhledávání mezipaměti. Pokud zadáte klíčové sloupce, nemůžete funkci outputs() použít ve vyhledávání mezipaměti. Další informace o syntaxi vyhledávání mezipaměti najdete v tématu vyhledávání v mezipaměti.

Klíčové sloupce mezipaměti

Pokud například zadám jediný klíčový sloupec column1 v úložišti mezipaměti nazvaném cacheExample, volání cacheExample#lookup() by mělo jeden parametr určující, který řádek v úložišti mezipaměti se má shodovat. Funkce vypíše jeden složitý sloupec s dílčími sloupci pro každý namapovaný sloupec.

Poznámka:

Jímka mezipaměti musí být v zcela nezávislém datovém proudu z jakékoli transformace odkazující na ni prostřednictvím vyhledávání mezipaměti. Jímka mezipaměti musí být také první zapsanou jímkou.

Zapisovat do výstupu aktivity
Jímka mezipaměti může volitelně zapisovat data do výstupu aktivity Data Flow, která se pak dá použít jako vstup do jiné aktivity v kanálu. To vám umožní rychle a snadno předávat data z aktivity toku dat, aniž byste je museli uchovávat v úložišti dat.

Všimněte si, že výstup z Data Flow, který se vloží přímo do kanálu, je omezený na 2 MB. Proto se Data Flow pokusí přidat do výstupu tolik řádků, kolik může při zachování limitu 2 MB, a proto se někdy nemusí zobrazit všechny řádky ve výstupu aktivity. Nastavení "Pouze první řádek" na úrovni aktivity Data Flow také pomáhá omezit výstup dat z Data Flow, pokud je to nutné.

Metoda aktualizace

Pro typy jímky databáze bude karta Nastavení obsahovat vlastnost "Metoda aktualizace". Výchozí hodnota je vložení, ale obsahuje také možnosti zaškrtávacího políčka pro aktualizaci, upsert a odstranění. Pokud chcete tyto další možnosti využít, musíte před jímku přidat transformaci alter row. Příkaz Alter Row vám umožní definovat podmínky pro jednotlivé akce databáze. Pokud je zdrojem nativní zdroj CDC, můžete nastavit metody aktualizace bez příkazu Alter Row, protože ADF již zná značky řádků pro vložení, aktualizaci, upsert a odstranění.

Mapování polí

Podobně jako u vybrané transformace můžete na kartě Mapování jímky rozhodnout, které příchozí sloupce se zapíšou. Ve výchozím nastavení se mapují všechny vstupní sloupce, včetně posunovaných sloupců. Toto chování se označuje jako automatické mapování.

Když automatické mapování vypnete, můžete přidat buď pevná mapování založená na sloupcích, nebo mapování založená na pravidlech. Pomocí mapování založených na pravidlech můžete psát výrazy s porovnáváním vzorů. Pevné mapování mapuje logické a fyzické názvy sloupců. Další informace o mapování založeném na pravidlech najdete v tématu Vzory sloupců v mapování toku dat.

Vlastní řazení jímek

Ve výchozím nastavení se data zapisují do více jímek v nedeterministickém pořadí. Prováděcí modul zapisuje data paralelně při dokončení logiky transformace a řazení jímky se může lišit při každém spuštění. Pokud chcete zadat přesné řazení jímky, povolte vlastní řazení jímky na kartě Obecné toku dat. Pokud je tato možnost povolená, zapisují se jímky postupně v rostoucím pořadí.

Snímek obrazovky znázorňující řazení vlastních jímek

Poznámka:

Při použití vyhledávání z mezipaměti se ujistěte, že pořadí jímek má na prvním místě nastavené mezipaměťové jímky s hodnotou 1, jako nejnižší nebo první v pořadí.

Vlastní řazení jímek

Skupiny jímek

Jímky můžete seskupit tak, že pro řadu jímek použijete stejné pořadové číslo. Služba bude tyto jímky považovat za skupiny, které se můžou spouštět paralelně. Možnosti paralelního spouštění se zobrazí v aktivitě toku dat kanálu.

Chyby

Na kartě chyb přídavného zařízení můžete nakonfigurovat zpracování chybových řádků pro zachycení a přesměrování výstupu pro chyby ovladače databáze a neúspěšná tvrzení.

Při zápisu do databází můžou některé řádky dat selhat kvůli omezením nastaveným cílem. Ve výchozím nastavení selže spuštění toku dat při první chybě, na kterou narazí. V některých konektorech se můžete rozhodnout pokračovat v případě chyby, což umožňuje tok dat dokončit i v případě, že jednotlivé řádky obsahují chyby. V současné době je tato funkce dostupná jenom v Azure SQL Database a Azure Synapse. Další informace najdete v tématu chyba zpracování řádků v Azure SQL DB.

Níže je videokurz o tom, jak ve výstupní transformaci automaticky používat zpracování chyb řádků v databázi.

Pro řádky s chybami v ověření můžete použít transformaci Assert ve vyšším toku vašich dat a pak přesměrovat neúspěšná ověření do výstupního souboru zde na kartě chyb cílového úložiště. Také máte možnost ignorovat řádky s chybami kontrolních podmínek a tyto řádky vůbec nevypisovat do cílového úložiště dat.

Řádky chybové deklarace

Náhled dat v jímce

Při načítání náhledu dat v režimu ladění se do jímky nebudou zapisovat žádná data. Náhled toho, jak vypadají data, bude vrácen, ale nic se nezapíše do cílového umístění. Pokud chcete otestovat zápis dat do jímky, spusťte ladění kanálu z plátna kanálu.

Skript toku dat

Příklad

Níže je příklad transformace jímky a skriptu toku dat:

sink(input(
		movie as integer,
		title as string,
		genres as string,
		year as integer,
		Rating as integer
	),
	allowSchemaDrift: true,
	validateSchema: false,
	deletable:false,
	insertable:false,
	updateable:true,
	upsertable:false,
	keys:['movie'],
	format: 'table',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true,
	saveOrder: 1,
	errorHandlingOption: 'stopOnFirstError') ~> sink1

Teď, když jste vytvořili tok dat, přidejte aktivitu toku dat do vašeho kanálu.