Freigeben über


Datenkonsistenzprüfung in der Kopieraktivität

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Wenn Sie Daten aus dem Quell- in den Zielspeicher verschieben, bietet die Copy-Aktivität eine Option, mit der Sie eine zusätzliche Datenkonsistenzprüfung durchführen können. Damit stellen Sie sicher, dass die Daten nicht nur erfolgreich aus dem Quell- in den Zielspeicher kopiert werden, sondern auch, dass überprüft wird, ob sie zwischen Quell- und Zielspeicher konsistent sind. Wenn während der Datenverschiebung inkonsistente Dateien gefunden werden, können Sie entweder die Kopieraktivität abbrechen oder auch noch die restlichen Dateien kopieren. Hierzu aktivieren Sie die Einstellung für Fehlertoleranz, damit inkonsistente Daten übersprungen werden. Die Namen der übersprungenen Dateien können Sie durch Aktivieren der Einstellung für das Sitzungsprotokoll in der Kopieraktivität abrufen. Weitere Informationen finden Sie im Sitzungsprotokoll in der Kopieraktivität.

Unterstützte Datenspeicher und Szenarien

  • Die Datenkonsistenzüberprüfung wird von allen Connectors außer FTP, SFTP, HTTP, Snowflake, Office 365 und Azure Databricks Delta Lake unterstützt.
  • Die Datenkonsistenzprüfung wird im Stagingkopierszenario nicht unterstützt.
  • Beim Kopieren von Binärdateien ist die Datenkonsistenzprüfung nur verfügbar, wenn in der Kopieraktivität das Verhalten „PreserveHierarchy“ festgelegt ist.
  • Wenn Sie mehrere Binärdateien in einer einzigen Kopieraktivität mit aktivierter Datenkonsistenzprüfung kopieren möchten, stehen Ihnen zwei Optionen zur Verfügung: Sie können entweder die Kopieraktivität abbrechen oder die restlichen Dateien weiter kopieren, indem Sie die Fehlertoleranzeinstellung so einrichten, dass inkonsistente Dateien übersprungen werden.
  • Beim Kopieren einer Tabelle in einer einzigen Kopieraktivität mit aktivierter Datenkonsistenzprüfung tritt bei der Kopieraktivität ein Fehler auf, wenn die Anzahl der aus der Quelle gelesenen Zeilen sich von der Anzahl der in das Ziel kopierten Zeilen plus der Anzahl der inkompatiblen und übersprungenen Zeilen unterscheidet.

Konfiguration

Das folgende Beispiel zeigt eine JSON-Definition, mit der die Datenkonsistenzprüfung in der Kopieraktivität aktiviert wird:

{
  "name":"CopyActivityDataConsistency",
  "type":"Copy",
  "typeProperties": { 
    "source": { 
        "type": "BinarySource", 
        "storeSettings": { 
            "type": "AzureDataLakeStoreReadSettings", 
            "recursive": true 
        } 
    }, 
    "sink": { 
        "type": "BinarySink", 
        "storeSettings": { 
            "type": "AzureDataLakeStoreWriteSettings" 
        } 
    }, 
    "validateDataConsistency": true, 
    "skipErrorFile": { 
        "dataInconsistency": true 
    }, 
    "logSettings": {
        "enableCopyActivityLog": true,
        "copyActivityLogSettings": {
            "logLevel": "Warning",
            "enableReliableLogging": false
        },
        "logLocationSettings": {
            "linkedServiceName": {
               "referenceName": "ADLSGen2",
               "type": "LinkedServiceReference"
            },
            "path": "sessionlog/"
        }
    }
} 
Eigenschaft BESCHREIBUNG Zulässige Werte Erforderlich
validateDataConsistency Wenn Sie diese Eigenschaft auf TRUE festlegen, prüft die Kopieraktivität beim Kopieren von Binärdateien die Dateigröße, das Datum der letzten Änderung und die MD5-Prüfsumme für jede aus dem Quell- in den Zielspeicher kopierte Binärdatei, um die Datenkonsistenz zwischen den beiden Speichern sicherzustellen. Beim Kopieren von Tabellendaten überprüft die Kopieraktivität nach Abschluss des Auftrags die Gesamtzeilenzahl, um sicherzustellen, dass die Gesamtanzahl der aus der Quelle gelesenen Zeilen mit der Anzahl der in das Ziel kopierten Zeilen plus der Anzahl der inkompatiblen und übersprungenen Zeilen übereinstimmt. Beachten Sie, dass die Kopierleistung durch Aktivieren dieser Option beeinträchtigt wird. True
False (Standard)
Nein
dataInconsistency Eines der Schlüssel-Wert-Paare in der skipErrorFile-Eigenschaftensammlung zur Bestimmung, ob Sie die inkonsistenten Dateien überspringen möchten.
– TRUE: Sie möchten den Rest kopieren, indem Sie inkonsistente Dateien überspringen.
– FALSE: Sie möchten die Kopieraktivität abbrechen, sobald inkonsistente Dateien gefunden wurden.
Beachten Sie, dass diese Eigenschaft nur gültig ist, wenn Sie Binärdateien kopieren und „validateDataConsistency“ auf TRUE festlegen.
True
False (Standard)
Nein
logSettings Eine Gruppe von Eigenschaften, die angegeben werden können, um das Sitzungsprotokoll zum Protokollieren übersprungener Dateien zu aktivieren. Nein
linkedServiceName 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
path 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

Hinweis

  • Beim Kopieren von Binärdateien aus oder in Azure-Blobs oder Azure Data Lake Storage Gen2 überprüft der Dienst unter Verwendung der Azure-Blob-API und der Azure Data Lake Storage Gen2-API die MD5-Prüfsumme auf Blockebene. Wenn ContentMD5 in Dateien im Azure-Blob oder in Azure Data Lake Storage Gen2 als Datenquelle vorhanden ist, führt der Dienst nach dem Lesen der Dateien auch eine Überprüfung der MD5-Prüfsumme auf Dateiebene durch. Nach dem Kopieren von Dateien in das Azure-Blob oder in Azure Data Lake Storage Gen2 als Datenziel schreibt der Dienst ContentMD5 in das Ziel. Diese Information kann in Downstreamanwendungen zur Überprüfung der Datenkonsistenz weiterverwendet werden.
  • Beim Kopieren von Binärdateien zwischen Speichern führt der Dienst eine Überprüfung der Dateigröße durch.

Überwachung

Ausgabe aus der Kopieraktivität

Nach Abschluss aller Kopieraktivitätsausführungen wird das Ergebnis der Datenkonsistenzprüfung aus der Ausgabe der jeweiligen Ausführung angezeigt:

"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" 
           } 
        }

Hier können Sie die Details der Datenkonsistenzprüfung aus der Eigenschaft „dataConsistencyVerification“ sehen.

Wert von VerificationResult:

  • Überprüft: Ihre kopierten Daten wurden auf Konsistenz zwischen Quell- und Zielspeicher überprüft.
  • NotVerified (NichtÜberprüft): Ihre kopierten Daten wurden nicht auf Konsistenz überprüft, weil Sie „validateDataConsistency“ in der Kopieraktivität nicht aktiviert haben.
  • Nicht unterstützt: Ihre kopierten Daten wurden nicht auf Konsistenz überprüft, weil die Datenkonsistenzprüfung bei diesem bestimmten Kopierpaar nicht unterstützt wird.

Wert von InconsistentData:

  • Found (Gefunden): Die Copy-Aktivität hat inkonsistente Daten gefunden.
  • Skipped (Übersprungen): Die Copy-Aktivität hat inkonsistente Daten gefunden und übersprungen.
  • None (Keine): Die Copy-Aktivität hat keine inkonsistenten Daten gefunden. Der Grund: Bei der Überprüfung wurde festgestellt, dass Ihre Daten zwischen Quell- und Zielspeicher konsistent sind, oder Sie haben „validateDataConsistency“ in der Kopieraktivität deaktiviert.

Sitzungsprotokoll aus der Kopieraktivität

Wenn Sie so konfigurieren, dass die inkonsistente Datei protokolliert wird, können Sie die Protokolldatei unter diesem Pfad finden: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. Die Protokolldateien sind die CSV-Dateien.

Das Schema einer Protokolldatei lautet wie folgt:

Column BESCHREIBUNG
Timestamp Der Zeitstempel, der angibt, wann der Dienst die inkonsistenten Dateien überspringt.
Ebene Die Protokollstufe dieses Elements. Sie lautet bei dem Element, mit dem das Überspringen der Datei angezeigt wird, „Warning“ (Warnung).
Vorgangsname Das Vorgangsverhalten der Copy-Aktivität für jede Datei. Es lautet „FileSkip“ zur Angabe der Datei, die übersprungen werden soll.
OperationItem Der Name der zu überspringenden Datei.
`Message` Weitere Informationen zu den Ursachen für das Überspringen von Dateien.

Das Beispiel für eine Protokolldatei lautet wie folgt:

Timestamp, Level, OperationName, OperationItem, Message
2020-02-26 06:22: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=,'." 

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. Weitere Details zu dem Grund, aus dem „sample1.csv“ inkonsistent wird: Die Datei wurde von anderen Anwendungen bei gleichzeitiger Ausführung der Copy-Aktivität geändert.

Weitere Informationen finden Sie in den anderen Artikeln zur Kopieraktivität: