Sorátalakítás módosítása 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.

Tipp.

Az Alter Row átalakítás jelenleg nem támogatott a Dataflow Gen2-ben. A támogatott átalakítások és azok megfelelőinek listáját a Dataflow Gen2 útmutatójában találja az adatfolyam-felhasználók leképezéséhez.

Az Alter Row átalakítás használatával beállíthatja a sorok beszúrási, törlési, módosítási és felülírási szabályait. Egy-több feltételeket adhat hozzá kifejezésként. Ezeket a feltételeket prioritás szerinti sorrendben kell megadni, mivel minden sor az első egyező kifejezésnek megfelelő szabályzattal van megjelölve. Ezek a feltételek egy vagy több sor beszúrását, frissítését, törlését vagy feltöltését eredményezhetik. Az Alter Row mindkét DDL & DML-műveletet képes létrehozni az adatbázison.

Sorbeállítások módosítása

A sor módosítások csak adatbázisok, REST vagy Azure Cosmos DB célhelyeken működnek az adatfolyamban. A sorokhoz hozzárendelt műveletek (beszúrás, frissítés, törlés, upsert) nem fordulnak elő a hibakeresési munkamenetek során. Az adatbázistáblákon a sormódosítási szabályzatok végrehajtásához futtasson egy Adatfolyam végrehajtási tevékenységet egy folyamatban.

Feljegyzés

Az Alter Row átalakítás nem szükséges a natív CDC-forrásokat , például SQL Server vagy SAP-t használó adatrögzítési adatfolyamok módosításához. Ezekben az esetekben az ADF automatikusan észleli a sorjelölőt, így az Alter Row szabályzatok szükségtelenek.

Alapértelmezett sorházirend megadása

Hozzon létre egy Alter Row transzformációt, és adjon meg egy sorházirendet egy feltétellel true(). Minden olyan sor, amely nem egyezik meg a korábban definiált kifejezések egyikével sem, a megadott sorházirendhez lesz megjelölve. Alapértelmezés szerint minden olyan sor, amely nem egyezik a feltételes kifejezéssel, meg van jelölve.Insert

Sorházirend módosítása

Feljegyzés

Ha az összes sort egyetlen szabályzattal szeretné megjelölni, létrehozhat egy feltételt a házirendhez, és a feltételt a következőképpen true()adhatja meg.

Szabályzatok megtekintése az adatok előnézetében

Hibakeresési mód használatával megtekintheti az adatelőnézet panelen az alter sorszabályzatok eredményeit. Az alter row átalakítás adatelőnézete nem hoz létre DDL- vagy DML-műveleteket a célobjektumon.

Sorszabályzatok módosítása

Az egyes sor módosítási irányelvek ikonja mutatja, hogy történik-e beszúrási, frissítési, módosított vagy törölt művelet. A felső fejlécen látható, hogy az egyes szabályzatok hány sort érintenek az előzetes verzióban.

Sorszabályzatok módosításának engedélyezése az adatfogadóban

Az alter row policies működéséhez az adatfolyamnak egy adatbázisba vagy Azure Cosmos DB fogadóba kell írnia. A Beállítások lapján engedélyezze, hogy mely sorok módosítása legyen megengedett az adott célhoz.

Sorelnyelő módosítása

Az alapértelmezett viselkedés csak a beszúrások engedélyezése. Ha engedélyezni szeretné a frissítéseket, beszúrásokat vagy törléseket, jelölje be az adott feltételnek megfelelő jelölőnégyzetet a céleszközön. Ha a frissítések, a beszúrások vagy a törlések engedélyezve vannak, meg kell adnia, hogy a célban mely kulcsoszlopokkal történik az egyeztetés.

Feljegyzés

Ha a beszúrások, frissítések vagy upsertek módosítják a fogadóban lévő céltábla sémáját, az adatfolyam meghiúsul. Ha módosítani szeretné a célsémát az adatbázisban, válassza a Tábla újbóli létrehozása táblaműveletként lehetőséget. Ez elveti és újra létrehozza a táblát az új sémadefinícióval.

A fogadóátalakításhoz egyetlen kulcsra vagy kulcssorozatra van szükség a céladatbázis egyedi sorazonosításához. SQL-fogadók esetén állítsa be a kulcsokat a fogadó beállításai lapon. Azure Cosmos DB állítsa be a partíciókulcsot a beállítások között, és állítsa be a Azure Cosmos DB "ID" rendszermezőt is a fogadóleképezésben. A Azure Cosmos DB esetében kötelező megadni az "ID" rendszeroszlopot a frissítésekhez, upsertekhez és törlésekhez.

Egyesít és beilleszt vagy frissít az Azure SQL Database-ben és az Azure Synapse-ben.

Az Adatfolyamok támogatása az upsert beállítással egyesíti a Azure SQL Database és Azure Synapse adatbáziskészletet (adattárházat).

Azonban olyan helyzetekbe is belefuthat, amikor a céladatbázis-séma a kulcsoszlopok identitástulajdonságát használja. A szolgáltatás megköveteli, hogy azonosítsa a kulcsokat, amelyeket a sorértékekhez használ, hogy frissítéseket és beszúrásokat/frissítéseket hajtson végre. Ha azonban a céloszlop rendelkezik az identitástulajdonság-beállítással, és az upsert szabályzatot használja, a céladatbázis nem teszi lehetővé az oszlopba való írást. Akkor is előfordulhatnak hibák, ha egy elosztott tábla terjesztési oszlopához próbál csatlakozni.

Íme néhány mód, ahogyan ezt lehet orvosolni:

  1. Menjen a Sink átalakítási beállításokhoz, és állítsa be a "Kulcsoszlopok írásának kihagyása" opciót. Ez arra utasítja a szolgáltatást, hogy ne írja meg a leképezés kulcsértékeként kiválasztott oszlopot.

  2. Ha ez a kulcsoszlop nem az az oszlop, amely az identitásoszlopok problémáját okozza, akkor használhatja a Kimeneti transzformáció előfeldolgozó SQL-beállítását: SET IDENTITY_INSERT tbl_content ON. Ezután kapcsolja ki a feldolgozás utáni SQL-tulajdonsággal: SET IDENTITY_INSERT tbl_content OFF.

  3. Az identitás- és a terjesztési oszlopos eset esetében is átválthatja a logikát az Upsertről egy külön frissítési feltételre és egy külön beszúrási feltételre feltételes felosztásos átalakítással. Így beállíthatja a frissítési útvonal leképezését úgy, hogy figyelmen kívül hagyja a kulcsoszlop-leképezést.

Adatfolyamszkript

Szintaxis

<incomingStream>
    alterRow(
           insertIf(<condition>?),
           updateIf(<condition>?),
           deleteIf(<condition>?),
           upsertIf(<condition>?),
        ) ~> <alterRowTransformationName>

Példa

Az alábbi példa egy módosítósor-átalakítás, CleanData, amely egy bejövő adatfolyamot SpecifyUpsertConditions vesz igénybe, és három módosítósor-feltételt hoz létre. Az előző átalakítás során a rendszer kiszámít egy oszlopot alterRowCondition , amely meghatározza, hogy egy sor be van-e szúrva, frissítve vagy törölve az adatbázisban. Ha az oszlop értéke egy olyan karakterláncot tartalmaz, amely megfelel a sor módosítási szabálynak, akkor ahhoz a szabályhoz rendeli hozzá.

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

Példa sor módosítására

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

SpecifyUpsertConditions alterRow(insertIf(alterRowCondition == 'insert'),
	updateIf(alterRowCondition == 'update'),
	deleteIf(alterRowCondition == 'delete')) ~> AlterRow

Az Alter Row átalakítás után előfordulhat, hogy az adatokat egy célhely adattárába szeretné tölteni.