Átalakítás kiválasztása 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.

A kijelölés átalakításával átnevezheti, elvetheti vagy átrendezheti az oszlopokat. Ez az átalakítás nem módosítja a soradatokat, hanem azt választja ki, hogy mely oszlopokat propagálja a rendszer az alsóbb rétegben.

A kiválasztási átalakítások során a felhasználók rögzített leképezéseket adhatnak meg, szabályalapú leképezést végezhetnek mintákkal, vagy engedélyezhetik az automatikus leképezést. A rögzített és a szabályalapú leképezések is használhatók ugyanazon a kiválasztási átalakításon belül. Ha egy oszlop nem egyezik a megadott leképezések egyikével, a rendszer elveti.

Rögzített leképezés

Ha a vetítésben kevesebb mint 50 oszlop van definiálva, az összes definiált oszlop alapértelmezés szerint rögzített leképezéssel rendelkezik. A rögzített leképezés egy definiált, bejövő oszlopot vesz fel, és pontos nevet képez le.

Fixed mapping

Megjegyzés:

Rögzített leképezéssel nem képezhet le vagy nevezhet át sodródott oszlopokat

Hierarchikus oszlopok leképezése

A rögzített leképezések a hierarchikus oszlopok almappáinak felső szintű oszlophoz való leképezéséhez használhatók. Ha definiált hierarchiával rendelkezik, az oszlop legördülő listájával jelöljön ki egy almappát. A kiválasztási átalakítás egy új oszlopot hoz létre az alhalmaz értékével és adattípusával.

hierarchical mapping

Szabályalapú leképezés

Ha egyszerre több oszlopot szeretne leképezni, vagy át szeretne haladni az elsodródott oszlopokon, szabályalapú leképezéssel oszlopminták használatával határozhatja meg a leképezéseket. Egyezés a name, type, streamés position az oszlopok alapján. A rögzített és szabályalapú leképezések bármilyen kombinációjával rendelkezhet. Alapértelmezés szerint az 50 oszlopnál nagyobb vetítések alapértelmezés szerint szabályalapú leképezésre kerülnek, amelyek minden oszlopon megegyeznek, és a bemeneti nevet adja ki.

Szabályalapú leképezés hozzáadásához kattintson a Leképezés hozzáadása elemre, és válassza a Szabályalapú megfeleltetés lehetőséget.

Screenshot shows Rule-based mapping selected from Add mapping.

Minden szabályalapú megfeleltetéshez két bemenet szükséges: az a feltétel, amely alapján egyezni kell, és hogy mit nevezze el az egyes megfeleltetett oszlopoknak. Mindkét érték bevitele a kifejezésszerkesztőn keresztül van megadva. A bal oldali kifejezésmezőbe írja be a logikai egyezés feltételét. A jobb oldali kifejezésmezőben adja meg, hogy a megfeleltetett oszlop mire lesz megfeleltetve.

Screenshot shows a mapping.

Szintaxissal $$ hivatkozhat egy egyeztetett oszlop bemeneti nevére. Ha például a fenti képet használja, tegyük fel, hogy egy felhasználó az összes olyan sztringoszlopon egyezni szeretne, amelynek a neve hat karakternél rövidebb. Ha egy bejövő oszlop neve el lett nevezve test, a kifejezés $$ + '_short' átnevezi az oszlopot test_short. Ha ez az egyetlen leképezés, a rendszer minden olyan oszlopot elvet a kimeneti adatokból, amelyek nem felelnek meg a feltételnek.

A minták egyeznek a sodródott és a definiált oszlopokkal is. Ha látni szeretné, hogy mely definiált oszlopokat képezi le egy szabály, kattintson a szabály melletti szemüveg ikonra. Ellenőrizze a kimenetet az adatelőnézet használatával.

Regex-leképezés

Ha a lefelé mutató sáv ikonra kattint, megadhatja a regex-leképezési feltételt. A regex-leképezési feltétel megegyezik az összes olyan oszlopnévvel, amely megfelel a megadott regex feltételnek. Ez standard szabályalapú leképezésekkel kombinálva használható.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

A fenti példa egyezik a regex mintával (r) vagy az r kisbetűs oszlopnévvel. A normál szabályalapú leképezéshez hasonlóan az összes egyező oszlopot a jobb oldali állapot szintaxissal $$ módosítja.

Ha több regex egyezést is tartalmaz az oszlopnévben, az adott egyezésekre $n hivatkozhat az "n" kifejezéssel. A $2 például egy oszlopnév második egyezésére utal.

Szabályalapú hierarchiák

Ha a definiált kivetítés hierarchiával rendelkezik, szabályalapú leképezéssel megfeleltetheti a hierarchiák almappáit. Adjon meg egy megfelelő feltételt és azt az összetett oszlopot, amelynek almappáit le szeretné képezni. A rendszer minden egyező almappát a jobb oldalon megadott "Név mint" szabály alapján ad ki.

Screenshot shows a rule-based mapping using for a hierarchy.

A fenti példa az összetett oszlop aösszes almappáján megegyezik. a két almappát b és c. A kimeneti séma két oszlopot b fog tartalmazni, és c mivel a "Név mint" feltétel az $$.

Paraméterezése

Az oszlopneveket szabályalapú leképezéssel paraméterezheti. Használja a kulcsszót name a bejövő oszlopnevek paraméterrel való egyeztetéséhez. Ha például rendelkezik adatfolyam-paraméterrelmycolumn, létrehozhat egy olyan szabályt, amely megegyezik minden olyan oszlopnévvel, amely egyenlő.mycolumn A egyeztetett oszlopot átnevezheti egy kemény kóddal rendelkező sztringre, például "üzleti kulcsra", és explicit módon hivatkozhat rá. Ebben a példában az egyező feltétel, name == $mycolumn a névfeltétel pedig "üzleti kulcs".

Automatikus leképezés

Kijelölési átalakítás hozzáadásakor az automatikus leképezési csúszka váltásával engedélyezhető az automatikus leképezés . Az automatikus leképezéssel a kiválasztási átalakítás az összes bejövő oszlopot leképezi, az ismétlődések kivételével, ugyanazzal a névvel, mint a bemenetük. Ez magában foglalja az elsodródott oszlopokat, ami azt jelenti, hogy a kimeneti adatok olyan oszlopokat tartalmazhatnak, amelyek nincsenek definiálva a sémában. A sodródott oszlopokról további információt a sémaeltolódás című témakörben talál.

Auto mapping

Ha az automatikus leképezés be van kapcsolva, a kijelölési átalakítás tiszteletben tartja az ismétlődő beállítások kihagyását, és új aliast ad a meglévő oszlopokhoz. Az aliasolás akkor hasznos, ha több illesztést vagy keresést végez ugyanazon a streamen és öncsatlakozási forgatókönyvekben.

Duplikált oszlopok

Alapértelmezés szerint a kiválasztási átalakítás duplikált oszlopokat vet ki a bemeneti és kimeneti vetületben is. Az ismétlődő bemeneti oszlopok gyakran illesztési és keresési átalakításokból származnak, ahol az oszlopnevek duplikálva vannak az illesztés mindkét oldalán. Ismétlődő kimeneti oszlopok akkor fordulhatnak elő, ha két különböző bemeneti oszlopot képez le ugyanarra a névre. A jelölőnégyzet összevonásával megadhatja, hogy az ismétlődő oszlopokat szeretné-e elvetni vagy átadni.

Skip Duplicates

Oszlopok sorrendje

A leképezések sorrendje határozza meg a kimeneti oszlopok sorrendjét. Ha egy bemeneti oszlopot többször is leképeznek, csak az első megfeleltetés lesz betartva. Az ismétlődő oszlopok elvetése esetén az első egyezés megmarad.

Adatfolyamszkript

Syntax

<incomingStream>
    select(mapColumn(
        each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
        <fixedColumn>, ## fixed mapping, no rename
        <renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
        each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
        each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
    ),
    skipDuplicateMapInputs: { true | false },
    skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>

Példa

Az alábbiakban egy select mapping és annak adatfolyam-szkriptje látható:

Select script example

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • Miután a Kiválasztás funkcióval átnevezte, átrendezte és aliasoszlopokra változtatta az oszlopokat, a Fogadó átalakítással adattárba helyezheti az adatokat.