Verificatie van gegevensconsistentie in kopieeractiviteit

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Wanneer u gegevens verplaatst van bron naar doelarchief, biedt de kopieeractiviteit een optie om verdere verificatie van gegevensconsistentie uit te voeren om ervoor te zorgen dat de gegevens niet alleen van bron naar doelarchief zijn gekopieerd, maar ook om consistent te zijn tussen bron- en doelopslag. Zodra inconsistente bestanden zijn gevonden tijdens de gegevensverplaatsing, kunt u de kopieeractiviteit afbreken of doorgaan met het kopiëren van de rest door de instelling voor fouttolerantie in te schakelen om inconsistente bestanden over te slaan. U kunt de overgeslagen bestandsnamen ophalen door de instelling voor sessielogboeken in te schakelen in de kopieeractiviteit. U kunt verwijzen naar sessielogboek in kopieeractiviteit voor meer informatie.

Ondersteunde gegevensarchieven en scenario's

  • Verificatie van gegevensconsistentie wordt ondersteund door alle connectors, behalve FTP, SFTP, HTTP, Snowflake, Office 365 en Azure Databricks Delta Lake.
  • Verificatie van gegevensconsistentie wordt niet ondersteund in faseringskopiescenario.
  • Bij het kopiëren van binaire bestanden is verificatie van gegevensconsistentie alleen beschikbaar wanneer het gedrag 'PreserveHierarchy' is ingesteld in de kopieeractiviteit.
  • Bij het kopiëren van meerdere binaire bestanden in één kopieeractiviteit waarvoor verificatie van gegevensconsistentie is ingeschakeld, kunt u de kopieeractiviteit afbreken of de rest blijven kopiëren door fouttolerantie-instelling in te schakelen om inconsistente bestanden over te slaan.
  • Bij het kopiëren van een tabel in één kopieeractiviteit waarvoor verificatie van gegevensconsistentie is ingeschakeld, mislukt de kopieeractiviteit als het aantal rijen dat is gelezen uit de bron verschilt van het aantal rijen dat naar het doel is gekopieerd, plus het aantal niet-compatibele rijen dat is overgeslagen.

Configuratie

In het volgende voorbeeld ziet u een JSON-definitie om verificatie van gegevensconsistentie in te schakelen in kopieeractiviteit:

{
  "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/"
        }
    }
} 
Eigenschappen Beschrijving Toegestane waarden Vereist
validateDataConsistency Als u waar instelt voor deze eigenschap, controleert de kopieeractiviteit bij het kopiëren van binaire bestanden de bestandsgrootte, lastModifiedDate en MD5-controlesom voor elk binair bestand dat van de bron naar het doelarchief wordt gekopieerd, om ervoor te zorgen dat de gegevensconsistentie tussen het bron- en doelarchief wordt gegarandeerd. Wanneer u tabellaire gegevens kopieert, controleert de kopieeractiviteit het totale aantal rijen nadat de taak is voltooid, zodat het totale aantal rijen dat uit de bron is gelezen hetzelfde is als het aantal rijen dat naar het doel is gekopieerd, plus het aantal niet-compatibele rijen dat is overgeslagen. Houd er rekening mee dat de kopieerprestaties worden beïnvloed door deze optie in te schakelen. Waar
False (standaard)
Nee
dataInconsistentie Een van de sleutel-waardeparen in skipErrorFile eigenschap bag om te bepalen of u de inconsistente bestanden wilt overslaan.
-True: u wilt de rest kopiëren door inconsistente bestanden over te slaan.
- Onwaar: u wilt de kopieeractiviteit afbreken zodra inconsistent bestand is gevonden.
Houd er rekening mee dat deze eigenschap alleen geldig is wanneer u binaire bestanden kopieert en validateDataConsistency instelt als True.
Waar
False (standaard)
Nee
log Instellingen Een groep eigenschappen die kan worden opgegeven om het sessielogboek in te schakelen voor het vastleggen van overgeslagen bestanden. Nee
linkedServiceName De gekoppelde service van Azure Blob Storage of Azure Data Lake Storage Gen2 om de sessielogboekbestanden op te slaan. De namen van een AzureBlobStorage gekoppelde service of AzureBlobFS typen, die verwijst naar het exemplaar dat u gebruikt om de logboekbestanden op te slaan. Nee
path Het pad van de logboekbestanden. Geef het pad op dat u de logboekbestanden wilt opslaan. Als u geen pad opgeeft, maakt de service een container voor u. Nr.

Notitie

  • Bij het kopiëren van binaire bestanden van of naar Azure Blob of Azure Data Lake Storage Gen2, blokkeert de service md5 controlesomverificatie op niveau met behulp van Azure Blob-API en Azure Data Lake Storage Gen2-API. Als ContentMD5 op bestanden bestaat in Azure Blob of Azure Data Lake Storage Gen2 als gegevensbronnen, voert de service md5-controlesomverificatie op bestandsniveau uit nadat de bestanden zijn gelezen. Na het kopiëren van bestanden naar Azure Blob of Azure Data Lake Storage Gen2 als gegevensbestemming, schrijft de service ContentMD5 naar Azure Blob of Azure Data Lake Storage Gen2, die verder kan worden gebruikt door downstreamtoepassingen voor verificatie van gegevensconsistentie.
  • De service controleert de bestandsgrootte bij het kopiëren van binaire bestanden tussen opslagarchieven.

Bewaking

Uitvoer van kopieeractiviteit

Nadat de kopieeractiviteit volledig is uitgevoerd, ziet u het resultaat van verificatie van gegevensconsistentie vanuit de uitvoer van elke uitvoering van de kopieeractiviteit:

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

U kunt de details van verificatie van gegevensconsistentie bekijken via de eigenschap dataConsistencyVerification.

Waarde van VerificationResult:

  • Geverifieerd: uw gekopieerde gegevens zijn geverifieerd om consistent te zijn tussen het bron- en doelarchief.
  • NotVerified: uw gekopieerde gegevens zijn niet geverifieerd om consistent te zijn omdat u de validateDataConsistency niet hebt ingeschakeld in de kopieeractiviteit.
  • Niet ondersteund: uw gekopieerde gegevens zijn niet geverifieerd om consistent te zijn omdat verificatie van gegevensconsistentie niet wordt ondersteund voor dit specifieke kopieerpaar.

Waarde van InconsistentData:

  • Gevonden: De kopieeractiviteit heeft inconsistente gegevens gevonden.
  • Overgeslagen: de kopieeractiviteit heeft inconsistente gegevens gevonden en overgeslagen.
  • Geen: de kopieeractiviteit heeft geen inconsistente gegevens gevonden. Dit kan zijn omdat uw gegevens consistent zijn tussen het bron- en doelarchief of omdat u validateDataConsistency hebt uitgeschakeld in de kopieeractiviteit.

Sessielogboek van kopieeractiviteit

Als u configureert dat het inconsistente bestand wordt vastgelegd, kunt u het logboekbestand vinden via dit pad: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. De logboekbestanden zijn de CSV-bestanden.

Het schema van een logboekbestand is als volgt:

Kolom Beschrijving
Tijdstempel De tijdstempel wanneer de service de inconsistente bestanden overslaat.
Niveau Het logboekniveau van dit item. Het bevindt zich in waarschuwingsniveau voor het item met het overslaan van bestanden.
OperationName Het operationele gedrag van de kopieeractiviteit voor elk bestand. Het is 'FileSkip' om het bestand op te geven dat moet worden overgeslagen.
OperationItem De bestandsnaam die moet worden overgeslagen.
Bericht Meer informatie om te laten zien waarom bestanden worden overgeslagen.

Het voorbeeld van een logboekbestand is als volgt:

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 het bovenstaande logboekbestand ziet u dat sample1.csv is overgeslagen omdat het niet kon worden geverifieerd om consistent te zijn tussen bron- en doelopslag. U kunt meer informatie krijgen over waarom sample1.csv inconsistent wordt, omdat deze is gewijzigd door andere toepassingen wanneer de kopieeractiviteit tegelijkertijd wordt gekopieerd.

Zie de andere artikelen over kopieeractiviteiten: