Delta formátum az Azure Data Factoryben
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!
Ez a cikk bemutatja, hogyan másolhat adatokat az Azure Data Lake Store Gen2-ben vagy az Azure Blob Storage-ban tárolt delta lake-be és onnan a delta formátum használatával. Ez az összekötő beágyazott adatkészletként érhető el az adatfolyamok forrásként és fogadóként való leképezésében is.
Adatfolyam-tulajdonságok leképezése
Ez az összekötő beágyazott adatkészletként érhető el az adatfolyamok forrásként és fogadóként való leképezésében is.
Forrástulajdonságok
Az alábbi táblázat a deltaforrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrás beállításai lapon szerkesztheti.
Név | Leírás | Kötelező | Megengedett értékek | Adatfolyam-szkript tulajdonság |
---|---|---|---|---|
Formátum | A formátumnak delta |
igen | delta |
format |
Fájlrendszer | A delta-tó tárolója/fájlrendszere | igen | Sztring | fileSystem |
Mappa elérési útja | A delta-tó könyvtára | igen | Sztring | folderPath |
Tömörítés típusa | A deltatábla tömörítési típusa | nem | bzip2 gzip deflate ZipDeflate snappy lz4 |
compressionType |
Tömörítési szint | Adja meg, hogy a tömörítés a lehető leggyorsabban befejeződik-e, vagy az eredményül kapott fájl legyen optimálisan tömörítve. | compressedType megadása kötelező. |
Optimal vagy Fastest |
compressionLevel |
Időutazás | Adja meg, hogy lekérdezi-e egy deltatábla régebbi pillanatképét | nem | Lekérdezés időbélyeg szerint: Időbélyeg Lekérdezés verzió szerint: Egész szám |
timestampAsOf versionAsOf |
Nem található fájl engedélyezése | Ha igaz, nem jelenik meg hiba, ha nem található fájl | nem | true vagy false |
ignoreNoFilesFound |
Séma importálása
A Delta csak beágyazott adatkészletként érhető el, és alapértelmezés szerint nem rendelkezik társított sémával. Az oszlop metaadatainak lekéréséhez kattintson a Séma importálása gombra a Vetítés lapon. Így hivatkozhat a korpusz által megadott oszlopnevekre és adattípusokra. A séma importálásához az adatfolyam hibakeresési munkamenetének aktívnak kell lennie, és rendelkeznie kell egy meglévő CDM-entitásdefiníciós fájllal, amelyre mutatnia kell.
Példa delta forrásszkriptre
source(output(movieId as integer,
title as string,
releaseDate as date,
rated as boolean,
screenedOn as timestamp,
ticketPrice as decimal(10,2)
),
store: 'local',
format: 'delta',
versionAsOf: 0,
allowSchemaDrift: false,
folderPath: $tempPath + '/delta'
) ~> movies
Fogadó tulajdonságai
Az alábbi táblázat felsorolja a delta fogadó által támogatott tulajdonságokat. Ezeket a tulajdonságokat a Beállítások lapon szerkesztheti.
Név | Leírás | Kötelező | Megengedett értékek | Adatfolyam-szkript tulajdonság |
---|---|---|---|---|
Formátum | A formátumnak delta |
igen | delta |
format |
Fájlrendszer | A delta-tó tárolója/fájlrendszere | igen | Sztring | fileSystem |
Mappa elérési útja | A delta-tó könyvtára | igen | Sztring | folderPath |
Tömörítés típusa | A deltatábla tömörítési típusa | nem | bzip2 gzip deflate ZipDeflate snappy lz4 TarGZip tar |
compressionType |
Tömörítési szint | Adja meg, hogy a tömörítés a lehető leggyorsabban befejeződik-e, vagy az eredményül kapott fájl legyen optimálisan tömörítve. | compressedType megadása kötelező. |
Optimal vagy Fastest |
compressionLevel |
Vacuum | Törli a megadott időtartamnál régebbi fájlokat, amelyek már nem relevánsak az aktuális táblaverzióhoz. Ha 0 vagy annál kisebb értéket ad meg, a vákuumművelet nem lesz végrehajtva. | igen | Egész | vákuum |
Táblaművelet | Tájékoztatja az ADF-et, hogy mi legyen a cél Delta-táblával a fogadóban. Megtarthatja a meglévőt, és új sorokat fűzhet hozzá, felülírhatja a meglévő tábladefiníciót és -adatokat új metaadatokkal és adatokkal, vagy megtarthatja a meglévő táblastruktúrát, de először csonkíthatja az összes sort, majd beszúrhatja az új sorokat. | nem | Nincs, Truncate, Felülírás | deltaTruncate, overwrite |
Frissítési módszer | Ha a "Beszúrás engedélyezése" lehetőséget választja, vagy amikor új deltatáblába ír, a cél az összes bejövő sort megkapja a sorszabályzatoktól függetlenül. Ha az adatok más sorszabályzatok sorait tartalmazzák, azokat ki kell zárni egy korábbi szűrőátalakítással. Amikor az összes frissítési módszer ki van választva, a rendszer egyesítést hajt végre, ahol a sorok beszúrása/törlése/feltöltése/frissítése a sorszabályzatoknak megfelelően történik az előző Alter Row átalakítással. |
igen | true vagy false |
beszúrható törölhető upsertable frissíthető |
Optimalizált írás | A Spark-végrehajtók belső shuffle-jának optimalizálásával nagyobb átviteli sebességet érhet el az írási műveletekhez. Ennek eredményeképpen kevesebb partíció és fájl jelenhet meg, amelyek nagyobb méretűek | nem | true vagy false |
optimizedWrite: true |
Automatikus tömörítés | Miután az írási művelet befejeződött, a Spark automatikusan végrehajtja a parancsot az OPTIMIZE adatok újrarendezéséhez, ami szükség esetén több partíciót eredményez a jobb olvasási teljesítmény érdekében a jövőben |
nem | true vagy false |
automatikus kiegészítés: igaz |
Példa delta fogadószkriptre
A társított adatfolyam-szkript a következő:
moviesAltered sink(
input(movieId as integer,
title as string
),
mapColumn(
movieId,
title
),
insertable: true,
updateable: true,
deletable: true,
upsertable: false,
keys: ['movieId'],
store: 'local',
format: 'delta',
vacuum: 180,
folderPath: $tempPath + '/delta'
) ~> movieDB
Delta-fogadó partíciómetszettel
Ha a fenti Frissítési módszer (pl. update/upsert/delete) területen ezt a lehetőséget választja, korlátozhatja a vizsgált partíciók számát. Csak a feltételnek megfelelő partíciók lesznek lekérve a céltárolóból. Megadhatja azokat a rögzített értékkészleteket, amelyeket a partícióoszlopok igénybe vehetnek.
Delta sink script example with partition pruning
A mintaszkript az alábbiak szerint adható meg.
DerivedColumn1 sink(
input(movieId as integer,
title as string
),
allowSchemaDrift: true,
validateSchema: false,
format: 'delta',
container: 'deltaContainer',
folderPath: 'deltaPath',
mergeSchema: false,
autoCompact: false,
optimizedWrite: false,
vacuum: 0,
deletable:false,
insertable:true,
updateable:true,
upsertable:false,
keys:['movieId'],
pruneCondition:['part_col' -> ([5, 8])],
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> sink2
A Delta csak 2 partíciót olvas be, ahol az összes partíció helyett part_col == 5 és 8 a cél deltatárolóból. part_col egy oszlop, amellyel a cél deltaadatai particionálva lesznek. Nem kell szerepelnie a forrásadatokban.
Delta fogadóoptimalizálási lehetőségek
A Beállítások lapon további három lehetőséget talál a delta fogadó átalakításának optimalizálására.
Ha a séma egyesítése lehetőség engedélyezve van, a sémafejlődést teszi lehetővé, azaz a rendszer automatikusan hozzáadja a sémához azokat az oszlopokat, amelyek az aktuális bejövő adatfolyamban találhatók, de nem a cél Delta táblában. Ez a beállítás minden frissítési módszerben támogatott.
Ha az automatikus tömörítés engedélyezve van, az egyéni írás után az átalakítás ellenőrzi, hogy a fájlok tovább tömöríthetők-e, és egy gyors OPTIMALIZÁLó feladatot futtat (128 MB-os fájlmérettel 1 GB helyett), hogy tovább tömörítse a fájlokat olyan partíciókhoz, amelyeken a legtöbb kis fájl található. Az automatikus tömörítés segít nagy számú kis fájl kisebb méretű fájlokba való beszűkítésében. Az automatikus tömörítés csak akkor indul el, ha legalább 50 fájl van. A tömörítési művelet végrehajtása után létrehozza a tábla új verzióját, és egy új fájlt ír, amely több korábbi fájl adatait tartalmazza tömörített formában.
Ha az írás optimalizálása engedélyezve van, a fogadóátalakítás dinamikusan optimalizálja a partícióméreteket a tényleges adatok alapján úgy, hogy minden táblapartícióhoz 128 MB-os fájlt próbál kiírni. Ez hozzávetőleges méret, és az adathalmaz jellemzőitől függően változhat. Az optimalizált írások növelik az írások és az azt követő olvasások általános hatékonyságát. Úgy rendszerezi a partíciókat, hogy a későbbi olvasások teljesítménye javuljon.
Tipp.
Az optimalizált írási folyamat lelassítja az általános ETL-feladatot, mert a Fogadó kiadja a Spark Delta Lake Optimize parancsot az adatok feldolgozása után. Javasoljuk, hogy az optimalizált írást takarékosan használja. Ha például óránkénti adatfolyamattal rendelkezik, napi optimalizált írással hajthat végre egy adatfolyamot.
Ismert korlátozások
Ha delta fogadóba ír, van egy ismert korlátozás, amely miatt az írott sorok száma nem jelenik meg a monitorozási kimenetben.
Kapcsolódó tartalom
- Forrásátalakítás létrehozása a leképezési adatfolyamban.
- Fogadóátalakítás létrehozása a leképezési adatfolyamban.
- Hozzon létre egy módosítósor-átalakítást, amely a sorokat beszúrásként, frissítésként, upsertként vagy törlésként jelöli meg.