Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Azure Data Factory
Azure Synapse Analytics
Tipp
Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.
Sie können die kopierten Dateinamen in einem Copy-Aktivität protokollieren. Dadurch kann nicht nur sichergestellt werden, dass Daten erfolgreich von der Quelle an das Ziel kopiert werden, sondern auch die Konsistenz zwischen Quelle und Ziel überprüft werden.
Wenn Sie die Fehlertoleranzeinstellung in einer Copy-Aktivität aktivieren, um fehlerhafte Daten zu überspringen, können auch die übersprungenen Dateien und übersprungenen Zeilen protokolliert werden. Weitere Informationen finden Sie unter Fehlertoleranz der Kopieraktivität.
Wenn Sie die Möglichkeit haben, alle Dateinamen abzurufen, die von Azure Data Factory (ADF) Copy-Aktivität über das Aktivieren des Sitzungsprotokolls kopiert wurden, ist es hilfreich für Sie in den folgenden Szenarien:
- Nachdem Sie die Dateien mithilfe von ADF-Copy-Aktivitäten von einem Speicher in einen anderen Speicher kopiert haben, befinden sich einige unerwartete Dateien im Zielspeicher. Sie können die Copy-Aktivität Sitzungsprotokolle überprüfen, um zu sehen, welche Aktivität die Dateien tatsächlich kopiert hat, und wann. Dadurch können Sie mühelos die Grundursache ermitteln und Ihre Konfigurationen in ADF korrigieren.
- Nachdem Sie die Dateien mithilfe von ADF-Copy-Aktivitäten von einem Speicher in einen anderen Speicher kopiert haben, stellen Sie fest, dass es sich bei den kopierten Dateien am Ziel nicht um erwartete Dateien aus dem Quellspeicher handelt. Sie können die Copy-Aktivität Sitzungsprotokolle überprüfen, um den Zeitstempel von Kopieraufträgen sowie die Metadaten von Dateien abzurufen, wenn ADF-Kopieraktivitäten sie aus dem Quellspeicher lesen. Dadurch können Sie überprüfen, ob die Dateien von anderen Anwendungen im Quellspeicher aktualisiert wurden, nachdem sie von ADF kopiert wurden.
Konfiguration mit dem Azure Data Factory Studio
Um die Protokollierung der Kopieraktivität zu konfigurieren, fügen Sie zuerst eine Kopieraktivität zu Ihrer Pipeline hinzu und verwenden Sie dann die Registerkarte "Einstellungen", um die Protokollierung und verschiedene Protokollierungsoptionen zu konfigurieren.
Für die anschließende Überwachung des Protokolls können Sie die Ausgabe einer Pipelineausführung auf der Registerkarte „Überwachung“ von ADF Studio unter „Pipelineausführungen“ überprüfen. Wählen Sie dort die zu überwachende Pipelineausführung aus, und zeigen Sie dann auf den Bereich neben dem Aktivitätsnamen. Dort finden Sie Symbole für Links zum Anzeigen der Pipelineeingabe, der Ausgabe (nach Abschluss) und anderer Details.
Wählen Sie das Ausgabesymbol
aus, um Details zur Protokollierung für den Auftrag anzuzeigen, und beachten Sie den Protokollspeicherort im ausgewählten Speicherkonto. Dort finden Sie Details zu allen protokollierten Aktivitäten.
Details zum Protokollausgabeformat finden Sie weiter unten.
Konfiguration mit JSON
Das folgende Beispiel zeigt eine JSON-Definition, mit der das Sitzungsprotokoll in der Kopieraktivität aktiviert wird:
{
"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/"
}
}
}
}
| Eigenschaft | BESCHREIBUNG | Zulässige Werte | Erforderlich |
|---|---|---|---|
| enableCopyActivityLog | Wenn diese Eigenschaft auf „true“ festgelegt wird, haben Sie die Möglichkeit, kopierte Dateien, übersprungene Dateien oder übersprungene Zeilen zu protokollieren. | Wahr Falsch (Standard) |
Nein |
| logLevel | Mit „Info“ werden alle kopierten Dateien, übersprungenen Dateien und übersprungenen Zeilen protokolliert. Mit „Warning“ werden nur übersprungene Dateien und übersprungene Zeilen protokolliert. | Info Warnung (Standardeinstellung) |
Nein |
| AktiviereZuverlässigesProtokollieren | Wenn dies der Fall ist, löscht ein Copy-Aktivität im zuverlässigen Modus die Protokolle sofort, sobald jede Datei an das Ziel kopiert wird. Beim Kopieren vieler Dateien mit aktivierter zuverlässiger Protokollierungsmodus im Copy-Aktivität sollten Sie davon ausgehen, dass der Durchsatz beeinträchtigt wird, da für jede kopierte Datei doppelte Schreibvorgänge erforderlich sind. Eine Anforderung wird an den Zielspeicher und eine weitere Anforderung an den Protokollspeicher gesendet. Bei einer Copy-Aktivität im Modus für beste Leistung werden Protokolle mit einem Batch von Datensätzen innerhalb eines bestimmten Zeitraums geleert, was den Kopierdurchsatz wesentlich weniger beeinträchtigt. Die Vollständigkeit und Rechtzeitigkeit der Protokollierung sind in diesem Modus nicht garantiert, da es einige Möglichkeiten besteht, dass der letzte Batch von Protokollereignissen nicht in die Protokolldatei geleert wurde, wenn eine Kopieraktivität fehlgeschlagen ist. In diesem Szenario werden einige Dateien, die in das Ziel kopiert wurden, nicht protokolliert. | Wahr Falsch (Standard) |
Nein |
| Protokollierung der Standort-Einstellungen | Eine Gruppe von Eigenschaften, mit denen der Speicherort für die Sitzungsprotokolle angegeben werden kann. | Nein | |
| verknüpfterDienstname | Der verknüpfte Dienst von Azure Blob Storage oder Azure Data Lake Storage Gen2 zum Speichern der Sitzungsprotokolldateien. | Die Namen eines verknüpften Diensts vom Typ AzureBlobStorage oder AzureBlobFS, der auf die Instanz verweist, in der Sie die Protokolldateien speichern. |
Nein |
| Pfad | Der Pfad der Protokolldateien. | Geben Sie den Pfad an, in dem die Protokolldateien gespeichert werden sollen. Wenn Sie keinen Pfad angeben, erstellt der Dienst automatisch einen Container. | Nein |
Überwachung
Ausgabe einer Copy-Aktivität
Nachdem der Kopiervorgang komplett abgeschlossen ist, können Sie den Pfad der Protokolldateien in der Ausgabe jedes Kopiervorgangs sehen. Sie finden die Protokolldateien im Pfad https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. Die generierten Protokolldateien verfügen über die Erweiterung TXT, und ihre Daten weisen das CSV-Format auf.
"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"
}
}
Hinweis
Wenn die Eigenschaft enableCopyActivityLog auf Enabled festgelegt ist, werden die Protokolldateinamen vom System generiert.
Schema der Protokolldatei
Die folgende Tabelle zeigt das Schema einer Protokolldatei:
| Spalte | BESCHREIBUNG |
|---|---|
| Timestamp | Der Zeitstempel, wenn ADF das Objekt liest, schreibt oder überspringt. |
| Ebene | Die Protokollstufe dieses Elements. Mögliche Optionen sind „Warnung“ und „Info“. |
| Vorgangsname | Das Vorgangsverhalten der ADF-Copy-Aktivität für jedes Objekt. Mögliche Optionen sind „FileRead“, „FileWrite“, „FileSkip“ und „TabularRowSkip“. |
| OperationItem | Die Dateinamen und die übersprungenen Zeilen. |
| Nachricht | Weitere Informationen zur Angabe, ob die Datei aus dem Quellspeicher gelesen oder in den Zielspeicher geschrieben wurde. Es kann auch der Grund angegeben sein, warum die Datei oder die Zeilen übersprungen wurden. |
Hier sehen Sie ein Beispiel für eine Protokolldatei:
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."
In der vorstehenden Protokolldatei können Sie sehen, dass die Datei „sample1.csv“ übersprungen wurde, weil die Konsistenz zwischen Quell- und Zielspeicher nicht überprüft werden konnte. Sie können weitere Details darüber erhalten, warum sample1.csv inkonsistent wird: Der Grund ist, dass es von anderen Anwendungen geändert wird, während die ADF Copy-Aktivität gleichzeitig eine Kopie macht. Sie können auch sehen, dass „sample2.csv“ erfolgreich aus dem Quell- in den Zielspeicher kopiert wurde.
Zur weiteren Analyse der Protokolldateien können Sie mehrere Analyse-Engines verwenden. Nachfolgend sehen Sie einige Beispiele für die Verwendung von SQL-Abfragen zum Analysieren der Protokolldatei. Hierbei wird eine CSV-Protokolldatei in SQL-Datenbank importiert, wobei der Tabellenname „SessionLogDemo“ lauten kann.
- Gib mir die Liste der kopierten Dateien.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
- Gib mir die Liste der kopierten Dateien innerhalb eines bestimmten Zeitraums.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
- Gib mir eine bestimmte Datei mit ihrer Kopierzeit und Metadaten.
select * from SessionLogDemo where OperationItem='<file name>'
- Geben Sie mir eine Liste von Dateien mit ihren Metadaten, die innerhalb eines Zeitraums kopiert wurden.
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%')
- Gib mir die Liste der übersprungenen Dateien.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
- Gib mir den Grund an, warum eine bestimmte Datei übersprungen wurde.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
- Gib mir die Liste der Dateien, die aus dem gleichen Grund übersprungen wurden: „Blob-Datei existiert nicht“.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
- Gib mir den Dateinamen, der am längsten zum Kopieren benötigt.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc
Zugehöriger Inhalt
Weitere Informationen finden Sie in den anderen Artikeln zur Kopieraktivität:
- Übersicht über die Kopieraktivität
- Fehlertoleranz der Kopiervorgänge
- Datenskonsistenz der Kopieraktivität