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

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF se můžou upgradovat na Fabric pro přístup k novým funkcím v oblasti datové vědy, analýzy v reálném čase a reportingu.

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í. Podrobnosti najdete v protokolu relace týkající se aktivity 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 hodnotu true, při kopírování binárních souborů aktivita kopírování zkontroluje velikost souboru, lastModifiedDate a 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. Pravda
False (výchozí)
Ne
nekonzistence dat Jeden z párů klíč-hodnota v rámci sady vlastností skipErrorFile k určení, zda 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.
Pravda
False (výchozí)
Ne
nastavení protokolu Skupina vlastností, které lze zadat k povolení relace protokolu, aby zapisoval přeskočené soubory. Ne
názevPrepojenéSlužby Propojená služba Azure Blob Storage nebo Azure Data Lake Storage Gen2 pro ukládání souborů protokolu relace. Názvy služeb propojených typů AzureBlobStorage nebo AzureBlobFS, které odkazují na instanci, kterou používáte k ukládání souborů protokolu. Ne
cesta 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. Ne

Poznámka:

  • Při kopírování binárních souborů z nebo do úložišť Azure Blob nebo Azure Data Lake Storage Gen2 služba provádí ověřování kontrolního součtu na úrovni bloku pomocí Azure Blob API a Azure Data Lake Storage Gen2 API. Pokud ContentMD5 u souborů existuje v Azure Blob Storage nebo Azure Data Lake Storage Gen2 jako zdroje dat, služba provede ověření kontrolního součtu na úrovni souboru i po přečtení souborů. Po zkopírování souborů do Azure objektu blob nebo Azure Data Lake Storage Gen2 jako cíle dat služba zapíše ContentMD5 do Azure objektu 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: Operace kopírování zjistila nekonzistentní data a přeskočila je.
  • Žá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í.

Záznam 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.
Úroveň Úroveň protokolu této položky. U položky, která zobrazuje přeskočení souboru, je na úrovni varování.
OperationName Provozní chování aktivity kopírování u každého 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, že soubor sample1.csv byl přeskočen, 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č se sample1.csv stává nekonzistentním, jsou, že byl během současné kopírovací aktivity upravován jinými aplikacemi.

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