Munkamenetnapló egy Másolási tevékenységben

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.

A másolt fájlneveket naplózhatja egy másolási tevékenység során vagy egy "Copy tevékenység" keretében. Ez segít biztosítani, hogy az adatok ne csak a forrásból a célhelyre másoljanak sikeresen, hanem a forrás és a cél közötti konzisztencia ellenőrzésében is.

Ha engedélyezi a hibatűrési beállítást a másolási tevékenységben a hibás adatok kihagyásához, a kihagyott fájlok és a kihagyott sorok is naplózhatók. A másolási tevékenység hibatűréséről további részleteket is megtudhat.

Mivel lehetősége van arra, hogy az Azure Data Factory (ADF) Copy tevékenység által másolt összes fájlnevet lekérje a munkamenetnapló engedélyezésével, az alábbi esetekben hasznos lehet:

  • Miután az ADF másolási tevékenységeivel átmásolta a fájlokat az egyik tárolóból a másikba, váratlan fájlokat talál a céltárolóban. A Copy tevékenység munkamenetnaplókban ellenőrizheti, hogy melyik tevékenység másolta ténylegesen a fájlokat, és mikor. Ezzel a módszerrel könnyen megtalálhatja a kiváltó okot, és kijavíthatja a konfigurációkat az ADF-ben.
  • Miután az ADF másolási műveleteivel átmásolta a fájlokat az egyik tárolóból a másikba, úgy találja, hogy a célhelyre másolt fájlok nem egyeznek a forrástárból várt fájlokkal. A Copy tevékenység munkamenetnaplókban lekérheti a másolási feladatok időbélyegét, valamint a fájlok metaadatait, amikor az ADF másolási tevékenységei olvassák őket a forrástárból. Ezzel a módszerrel ellenőrizheti, hogy a fájlokat más alkalmazások frissítették-e a forrástárban az ADF másolása után.

Konfiguráció a Azure Data Factory Studióval

A Copy tevékenység naplózás konfigurálásához először adjon hozzá egy Copy tevékenység-t az adatcsővezékhez, majd a Beállítások lapon konfigurálja a naplózást és annak különböző beállításait. Megmutatja, hogyan konfigurálható a naplózás egy másolási tevékenységhez a beállítások fülön.

A napló későbbi figyeléséhez ellenőrizheti a folyamatfuttatás kimenetét az ADF Studio Monitorozás lapján, a folyamatfuttatások alatt. Itt válassza ki a figyelni kívánt folyamatfuttatást, majd vigye az egérmutatót a Tevékenység neve melletti területre, ahol ikonok találhatók a folyamat bemenetét, kimenetét (ha elkészült) és egyéb részleteket mutató hivatkozásokra.

Bemutatja, hogyan találhatjuk meg a Copy tevékenység kimenetét az ADF Studio-ban.

A kimeneti ikonra kattintva megtekintheti a feladat naplózásának részleteit, és jegyezze fel a naplózás helyét a kijelölt tárfiókban, ahol az összes naplózott tevékenység részleteit láthatja.

Megjeleníti a másolási tevékenység kimenetét, amikor a naplózás engedélyezve van.

A napló kimeneti formátumának részleteit alább találja.

Konfiguráció jSON-nal

Az alábbi példa egy JSON-definíciót biztosít a munkamenetnapló másolási tevékenységben való engedélyezéséhez:

{
  "name": "CopyActivityLog",
  "type": "Copy",
  "typeProperties": {
    "source": {
      "type": "BinarySource",
      "storeSettings": {
        "type": "AzureDataLakeStoreReadSettings",
        "recursive": true
      },
      "formatSettings": {
        "type": "BinaryReadSettings"
      }
    },
    "sink": {
      "type": "BinarySink",
      "storeSettings": {
        "type": "AzureBlobFSWriteSettings"
      }
    },
    "skipErrorFile": {
      "fileForbidden": true,
      "dataInconsistency": true
    },
    "validateDataConsistency": true,
    "logSettings": {
      "enableCopyActivityLog": true,
      "copyActivityLogSettings": {
        "logLevel": "Warning",
        "enableReliableLogging": false
      },
      "logLocationSettings": {
        "linkedServiceName": {
          "referenceName": "ADLSGen2",
          "type": "LinkedServiceReference"
        },
        "path": "sessionlog/"
      }
    }
  }
}
Tulajdonság Leírás Megengedett értékek Kötelező
engedélyezzeAMásolásiTevékenységiNaplót Ha igaz értékre állítja, lehetősége lesz naplózni a másolt fájlokat, kihagyott fájlokat vagy kihagyott sorokat. Igaz
False (alapértelmezett)
Nem
logLevel Az "Információ" naplózza az összes másolt fájlt, kihagyott fájlt és kihagyott sort. A "Figyelmeztetés" csak a kihagyott fájlokat és a kihagyott sorokat naplózza. Információ
Figyelmeztetés (alapértelmezett)
Nem
Engedélyezze a Megbízható Naplózást Ha ez igaz, a megbízható módban lévő Copy tevékenység azonnal kiüríti a naplókat, miután az egyes fájlokat a célhelyre másolja. Amikor sok fájlt másol a Copy tevékenység engedélyezett megbízható naplózási móddal, számítani kell arra, hogy az átviteli sebesség csökken, mivel minden másolt fájl esetében duplikált írási műveletek szükségesek. Az egyik kérés a céltárolóba, egy másik pedig a naplótárolóba kerül. A Copy tevékenység a legjobb munkamennyiségű módban a naplók egy adott időszakon belül rekordköteggel lesznek kiürítve, és a másolási átviteli sebesség sokkal kevésbé lesz hatással. Ebben a módban a naplózás teljessége és idővonala nem garantált, mivel van néhány lehetőség arra, hogy a naplóesemények utolsó kötegét nem öblítették ki a naplófájlba, amikor egy Copy tevékenység meghiúsult. Ebben a forgatókönyvben néhány, a célhelyre másolt fájl nem lesz naplózva. Igaz
False (alapértelmezett)
Nem
logLocationSettings A munkamenetnaplók tárolásának helyének megadására használható tulajdonságok csoportja. Nem
KapcsoltSzolgáltatásNév A Azure Blob Storage vagy Azure Data Lake Storage Gen2 a munkamenet naplófájljainak tárolására. Az AzureBlobStorage vagy AzureBlobFS típusú társított szolgáltatások nevei, amelyek a naplófájlok tárolására használt példányra utalnak. Nem
elérési út A naplófájlok elérési útja. Adja meg a naplófájlokat tárolni kívánt elérési utat. Ha nem ad meg elérési utat, a szolgáltatás létrehoz egy tárolót. Nem

Figyelés

Egy másolási tevékenység kimenete

Miután a copy activity teljesen lefutott, az egyes Copy tevékenység-futtatások kimenetéből láthatja a naplófájlok elérési útját. A naplófájlok az elérési útról találhatók: https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. A létrehozott naplófájlok .txt kiterjesztéssel rendelkeznek, és az adataik CSV formátumban vannak.

"output": {
            "dataRead": 695,
            "dataWritten": 186,
            "filesRead": 3,  
            "filesWritten": 1, 
            "filesSkipped": 2, 
            "throughput": 297,
            "logFilePath": "myfolder/a84bf8d4-233f-4216-8cb5-45962831cd1b/",
            "dataConsistencyVerification": 
           { 
                "VerificationResult": "Verified", 
                "InconsistentData": "Skipped" 
           } 
        }

Feljegyzés

Amikor a enableCopyActivityLog tulajdonság be van állítva Enabled, a naplófájlok nevét a rendszer generálja.

A naplófájl sémája

Az alábbi táblázat egy naplófájl sémáját mutatja be.

Oszlop Leírás
Időbélyegző Az időbélyeg, amikor az ADF beolvassa, írja vagy kihagyja az objektumot.
Szint Az elem naplózási szintje. Lehet "Figyelmeztetés" vagy "Információ".
MűveletNeve Az ADF másolási tevékenység az egyes objektumok működési viselkedését vizsgálja. Lehet "FileRead", "FileWrite", "FileSkip" vagy "TabularRowSkip".
OperationItem A fájlnevek, vagy a kihagyott sorok
Üzenet További információ annak megjelenítéséhez, hogy a fájl beolvasva lett-e a forrástárból, vagy a céltárolóba lett-e írva. Az is lehet az oka, hogy a fájl vagy a sorok ki lettek hagyva.

Íme egy példa egy naplófájlra:

Timestamp, Level, OperationName, OperationItem, Message
2020-10-19 08:39:13.6688152,Info,FileRead,"sample1.csv","Start to read file: {""Path"":""sample1.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:39:56.3190846, Warning, FileSkip, "sample1.csv", "File is skipped after read 548000000 bytes: ErrorCode=DataConsistencySourceDataChanged,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Source file 'sample1.csv' is changed by other clients during the copy activity run.,Source=,'." 
2020-10-19 08:40:13.6688152,Info,FileRead,"sample2.csv","Start to read file: {""Path"":""sample2.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:40:13.9003981,Info,FileWrite,"sample2.csv","Start to write file from source file: sample2.csv."
2020-10-19 08:45:17.6508407,Info,FileRead,"sample2.csv","Complete reading file successfully. "
2020-10-19 08:45:28.7390083,Info,FileWrite,"sample2.csv","Complete writing file from source file: sample2.csv. File is successfully copied."

A fenti naplófájlból láthatja, sample1.csv ki lett hagyva, mert nem sikerült ellenőrizni, hogy konzisztens-e a forrás- és a céltároló között. A sample1.csv inkonzisztenssé válásának okairól további információt kaphat, mert más alkalmazások módosították, amikor az ADF Copy tevékenység egyidejűleg másolták. Azt is láthatja, hogy a sample2.csv-t sikeresen átmásolták a forrásból a célállomásra.

A naplófájlok további elemzéséhez több elemzőmotort is használhat. Az alábbiakban néhány példa található arra, hogy sql-lekérdezéssel elemezze a naplófájlt a csv-naplófájl sql-adatbázisba való importálásával, ahol a tábla neve SessionLogDemo lehet.

  • Adja meg a másolt fájllistát.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
  • Kérem adja meg az adott időtartományba másolt fájl-listát.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
  • Kérem, adjon meg egy meghatározott fájlt a másolás idejével és metaadataival.
select * from SessionLogDemo where OperationItem='<file name>'
  • Adjon meg egy listát a fájlokról és a metaadataikkal, amelyeket egy adott időtartományban másoltak.
select * from SessionLogDemo where OperationName='FileRead' and Message like 'Start to read%' and OperationItem in (select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%')
  • Adja meg a kihagyott fájllistát.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
  • Adja meg az okot, amiért egy adott fájl kimaradt.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
  • Adja meg a kihagyott fájlok listáját ugyanaz miatt: "a blobfájl nem létezik".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
  • Adja meg azokat a fájlneveket, amelyek másolásához a leghosszabb idő szükséges.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc

Lásd a másolási tevékenységről szóló további cikkeket: