Verifikasi konsistensi data dalam aktivitas penyalinan

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Saat Anda memindahkan data dari penyimpanan sumber ke penyimpanan tujuan, aktivitas penyalinan Azure Data Factory menyediakan opsi bagi Anda untuk melakukan verifikasi konsistensi data tambahan untuk memastikan data tidak hanya berhasil disalin dari penyimpanan sumber ke tujuan, tetapi juga diverifikasi agar konsisten antara sumber dan penyimpanan tujuan. Setelah file yang tidak konsisten ditemukan selama pemindahan data, Anda dapat membatalkan aktivitas penyalinan atau melanjutkan menyalin sisanya dengan mengaktifkan pengaturan toleransi kegagalan untuk melompati file yang tidak konsisten. Anda bisa mendapatkan nama file yang dilompati dengan mengaktifkan pengaturan log sesi dalam aktivitas penyalinan. Anda dapat merujuk ke log sesi dalam aktivitas penyalinan untuk detail selengkapnya.

Skenario dan penyimpanan data yang didukung

  • Verifikasi konsistensi data didukung oleh semua konektor kecuali FTP, SFTP, HTTP, Snowflake, Office 365, dan Azure Databricks Delta Lake.
  • Verifikasi konsistensi data tidak didukung dalam skenario penyalinan penempatan.
  • Saat menyalin file biner, verifikasi konsistensi data hanya tersedia saat perilaku 'PreserveHierarchy' diatur dalam aktivitas penyalinan.
  • Saat menyalin beberapa file biner dalam aktivitas penyalinan tunggal dengan verifikasi konsistensi data diaktifkan, Anda memiliki opsi untuk membatalkan aktivitas penyalinan atau melanjutkan menyalin sisanya dengan mengaktifkan pengaturan toleransi kegagalan untuk melompati file yang tidak konsisten.
  • Saat menyalin tabel dalam aktivitas penyalinan tunggal dengan verifikasi konsistensi data diaktifkan, aktivitas penyalinan gagal jika jumlah baris yang dibaca dari sumber berbeda dari jumlah baris yang disalin ke tujuan ditambah jumlah baris yang tidak kompatibel yang dilompati.

Konfigurasi

Contoh berikut memberikan definisi JSON untuk mengaktifkan verifikasi konsistensi data di Aktivitas Penyalinan:

"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/"
        }
    }
} 
Properti Deskripsi Nilai yang diizinkan Diperlukan
validateDataConsistency Jika Anda mengatur true untuk properti ini, saat menyalin file biner, aktivitas penyalinan akan memeriksa ukuran file, lastModifiedDate, dan checksum MD5 untuk setiap file biner yang disalin dari penyimpanan sumber ke penyimpanan tujuan untuk memastikan konsistensi data antara penyimpanan sumber dan tujuan. Saat menyalin data tabular, aktivitas penyalinan akan memeriksa jumlah baris total setelah pekerjaan selesai untuk memastikan jumlah baris yang dibaca dari sumber sama dengan jumlah baris yang disalin ke tujuan ditambah jumlah baris yang tidak kompatibel yang dilompati. Ketahuilah bahwa performa penyalinan akan terpengaruh dengan mengaktifkan opsi ini. True
Salah (default)
Tidak
dataInconsistency Salah satu pasangan nilai kunci dalam tas properti skipErrorFile untuk menentukan apakah Anda ingin melompati file yang tidak konsisten.
-True: Anda ingin menyalin sisanya dengan melompati file yang tidak konsisten.
- False: Anda ingin membatalkan aktivitas penyalinan setelah file yang tidak konsisten ditemukan.
Ketahuilah bahwa properti ini hanya valid ketika Anda menyalin file biner dan mengatur validateDataConsistency sebagai True.
True
Salah (default)
Tidak
logSettings Grup properti yang dapat ditentukan untuk mengaktifkan log sesi untuk mencatat file yang dilompati. Tidak
linkedServiceName Layanan tertaut Azure Blob Storage atau Azure Data Lake Storage Gen2 untuk menyimpan file log sesi. Nama layanan tertaut jenis AzureBlobStorage atau AzureBlobFS, yang mengacu pada instans yang Anda gunakan untuk menyimpan file log. Tidak
jalur Jalur file log. Tentukan jalur yang ingin Anda simpan file lognya. Jika Anda tidak menyediakan jalur, layanan akan membuat kontainer untuk Anda. Tidak

Catatan

  • Saat menyalin file biner dari, atau ke Azure Blob atau Azure Data Lake Storage Gen2, ADF melakukan verifikasi checksum MD5 tingkat blok yang memanfaatkan Azure Blob API dan Azure Data Lake Storage Gen2 API. Jika ContentMD5 pada file ada di Azure Blob atau Azure Data Lake Storage Gen2 sebagai sumber data, ADF juga melakukan verifikasi checksum MD5 tingkat file setelah membaca file. Setelah menyalin file ke Azure Blob atau Azure Data Lake Storage Gen2 sebagai tujuan data, ADF menulis ContentMD5 ke Azure Blob atau Azure Data Lake Storage Gen2 yang selanjutnya dapat digunakan oleh aplikasi hilir untuk verifikasi konsistensi data.
  • ADF melakukan verifikasi ukuran file saat menyalin file biner di antara penyimpanan mana pun.

Pemantauan

Output dari aktivitas penyalinan

Setelah aktivitas penyalinan berjalan sepenuhnya, Anda dapat melihat hasil verifikasi konsistensi data dari output setiap aktivitas penyalinan yang dijalankan:

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

Anda dapat melihat detail verifikasi konsistensi data dari "properti dataConsistencyVerification".

Nilai VerificationResult:

  • Terverifikasi: Data salinan Anda telah diverifikasi agar konsisten antara penyimpanan sumber dan tujuan.
  • NotVerified: Data yang Anda salin belum diverifikasi agar konsisten karena Anda belum mengaktifkan validateDataConsistency dalam aktivitas penyalinan.
  • Tidak didukung: Data yang Anda salin belum diverifikasi agar konsisten karena verifikasi konsistensi data tidak didukung untuk pasangan penyalinan khusus ini.

Nilai InconsistentData:

  • Ditemukan: Aktivitas penyalinan ADF telah menemukan data yang tidak konsisten.
  • Dilompati: Aktivitas penyalinan ADF telah menemukan dan melompati data yang tidak konsisten.
  • Tidak ada: Aktivitas penyalinan ADF belum menemukan data yang tidak konsisten. Hal ini dapat terjadi karena data Anda telah diverifikasi agar konsisten antara penyimpanan sumber dan tujuan atau karena Anda menonaktifkan validateDataConsistency dalam aktivitas penyalinan.

Log sesi dari aktivitas penyalinan

Jika Anda mengonfigurasi untuk mencatat file yang tidak konsisten, Anda dapat menemukan file log dari jalur ini: https://[your-blob-account].blob.core.windows.net/[path-if-configured]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].csv. File log akan menjadi file csv.

Skema file log adalah sebagai berikut:

Kolom Deskripsi
Tanda waktu Tanda waktu saat ADF melompati file yang tidak konsisten.
Tingkat Tingkat log item ini. Ini akan berada di tingkat 'Peringatan' untuk item yang menunjukkan lompatan file.
OperationName Perilaku operasional aktivitas penyalinan ADF pada setiap file. Ini akan berupa 'FileSkip' untuk menentukan file yang akan dilompati.
OperationItem Nama file yang akan dilompati.
Pesan Informasi selengkapnya untuk mengilustrasikan mengapa file dilompati.

Contoh file log adalah sebagai berikut:

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

Dari file log di atas, Anda dapat melihat sample1.csv telah dilompati karena gagal diverifikasi untuk konsisten antara penyimpanan sumber dan tujuan. Anda bisa mendapatkan detail lebih lanjut tentang mengapa sample1.csv menjadi tidak konsisten karena sedang diubah oleh aplikasi lain ketika aktivitas penyalinan ADF sedang menyalin pada waktu yang sama.

Langkah berikutnya

Lihat artikel Aktivitas Salin lainnya: