Fogadó-átalakítás a leképezési adatfolyamban

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Az adatfolyamok a Azure Data Factory és Azure Synapse is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem használja az átalakításokat, tekintse meg az Adatok átalakítása leképezési adatfolyam használatával bevezető cikket.

Miután befejezte az adatok átalakítását, írja őket egy céltárolóba a fogadóátalakítás használatával. Minden adatfolyamhoz legalább egy fogadóátalakítás szükséges, de annyi fogadóba írhat, amennyire csak szüksége van az átalakítási folyamat befejezéséhez. További fogadókba való íráshoz hozzon létre új streameket új ágak és feltételes felosztások segítségével.

Minden fogadóátalakítás pontosan egy adatkészlet-objektumhoz vagy társított szolgáltatáshoz van társítva. A fogadóátalakítás határozza meg az adatok alakját és helyét, amelyekbe írni szeretne.

Beágyazott adatkészletek

Fogadó-átalakítás létrehozásakor adja meg, hogy a fogadó információi egy adatkészlet-objektumban vagy a fogadó-átalakításban vannak-e definiálva. A legtöbb formátum csak az egyikben vagy a másikban érhető el. Egy adott összekötő használatának elsajátítása érdekében tekintse meg a megfelelő összekötő-dokumentumot.

Ha egy formátum beágyazott és adatkészlet-objektumban is támogatott, mindkettőnek vannak előnyei. Az adatkészlet-objektumok olyan újrahasználható entitások, amelyek más adatfolyamokhoz és tevékenységekhez, például a Másoláshoz használhatók. Ezek az újrahasználható entitások különösen hasznosak, ha egy megsokkolt sémát használ. Az adatkészletek nem a Sparkban alapulnak. Esetenként előfordulhat, hogy felül kell bírálni bizonyos beállításokat vagy séma-leképezéseket a fogadóátalakításban.

Beágyazott adatkészletek használata rugalmas sémák, egyszeres fogadópéldányok vagy paraméteres fogadók használata esetén ajánlott. Ha a fogadó nagymértékben paraméterezett, a beágyazott adatkészletek lehetővé teszik, hogy ne hozzon létre "dummy" objektumot. A beágyazott adatkészletek a Sparkban alapulnak, és tulajdonságaik natívak az adatfolyamban.

Beágyazott adatkészlethez válassza ki a kívánt formátumot a Fogadótípus-választóban. Fogadó adatkészlet kiválasztása helyett válassza ki azt a csatolt szolgáltatást, amelyhez csatlakozni szeretne.

Képernyőkép a kijelölt Beágyazott elemről.

Munkaterület-adatbázis (csak Synapse-munkaterületek)

Ha adatfolyamokat használ Azure Synapse munkaterületeken, egy további lehetőség is rendelkezésre áll, hogy az adatokat közvetlenül a Synapse-munkaterületen belüli adatbázistípusba fogadódjon. Ez enyhíti a csatolt szolgáltatások vagy adatkészletek hozzáadásának szükségét az adatbázisokhoz.

Megjegyzés

A Azure Synapse Workspace DB-összekötő jelenleg nyilvános előzetes verzióban érhető el, és jelenleg csak Spark Lake-adatbázisokkal használható

Képernyőkép a kiválasztott munkaterület-adatbázisról.

Támogatott fogadótípusok

Az adatfolyam-leképezés egy kinyerési, betöltési és átalakítási (ELT) megközelítést követ, és olyan átmeneti adatkészletekkel működik, amelyek mind az Azure-ban vannak. Jelenleg a következő adatkészletek használhatók forrásátalakításhoz.

Összekötő Formátum Adatkészlet/beágyazott
Azure Blob Storage Avro
Tagolt szöveg
Delta
JSON
ORK
Parquet
✓/-
✓/-
-/✓
✓/-
✓/✓
✓/-
Azure Cosmos DB (SQL API) ✓/-
1. generációs Azure Data Lake Storage Avro
Tagolt szöveg
JSON
ORK
Parquet
✓/-
✓/-
✓/-
✓/✓
✓/-
Azure Data Lake Storage Gen2 Avro
Common Data Service
Tagolt szöveg
Delta
JSON
ORK
Parquet
✓/-
-/✓
✓/-
-/✓
✓/-
✓/✓
✓/-
Azure Database for MySQL ✓/✓
Azure Database for PostgreSQL ✓/✓
Azure Data Explorer ✓/✓
Azure SQL Database ✓/✓
Felügyelt Azure SQL-példány ✓/-
Azure Synapse Analytics ✓/-
Snowflake ✓/✓
SQL Server ✓/✓

Gépház összekötőkre vonatkozó információk a Gépház lapon találhatók. Az ezekkel a beállításokkal kapcsolatos információ- és adatfolyam-példaszkekkel kapcsolatos példák az összekötő dokumentációjában találhatók.

A szolgáltatás több mint 90 natív összekötőhöz rendelkezik hozzáféréssel. Ha az adatfolyamból adatokat akar írni más forrásokba, a másolási tevékenységgel töltse be az adatokat egy támogatott fogadóból.

Fogadóbeállítások

Miután hozzáadott egy fogadót, konfigurálja azt a Fogadó lapon. Itt választhatja ki vagy hozhatja létre azt az adatkészletet, amelybe a fogadó ír. Az adatkészlet-paraméterek fejlesztési értékei a Hibakeresési beállításokban konfigurálhatóak. (A hibakeresési módot be kell kapcsolva.)

Az alábbi videó számos különböző fogadóbeállításokat tartalmaz a szöveggel tagolt fájltípusokhoz.

Képernyőkép a Fogadó beállításairól.

Séma eltérése: A séma eltérése azt a képességet adja meg, hogy a szolgáltatás natív módon kezelje az adatfolyamok rugalmas sémáit anélkül, hogy explicit módon meg kellene határoznia az oszlop módosításait. Engedélyezze a séma eltérésének engedélyezése további oszlopok írását a fogadó adatsémában meghatározottak alapján.

Séma ellenőrzése:Ha séma érvényesítése van kiválasztva, az adatfolyam sikertelen lesz, ha a fogadó leképezés egyik oszlopa sem található a fogadótárolóban, vagy ha az adattípusok nem egyeznek. Ezzel a beállítással kényszeríthető, hogy a fogadó séma megfeleljen a megadott leképezés szerződésének. Az adatbázis-fogadó forgatókönyvekben hasznos lehet jelezni, hogy az oszlopnevek vagy -típusok megváltoztak.

Gyorsítótár-fogadó

A gyorsítótár-fogadó az, amikor egy adatfolyam adattár helyett adatokat ír a Spark-gyorsítótárba. Az adatfolyamok leképezése során többször hivatkozhat ezekre az adatokra ugyanazon a folyamaton belül egy gyorsítótár-kereséssel. Ez akkor hasznos, ha az adatokra egy kifejezés részeként szeretne hivatkozni, de nem szeretné explicit módon illesztni az oszlopokat. Gyakori példák, amelyekben a gyorsítótár-fogadók segíthetnek az adattárak maximális értékének és a hibaüzenetek adatbázisának megfelelő hibakódok kihelyezésében.

A gyorsítótár-fogadóba való íráshoz adjon hozzá egy fogadóátalakítást, és válassza a Gyorsítótár lehetőséget fogadótípusként. A többi fogadótípustól eltérően nem kell adatkészletet vagy csatolt szolgáltatást választania, mert nem külső tárolóba ír.

Gyorsítótár-fogadó kiválasztása

A fogadóbeállításokban megadhatja a gyorsítótár-fogadó kulcsoszlopait. Ezek a függvény gyorsítótár-keresésben való használata esetén egyeztetési lookup() feltételekként használhatók. Ha kulcsoszlopokat ad meg, a függvény nem használható outputs() gyorsítótár-keresésben. A gyorsítótár-keresési szintaxissal kapcsolatos további információkért lásd: gyorsítótárazott keresések.

Gyorsítótár-fogadókulcs oszlopai

Ha például a egyetlen kulcsoszlopát adja meg egy nevű gyorsítótár-fogadóban, a hívásának egyetlen paramétere határozza meg, hogy a gyorsítótár-fogadó melyik column1cacheExamplecacheExample#lookup() sorának egyeznie kell. A függvény egyetlen összetett oszlopot ad vissza, minden leképezett oszlophoz aloszlopokkal.

Megjegyzés

A gyorsítótár-fogadónak teljesen független adatfolyamban kell lennie minden olyan átalakításból, amely gyorsítótár-keresésen keresztül hivatkozik rá. A gyorsítótár-fogadónak is az első megírt fogadónak kell lennie.

Írás a tevékenység kimenetbe A gyorsítótárazott fogadó opcionálisan kiírhatja a kimeneti adatokat a következő folyamattevékenység bemenetére. Ez lehetővé teszi, hogy gyorsan és egyszerűen adja át az adatokat az adatfolyam-tevékenységből anélkül, hogy az adatokat egy adattárban kellene tárolnia.

Mezőleképezés

A select átalakításhoz hasonlóan a fogadó Leképezés lapján eldöntheti, hogy mely bejövő oszlopokat írja a rendszer. Alapértelmezés szerint a rendszer minden bemeneti oszlopot leképez, beleértve a sodródott oszlopokat is. Ezt a viselkedést automatikus leképezésnek nevezik.

Az automatikus leképezés kikapcsolásakor rögzített oszlopalapú vagy szabályalapú leképezéseket adhat hozzá. Szabályalapú leképezésekkel mintaegyeztetéssel írhat kifejezéseket. Kijavítva a leképezés logikai és fizikai oszlopneveket leképez. További információ a szabályalapú leképezésről: Oszlopminták az adatfolyam leképezésében.

Egyéni fogadórendezés

Alapértelmezés szerint az adatok nemdeterminisztikus sorrendben vannak több fogadóba írva. A végrehajtómotor párhuzamosan írja az adatokat az átalakítási logika befejezésekor, és a fogadó sorrendje minden egyes futtatásnál eltérő lehet. Pontos fogadórendezés megadásához engedélyezze az Egyéni fogadórendezést az adatfolyam Általános lapján. Ha engedélyezve van, a fogadók egymás után, növekvő sorrendben vannak megírva.

Képernyőkép az Egyéni fogadórendezésről.

Megjegyzés

Gyorsítótárazott keresések használatakor győződjön meg arról, hogy a fogadórendezés gyorsítótárazott fogadói 1-re, a legalacsonyabbra (vagy elsőre) vannak állítva a sorrendben.

Egyéni fogadórendezés

Fogadócsoportok

A fogadókat csoportosíthatja úgy, hogy ugyanazt a rendelésszámot alkalmazza több fogadóra. A szolgáltatás ezeket a fogadókat párhuzamosan végrehajtható csoportokként kezeli. A párhuzamos végrehajtás lehetőségei a folyamat adatfolyam-tevékenységében fognak felszínre ásni.

Hibát tartalmazó sorok kezelése

Adatbázisokba való íráskor bizonyos adatsorok meghiúsulhatnak a célhely által beállított korlátozások miatt. Alapértelmezés szerint az adatfolyam-futtatás az első hibán sikertelen lesz. Bizonyos összekötőkben választhatja a Folytatás hiba esetén lehetőséget, amely akkor is lehetővé teszi az adatfolyam befejezését, ha az egyes sorok hibásak. Ez a képesség jelenleg csak a Azure SQL Database és Azure Synapse. További információ: Hibasorok kezelése az Azure SQL DB-ben.

Az alábbi videó oktatóanyag azt mutatja be, hogyan használhatók az adatbázis-hibasorok automatikus kezelése a fogadóátalakításban.

Adatelőnézet a fogadóban

Az adatelőnézet hibakeresési módban való beolvasásakor a rendszer nem ír adatokat a fogadóba. A rendszer pillanatképet ad vissza az adatokról, de semmit nem ír a célhelyre. Az adatok fogadóba való írásának teszteléséhez futtatassa a folyamat hibakeresését a folyamatvásznon.

Adatfolyamszkript

Példa

Az alábbiakban egy példa látható egy fogadó-átalakításra és annak adatfolyam-szkriptre:

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

Következő lépések

Most, hogy létrehozta az adatfolyamot, adjon hozzá egy adatfolyam-tevékenységet a folyamathoz.