Sdílet prostřednictvím


Ověření konzistence dat v aktivitě kopírování

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Při přesunu dat ze zdroje do cílového úložiště poskytuje aktivita kopírování možnost dalšího ověření konzistence dat, aby se zajistilo, že se data nejen úspěšně zkopírují ze zdroje do cílového úložiště, ale také ověří, že jsou konzistentní mezi zdrojovým a cílovým úložištěm. Po nalezení nekonzistentních souborů během přesunu dat můžete buď přerušit aktivitu kopírování, nebo pokračovat ve kopírování zbytku tím, že povolíte nastavení odolnosti proti chybám a přeskočí nekonzistentní soubory. Přeskočené názvy souborů můžete získat povolením nastavení protokolu relace v aktivitě kopírování. Další podrobnosti najdete v protokolu relace v aktivitě kopírování.

Podporovaná úložiště dat a scénáře

  • Ověření konzistence dat podporuje všechny konektory kromě FTP, SFTP, HTTP, Snowflake, Office 365 a Azure Databricks Delta Lake.
  • Ověření konzistence dat se v přípravném scénáři kopírování nepodporuje.
  • Při kopírování binárních souborů je ověření konzistence dat k dispozici pouze v případě, že chování PreserveHierarchy je nastaveno v aktivitě kopírování.
  • Při kopírování více binárních souborů v aktivitě s jednou kopií s povoleným ověřením konzistence dat máte možnost buď přerušit aktivitu kopírování, nebo pokračovat ve kopírování zbytku tím, že povolíte nastavení odolnosti proti chybám, aby se přeskočí nekonzistentní soubory.
  • Při kopírování tabulky v aktivitě s jednou kopírováním s povoleným ověřením konzistence dat se aktivita kopírování nezdaří, pokud se počet řádků přečtených ze zdroje liší od počtu řádků zkopírovaných do cíle a počtu nekompatibilních řádků, které byly vynechány.

Konfigurace

Následující příklad obsahuje definici JSON, která umožňuje ověření konzistence dat v aktivitě kopírování:

{
  "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/"
        }
    }
} 
Vlastnost Popis Povolené hodnoty Požaduje se
validateDataConsistency Pokud pro tuto vlastnost nastavíte true, při kopírování binárních souborů aktivita kopírování zkontroluje velikost souboru, lastModifiedDate a MD5 kontrolní součet pro každý binární soubor zkopírovaný ze zdroje do cílového úložiště, aby se zajistila konzistence dat mezi zdrojovým a cílovým úložištěm. Při kopírování tabulkových dat aktivita kopírování zkontroluje celkový počet řádků po dokončení úlohy a zajistí, aby celkový počet řádků přečtených ze zdroje byl stejný jako počet řádků zkopírovaných do cíle a počet nekompatibilních řádků, které byly vynechány. Mějte na paměti, že na výkon kopírování má vliv povolení této možnosti. True
False (výchozí)
No
dataInconsistency Jeden z párů klíč-hodnota v rámci řetězce vlastností skipErrorFile k určení, jestli chcete přeskočit nekonzistentní soubory.
-True: Zbytek chcete zkopírovat přeskočením nekonzistentních souborů.
- Ne: Chcete přerušit aktivitu kopírování, jakmile se najde nekonzistentní soubor.
Mějte na paměti, že tato vlastnost je platná pouze při kopírování binárních souborů a nastavení validateDataConsistency jako True.
True
False (výchozí)
No
LogSettings Skupinu vlastností, které je možné zadat pro povolení protokolu relace pro protokol přeskočených souborů. No
linkedServiceName Propojená služba Azure Blob Storage nebo Azure Data Lake Storage Gen2 pro ukládání souborů protokolu relací. Názvy propojených AzureBlobStorage služeb nebo AzureBlobFS typů, které odkazují na instanci, kterou používáte k ukládání souborů protokolu. No
path Cesta k souborům protokolu. Zadejte cestu, do které chcete ukládat soubory protokolu. Pokud nezadáte cestu, služba za vás vytvoří kontejner. No

Poznámka:

  • Při kopírování binárních souborů z objektů blob Azure nebo Do Azure Data Lake Storage Gen2 služba provádí ověření kontrolního součtu úrovně bloku MD5 s využitím rozhraní AZURE Blob API a rozhraní API Azure Data Lake Storage Gen2. Pokud jako zdroje dat existuje ContentMD5 u souborů ve službě Azure Blob nebo Azure Data Lake Storage Gen2, služba provede ověření kontrolního součtu na úrovni souborů MD5 i po přečtení souborů. Po zkopírování souborů do Azure Blob nebo Azure Data Lake Storage Gen2 jako cíle dat zapíše služba ContentMD5 do Azure Blob nebo Azure Data Lake Storage Gen2, které můžou podřízené aplikace dále využívat k ověření konzistence dat.
  • Služba ověřuje velikost souboru při kopírování binárních souborů mezi všemi úložišti úložiště.

Sledování

Výstup z aktivity kopírování

Po úplném spuštění aktivity kopírování uvidíte výsledek ověření konzistence dat z výstupu každého spuštění aktivity kopírování:

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

Podrobnosti o ověření konzistence dat najdete ve vlastnosti DataConsistencyVerification.

Hodnota VerificationResult:

  • Ověřeno: Kopírovaná data byla ověřena tak, aby byla konzistentní mezi zdrojovým a cílovým úložištěm.
  • NotVerified: Kopírovaná data nebyla ověřena tak, aby byla konzistentní, protože jste nepovolili ověření konzistence Dat v aktivitě kopírování.
  • Nepodporováno: Kopírovaná data nebyla ověřena, aby byla konzistentní, protože u tohoto konkrétního páru kopírování není podporováno ověření konzistence dat.

Hodnota NekonzistentníData:

  • Nalezeno: Aktivita kopírování našla nekonzistentní data.
  • Vynecháno: Aktivita kopírování zjistila a přeskočila nekonzistentní data.
  • Žádné: Aktivita kopírování nenašla žádná nekonzistentní data. Důvodem může být to, že vaše data byla ověřena tak, aby byla konzistentní mezi zdrojovým a cílovým úložištěm, nebo proto, že jste zakázali ověření konzistence Dat v aktivitě kopírování.

Protokol relace z aktivity kopírování

Pokud nakonfigurujete protokolování nekonzistentního souboru, najdete soubor protokolu z této cesty: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. Soubory protokolu jsou soubory CSV.

Schéma souboru protokolu je následující:

Sloupec Popis
Časové razítko Časové razítko, kdy služba přeskočí nekonzistentní soubory.
Level Úroveň protokolu této položky. U položky, která zobrazuje přeskočení souboru, je na úrovni Upozornění.
OperationName Provozní chování aktivity kopírování v každém souboru. Parametr FileSkip určuje soubor, který se má přeskočit.
OperationItem Název souboru, který se má přeskočit.
Zpráva Další informace o tom, proč se soubory přeskočí

Příklad souboru protokolu je následující:

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=,'." 

Z výše uvedeného souboru protokolu vidíte, sample1.csv se přeskočil, protože se nepodařilo ověřit, že je konzistentní mezi zdrojovým a cílovým úložištěm. Další podrobnosti o tom, proč sample1.csv být nekonzistentní, je to proto, že se při kopírování aktivity kopírování současně změnily jinými aplikacemi.

Podívejte se na další články o aktivitě kopírování: