Verifikasi konsistensi data dalam aktivitas penyalinan

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Saat Anda memindahkan data dari penyimpanan sumber ke tujuan, aktivitas salin menyediakan opsi bagi Anda untuk melakukan verifikasi konsistensi data lebih lanjut untuk memastikan data tidak hanya berhasil disalin dari penyimpanan sumber ke tujuan, tetapi juga diverifikasi agar konsisten antara penyimpanan sumber dan 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 salin. 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 pementasan salinan.
  • 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:

{
  "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/"
        }
    }
} 
Properti Deskripsi Nilai yang diizinkan Wajib
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 salin akan memeriksa jumlah baris total setelah pekerjaan selesai, memastikan jumlah total baris yang dibaca dari sumber sama dengan jumlah baris yang disalin ke tujuan ditambah jumlah baris yang tidak kompatibel yang dilewati. Ketahuilah performa penyalinan terpengaruh dengan mengaktifkan opsi ini. Benar
False (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.
Benar
False (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 merujuk pada instans yang Anda gunakan untuk menyimpan file log. Tidak
jalan 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, layanan 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 salin

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 salin.
  • Tidak didukung: Data yang Anda salin belum diverifikasi agar konsisten karena verifikasi konsistensi data tidak didukung untuk pasangan salinan tertentu 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 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 salin

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 adalah 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 berada di tingkat 'Peringatan' untuk item yang memperlihatkan file melompat.
OperationName Perilaku operasional aktivitas penyalinan ADF pada setiap file. Ini adalah 'FileSkip' untuk menentukan file yang akan dilewati.
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.

Lihat artikel Aktivitas Penyalinan lainnya: