Megosztás a következőn keresztül:


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

Vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Data Factory a Microsoft Fabric a Azure Data Factory következő generációja, egyszerűbb architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik az adatintegrációval, kezdje a Fabric Data Factoryvel. A meglévő ADF-számítási feladatok frissíthetők Fabric használatával, hogy elérjék az adatkutatás, a valós idejű elemzés és a jelentéskészítés új képességeit.

Az adatfolyamok Azure Data Factory folyamatokban és Azure Synapse Analytics folyamatokban is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem ismerkedik az átalakításokkal, tekintse meg az Adatok átalakítása leképezési adatfolyamokkal című bevezető cikket.

Miután befejezte az adatok átalakítását, írja be egy céltárolóba sink transzformációval. Minden adatfolyamhoz legalább egy fogadóátalakítás szükséges, de annyi fogadóba írhat, amennyi szükséges az átalakítási folyamat befejezéséhez. Ha további célpontokba szeretne írni, hozzon létre új adatfolyamokat új ágak és feltételes szétválások révén.

Minden fogadóátalakítás pontosan egy adathalmaz-objektumhoz vagy társított szolgáltatáshoz van társítva. A fogadó transzformációja határozza meg azoknak az adatoknak az alakját és helyét, amelyeket írni szeretne.

Beágyazott adatkészletek

Fogadóátalakítás létrehozásakor adja meg, hogy a fogadó adatai egy adathalmaz-objektumon belül vagy a fogadó átalakításán belül vannak-e definiálva. A legtöbb formátum csak az egyikben vagy a másikban érhető el. Ha tudni szeretné, hogyan használhat egy adott összekötőt, tekintse meg a megfelelő összekötő dokumentumot.

Ha a formátumok beágyazott és adathalmaz-objektumokban is támogatottak, mindkettőnek vannak előnyei. Az adathalmaz-objektumok olyan újrafelhasználható entitások, amelyek más adatfolyamokban és tevékenységekben, például a Másolásban is használhatók. Ezek az újrahasználható entitások különösen hasznosak, ha megerősített sémát használ. Az adathalmazok nem a Sparkban alapulnak. Időnként előfordulhat, hogy felül kell bírálnia bizonyos beállításokat vagy sémavetítést a fogadóátalakítás során.

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

Beágyazott adatkészlet használatához válassza ki a kívánt formátumot a Fogadó típusa választóban. Fogadóadatkészlet kiválasztása helyett válassza ki azt a társított szolgáltatást, amelyhez csatlakozni szeretne.

Képernyőkép, amelyen a Beágyazottra történő kiválasztás látható.

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

Ha adatfolyamokat használ Azure Synapse munkaterületeken, lehetősége lesz arra, hogy közvetlenül a Synapse-munkaterületen belüli adatbázistípusba süllyesztse az adatokat. Ez enyhíti a csatolt szolgáltatások vagy adathalmazok hozzáadásának szükségességét ezekhez az adatbázisokhoz. A Azure Synapse adatbázissablonok által létrehozott adatbázisok a Munkaterület-adatbázis kiválasztásakor is elérhetők.

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 dolgozhat

Képernyőkép a kijelölt munkaterület-adatbázisról.

Támogatott fogadótípusok

Az adatok térképezése az adatok kinyerési, betöltési és átalakítási (ELT) megközelítését követi, és az összes előfeldolgozási adatkészlettel működik, amely az Azure-ban található. Jelenleg a következő adathalmazok használhatók fogadóátalakításban.

Tipp.

A fogadó formátuma eltérhet a forrás formátumától. Ez az egyik lépés az egyik formátumról a másikra való áttéréshez. Például CSV-fájlból Parquet-fogadóba. Lehetséges, hogy néhány átalakítást kell végrehajtania az adatfolyamban a forrás és a cél között, hogy ez megfelelően működjön. (Például a Parquet pontosabb fejléckövetelményekkel rendelkezik, mint a CSV.)

Összekötő Formátum Adatkészlet/beágyazott
Azure Blob-tároló Avro
Tagolt szöveg
Delta
JSON
ORK
Parketta
✓/✓
✓/✓
-/✓
✓/✓
✓/✓
✓/✓
Azure Cosmos DB a NoSQL-hoz ✓/-
Azure Data Lake Storage Gen1 Avro
Tagolt szöveg
JSON
ORK
Parketta
✓/-
✓/-
✓/-
✓/✓
✓/-
Azure Data Lake Storage Gen2 Avro
Közös Adatmodell
Tagolt szöveg
Delta
JSON
ORK
Parketta
✓/✓
-/✓
✓/✓
-/✓
✓/✓
✓/✓
✓/✓
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
Tagolt szöveg
JSON
ORK
Parketta
✓/✓
✓/✓
✓/✓
✓/✓
✓/✓
Snowflake ✓/✓
SQL Server ✓/✓

Az összekötőkre vonatkozó beállítások a Beállítások lapon találhatók. A beállításokra vonatkozó információk és adatfolyam-szkriptek 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 más forrásokba szeretne adatokat írni, töltse be az adatokat egy támogatott célhelyre a Másolási művelet használatával.

Fogadó beállításai

Miután hozzáadott egy kimenetet, konfigurálja azt a Kimenet lapon. Itt kiválaszthatja vagy létrehozhatja azt az adathalmazt, amelybe a kimenet ír. Az adathalmaz-paraméterek fejlesztési értékei a hibakeresési beállításokban konfigurálhatók. (A hibakeresési módot be kell kapcsolni.)

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

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

Sémaeltolódás: A sémaeltolódás az a képesség, hogy a szolgáltatás natív módon kezelje az adatfolyamok rugalmas sémáit anélkül, hogy explicit módon kellene meghatároznia az oszlopmódosításokat. Engedélyezze a sémaeltolódás engedélyezését, hogy további oszlopokat írjon a fogadó adatsémában meghatározottak fölé.

Séma érvényesítése: Ha a séma érvényesítése be van kapcsolva, az adatfolyam hibát jelez, ha bármelyik oszlop a célvetítésben nem található meg a cél tárolóban, vagy ha az adattípusok nem egyeznek. Ezzel a beállítással kényszerítheti, hogy a fogadóséma megfeleljen a meghatározott vetület szerződésének. Adatbázis-fogadó forgatókönyvekben hasznos, ha jelzi, 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 sokszor hivatkozhat ezekre az adatokra a gyorsítótár-keresés segítségével ugyanazon az adatfolyamon belül. Ez akkor hasznos, ha egy kifejezés részeként szeretne adatokra hivatkozni, de nem szeretné explicit módon összekapcsolni az oszlopokat. Gyakori példák, amelyekben a gyorsítótár-fogadó segíthet egy adattár maximális értékének keresésében, valamint a hibakódok egy hibaüzenet-adatbázishoz való egyeztetésében.

Ha egy gyorsítótár-fogadóba szeretne írni, vegyen fel egy fogadóátalakítást, és válassza a Gyorsítótárat fogadótípusként. A többi mosogatótípustól eltérően nem kell adathalmazt vagy társított szolgáltatást választania, mivel nem ír külső tárolóba.

Gyorsítótár végpont kiválasztása

A fogadó beállításaiban opcionálisan megadhatja a gyorsítótár-fogadó kulcsoszlopait. Ezek egyező feltételekként használatosak a lookup() függvény gyorsítótár-keresésben való használatakor. Ha kulcsoszlopokat ad meg, nem használhatja a függvényt a outputs() gyorsítótár-keresésben. A gyorsítótár keresési szintaxisával kapcsolatos további információkért lásd a gyorsítótárazott kereséseket.

Gyorsítótár kimeneti kulcsoszlopok

Ha például megadok egyetlen kulcsoszlopot a column1-ben egy gyorsítótár-fogadónál, a cacheExample hívása egy paraméterrel jelöli meg, hogy a gyorsítótár-fogadó melyik sorával egyezzen meg. A függvény egyetlen összetett oszlopot ad ki az egyes leképezett oszlopokhoz tartozó aloszlopokkal.

Megjegyzés

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

Írás a tevékenység kimenetébe
A gyorsítótár-fogadó opcionálisan megírhatja az adatait a Data Flow tevékenység kimenetére, amely aztán a folyamat egy másik tevékenységének bemeneteként használható. Ez lehetővé teszi az adatok gyors és egyszerű átadását az adatfolyam-tevékenységből anélkül, hogy az adatokat egy adattárban kellene tárolnia.

Vegye figyelembe, hogy a Data Flow kimenete, amely közvetlenül a csővezetékébe kerül, legfeljebb 2 MB lehet. Így Data Flow megpróbál annyi sort hozzáadni a kimenethez, amennyit csak tud, miközben a 2 MB-os korláton belül marad, ezért előfordulhat, hogy nem minden sor jelenik meg a tevékenység kimenetében. Az "Első sor csak" beállításával Data Flow tevékenységszinten is korlátozhatja a Data Flow adatkimenetét, ha szükséges.

Frissítési módszer

Adatbázis-fogadótípusok esetén a Beállítások lap egy "Frissítési módszer" tulajdonságot tartalmaz. Az alapértelmezett a beszúrás, de jelölőnégyzet lehetőségek tartoznak még a frissítéshez, upserthez és törléshez is. A további lehetőségek kihasználásához hozzá kell adnia egy Alter Row-átalakítást a fogadó előtt. Az Alter Row segítségével meghatározhatja az egyes adatbázisműveletek feltételeit. Ha a forrás natív CDC-kompatibilis forrás, akkor a frissítési módszereket alter Row nélkül is beállíthatja, mivel az ADF már ismeri a beszúrás, frissítés, frissítés és törlés sorjelölőit.

Mezőleképezés

A kiválasztási átalakításhoz hasonlóan a Leképezés fülön eldöntheti, hogy mely bejövő oszlopok lesznek írva. Alapértelmezés szerint az összes bemeneti oszlop, beleértve az elsodródott oszlopokat is, megfeleltetve van. Ezt a viselkedést automappingnak nevezzük.

Ha kikapcsolja az automatikus leképezést, rögzített oszlopalapú leképezéseket vagy szabályalapú leképezéseket is hozzáadhat. Szabályalapú leképezésekkel mintaegyeztetésű kifejezéseket írhat. Rögzített leképezési térképek logikai és fizikai oszlopneveket térképeznek. További információ a szabályalapú leképezésről: Oszlopminták a leképezési adatfolyamban.

Mosogatók egyéni sorrendbe rendezése

Alapértelmezés szerint az adatok nem meghatározott sorrendben több fogadóba lesznek írva. A végrehajtó motor párhuzamosan írja az adatokat az átalakítási logika befejeztével, és a kimeneti sorrend minden egyes futtatáskor eltérő lehet. Ha pontos fogadó sorrendet szeretne megadni, engedélyezze az egyéni fogadó sorrendet az Általános lap adatfolyamában. Ha engedélyezve van, a kimenetek növekvő sorrendben, egymás után íródnak.

Képernyőkép, amely az egyéni kialakítású kimenet sorrendjét mutatja.

Megjegyzés

Gyorsítótárazott keresések használatakor győződjön meg arról, hogy a fogadók sorrendjében a gyorsítótárazott fogadók értéke be van állítva 1-re, ami a legalacsonyabb (vagy első) a sorrendben.

Fogadók egyéni sorrendbe rendezése

Fogadócsoportok

A fogadókat csoportosíthatja úgy, hogy ugyanazt a rendelésszámot alkalmazza a fogadók sorozatára. A szolgáltatás ezeket a "sink"-eket olyan csoportokként kezeli, amelyek párhuzamosan végrehajthatók. A párhuzamos végrehajtás lehetőségei megjelennek a folyamat adatfolyam-tevékenységében.

Hibák

A fogadó hibák lapján konfigurálhatja a hibasorkezelést az adatbázis-illesztőprogramok hibáinak és a hibás állításoknak a rögzítéséhez és átirányításához.

Adatbázisokba való íráskor bizonyos adatsorok meghiúsulhatnak a cél által beállított korlátozások miatt. Alapértelmezés szerint az adatfolyam-futtatás az első hibánál meghiúsul. Bizonyos összekötőkben választhatja a Hiba esetén folytatás lehetőséget, amely lehetővé teszi, hogy az adatfolyam akkor is befejeződjön, ha az egyes sorok hibásak. Ez a funkció jelenleg csak Azure SQL Database és Azure Synapse érhető el. További információért lásd az hiba sor kezelése az Azure SQL DB-ben.

Az alábbiakban egy oktatóvideó ismerteti, hogyan használhatja automatikusan az adatbázis hibasorkezelését a fogadóátalakítás során.

Az érvényesítési hibák soraihoz használhatja az Igény transzformációt az adatfolyamban, majd átirányíthatja a hibás állításokat egy kimeneti fájlba a fogadó hibáinak lapján. Itt arra is lehetősége van, hogy figyelmen kívül hagyja a helyességi hibákkal rendelkező sorokat, és egyáltalán ne adja ki ezeket a sorokat a fogadó céladattárában.

Hibasorok érvényesítése

Adatelőnézet a fogadóban

Ha hibakeresési módban történik az adatok előnézetének lekérése, nem íródik adat a célhelyre. Egy pillanatképet kap arról, hogyan néznek ki az adatok, de semmi sem kerül írásra a célhelyre. Az adatok fogadóba való írásának teszteléséhez futtasson egy folyamatkeresést a folyamatvászonról.

Adatfolyamszkript

Példa

Az alábbiakban egy példa látható a fogadó átalakítására és az 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

Most, hogy létrehozta az adatfolyamot, vegyen fel egy adatfolyam-tevékenységet a folyamatba.