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


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.

Képernyőkép a partíciók metszési lehetőségeiről az ellenőrzés korlátozásához.

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.

  • 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.