Munkamenetnapló egy Copy tevékenység

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!

A másolt fájlneveket naplózhatja egy Copy tevékenység. 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 egy Copy tevékenység 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 az Azure Data Factory (ADF) Copy tevékenység által másolt összes fájlnév lekérésére a munkamenetnapló engedélyezésével, az alábbi esetekben lesz hasznos:

  • 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 tevékenységeivel átmásolta a fájlokat az egyik tárolóból a másikba, a célhelyre másolt fájlok nem a forrástárból várhatók. A Copy tevékenység munkamenetnaplókban megtekintheti 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ó az 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 a folyamathoz, majd a Gépház lapon konfigurálja a naplózást és a különböző naplózási beállításokat. Shows how to configure logging for a Copy activity in the settings tab.

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.

Shows how to find the output of a Copy activity in ADF Studio.

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.

Shows the output of a Copy activity with logging enabled.

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/"
      }
    }
  }
}
Property Leírás Megengedett értékek Szükséges
enableCopyActivityLog 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
enableReliableLogging 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. Ha a Copy tevékenység engedélyezve van a megbízható naplózási móddal rendelkező fájlok másolása, az átviteli sebességre kell számítania, mivel minden másolt fájl esetében kettős írási műveletekre van szükség. 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 sikertelen volt. Ebben a forgatókönyvben néhány, a célhelyre másolt fájl nem lesz naplózva. Igaz
False (alapértelmezett)
Nem
logLocation Gépház A munkamenetnaplók tárolásának helyének megadására használható tulajdonságok csoportja. Nem
linkedServiceName Az Azure Blob Storage vagy az Azure Data Lake Storage Gen2 társított szolgáltatása a munkamenet-naplófájlok tárolásához. Egy társított szolgáltatás neve AzureBlobStorage vagy AzureBlobFS típusa, amely a naplófájlok tárolására használt példányra hivatkozik. Nem
ösvény 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

Kimenet egy Copy tevékenység

A másolási tevékenység teljes futtatása után 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" 
           } 
        }

Megjegyzés:

enableCopyActivityLog A tulajdonság beállításakor Enableda rendszer létrehozza a naplófájlok nevét.

A naplófájl sémája

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

Column Leírás
Timestamp Az időbélyeg, amikor az ADF beolvassa, írja vagy kihagyja az objektumot.
Szint Az elem naplószintje. Lehet "Figyelmeztetés" vagy "Információ".
OperationName Az ADF Copy tevékenység az egyes objektumok működési viselkedését. Lehet "FileRead", "FileWrite", "FileSkip" vagy "TabularRowSkip".
OperationItem A fájlnevek vagy 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. A fájl vagy sorok kihagyása is lehetséges.

Í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, hogy a 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ásol. Azt is láthatja, hogy a sample2.csv sikeresen át lett másolva a forrásból a céltárolóba.

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%'
  • Adja meg az adott időtartományba másolt fájllistát.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
  • Adjon meg egy adott fájlt a másolt idővel és metaadatokkal.
select * from SessionLogDemo where OperationItem='<file name>'
  • Adjon meg egy listát a fájlokról, és a metaadataikat egy időtartományba másolták.
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: