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


Átalakítás létezik 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 létező átalakítás egy sorszűrési átalakítás, amely ellenőrzi, hogy az adatok egy másik forrásban vagy streamben léteznek-e. A kimeneti adatfolyam tartalmazza a bal oldali adatfolyam összes olyan sorát, amely vagy létezik, vagy nem létezik a jobb oldali streamben. A létező átalakítás hasonló a következőhöz SQL WHERE EXISTS : és SQL WHERE NOT EXISTS.

Konfiguráció

  1. Válassza ki, hogy melyik adatfolyamot szeretné ellenőrizni a Jobb adatfolyam legördülő listában.
  2. Adja meg, hogy a létező vagy nem létező adatokat keresi-e a Létező típus beállításban.
  3. Adja meg, hogy egyéni kifejezésre van-e szüksége.
  4. Válassza ki, hogy mely kulcsoszlopokat szeretné hasonlítani a létező feltételekhez. Alapértelmezés szerint az adatfolyamok az egyes adatfolyamok egy oszlopa közötti egyenlőséget keresik. Ha egy számított érték alapján szeretne összehasonlítani, vigye az egérmutatót az oszlop legördülő listájára, és válassza a Számított oszlop lehetőséget.

Létező beállítások

Több létező feltétel

Ha több oszlopot szeretne összehasonlítani az egyes streamekből, adjon hozzá egy új létező feltételt egy meglévő sor melletti plusz ikonra kattintva. Minden további feltételhez egy "és" utasítás csatlakozik. Két oszlop összehasonlítása megegyezik a következő kifejezéssel:

source1@column1 == source2@column1 && source1@column2 == source2@column2

Egyéni kifejezés

Ha olyan szabad formátumú kifejezést szeretne létrehozni, amely nem "and" és "equals" operátorokat tartalmaz, jelölje ki az Egyéni kifejezés mezőt. Adjon meg egy egyéni kifejezést az adatfolyam-kifejezésszerkesztőn keresztül a kék mezőre kattintva.

Egyéni beállítások léteznek

Ha dinamikus mintázatokat hoz létre az adatfolyamokban az oszlopok "késői kötése" használatával sémaeltérésen keresztül, a byName() kifejezésfüggvény használatával használhatja a létező átalakítást az oszlopnevek kemény kódolása (azaz korai kötés) nélkül. Példa: toString(byName('ProductNumber','source1')) == toString(byName('ProductNumber','source2'))

Sugárzott optimalizálás

Szórt csatlakozás

Az illesztésekben, a keresésekben és a meglévő átalakításokban, ha egy vagy mindkét adatfolyam elfér a feldolgozó csomópont memóriájában, optimalizálhatja a teljesítményt az Broadcasting engedélyezésével. Alapértelmezés szerint a spark motor automatikusan eldönti, hogy az egyik oldalt közvetíti-e. Ha manuálisan szeretné kiválasztani, hogy melyik oldalt szeretné közvetíteni, válassza a Rögzített lehetőséget.

Nem ajánlott letiltani a közvetítést a Ki beállítással, kivéve, ha az illesztések időtúllépési hibákba ütköznek.

Adatfolyamszkript

Syntax

<leftStream>, <rightStream>
    exists(
        <conditionalExpression>,
        negate: { true | false },
        broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
    ) ~> <existsTransformationName>

Példa

Az alábbi példa egy bal és jobb oldali streamet NameNorm2 TypeConversionshasználó átalakításcheckForChanges. A létező feltétel az a kifejezésNameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region, amely igaz értéket ad vissza, ha az egyes streamek oszlopai és Region oszlopai EMPID megegyeznek. Ahogy a létezést ellenőrizzük, negate az hamis. Az optimalizálási lapon nem engedélyezünk műsorszórást, ezért broadcast van értéke 'none'.

A felhasználói felületen ez az átalakítás az alábbi képhez hasonlóan néz ki:

Létezik példa

Az átalakítás adatfolyam-szkriptje az alábbi kódrészletben található:

NameNorm2, TypeConversions
    exists(
        NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region,
	    negate:false,
	    broadcast: 'auto'
    ) ~> checkForChanges

Hasonló átalakítások a Keresés és a Csatlakozás.