Bagikan melalui


Log sesi pada aktivitas penyalinan

Azure Data Factory Azure Synapse Analytics

Petunjuk

Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.

Anda dapat mencatat nama file yang disalin dalam Copy activity. Hal ini dapat membantu memastikan data tidak hanya berhasil disalin dari sumber ke tujuan, tetapi juga memvalidasi konsistensi antara sumber dan tujuan.

Saat Anda mengaktifkan pengaturan toleransi kesalahan dalam Copy activity untuk melewati data yang rusak, file yang dilewati dan baris yang dilewati juga dapat dicatat. Anda bisa mendapatkan detail selengkapnya dari toleransi kesalahan dalam aktivitas salin.

Dengan mengaktifkan log sesi di Azure Data Factory (ADF) Copy activity, Anda memiliki kesempatan untuk mendapatkan semua nama file yang disalin. Hal ini akan sangat membantu bagi Anda dalam skenario berikut:

  • Setelah Anda menggunakan aktivitas Salin ADF untuk menyalin file dari satu penyimpanan ke penyimpanan lainnya, Anda menemukan beberapa file yang tidak terduga di penyimpanan tujuan. Anda dapat memindai log sesi Copy activity untuk melihat aktivitas mana yang benar-benar menyalin file, dan kapan. Dengan pendekatan ini, Anda dapat dengan mudah menemukan akar masalah dan memperbaiki konfigurasi Anda di ADF.
  • Setelah Anda menggunakan aktivitas Salin ADF untuk menyalin file dari satu penyimpanan ke penyimpanan lain, Anda menemukan file yang disalin ke tujuan tidak seperti yang diharapkan dari penyimpanan sumber. Anda dapat memindai log sesi Copy activity untuk mendapatkan tanda waktu pekerjaan penyalinan serta metadata file saat aktivitas Salin ADF membacanya dari penyimpanan sumber. Dengan pendekatan ini, Anda dapat mengonfirmasi apakah file telah diperbarui oleh aplikasi lain di penyimpanan sumber setelah disalin oleh ADF.

Konfigurasi dengan Azure Data Factory Studio

Untuk mengonfigurasi pengelogan Copy activity, pertama-tama tambahkan Copy activity ke alur Anda, lalu gunakan tab Pengaturannya untuk mengonfigurasi pengelogan dan berbagai opsi pengelogan. Menunjukkan cara mengonfigurasi pencatatan untuk Copy activity pada tab pengaturan.

Untuk memantau log selanjutnya, Anda dapat memeriksa output dari jalankan alur di tab Pemantauan pada Studio ADF di bagian jalankan alur. Di tab Pemantauan, pilih eksekusi alur kerja yang ingin Anda pantau dan arahkan ke area di samping nama Aktivitas, di mana ikon tautan yang menunjukkan masukan alur, keluaran (setelah selesai), dan detail lainnya akan terlihat.

Tanya cara menemukan output Copy activity di ADF Studio.

Pilih ikon output untuk melihat detail pengelogan pekerjaan, dan catat lokasi pengelogan di akun penyimpanan yang dipilih, tempat Anda dapat melihat detail semua aktivitas yang dicatat.

Menampilkan output dari aktivitas Salin dengan pengelogan diaktifkan.

Lihat di bawah untuk format output log secara detail.

Konfigurasi dengan JSON

Contoh berikut menyediakan definisi JSON untuk mengaktifkan sesi log dalam Copy Activity.

{
  "name": "CopyActivityLog",
  "type": "Copy",
  "typeProperties": {
    "source": {
      "type": "BinarySource",
      "storeSettings": {
        "type": "AzureDataLakeStoreReadSettings",
        "recursive": true
      },
      "formatSettings": {
        "type": "BinaryReadSettings"
      }
    },
    "sink": {
      "type": "BinarySink",
      "storeSettings": {
        "type": "AzureBlobFSWriteSettings"
      }
    },
    "skipErrorFile": {
      "fileForbidden": true,
      "dataInconsistency": true
    },
    "validateDataConsistency": true,
    "logSettings": {
      "enableCopyActivityLog": true,
      "copyActivityLogSettings": {
        "logLevel": "Warning",
        "enableReliableLogging": false
      },
      "logLocationSettings": {
        "linkedServiceName": {
          "referenceName": "ADLSGen2",
          "type": "LinkedServiceReference"
        },
        "path": "sessionlog/"
      }
    }
  }
}
Properti Deskripsi Nilai yang diizinkan Wajib
enableCopyActivityLog Saat diatur ke true, Anda akan memiliki kesempatan untuk mencatat file yang disalin, file yang dilewati, atau baris yang dilewati. Benar
False (default)
Tidak
logLevel "Info" akan mencatat semua file yang disalin, file yang terlewati, dan baris yang terlewati. "Peringatan hanya akan mencatat file yang dilewatkan dan baris yang dilewati." Informasi
Peringatan (default)
Tidak
aktifkanPencatatanYangDapatDiandalkan Jika benar, Copy activity dalam mode yang dapat diandalkan akan segera menghapus log setelah setiap file disalin ke tujuan. Saat menyalin banyak file dengan mode pencatatan yang andal diaktifkan dalam Copy activity, Anda dapat mengharapkan throughput akan terpengaruh, karena operasi penulisan ganda diperlukan untuk setiap file yang disalin. Satu permintaan masuk ke toko tujuan dan permintaan lainnya masuk ke toko penyimpanan log. Copy activity dalam mode upaya terbaik akan menghapus log dengan batch rekaman dalam jangka waktu tertentu, dan throughput salinan akan jauh lebih sedikit terpengaruh. Kelengkapan dan ketepatan waktu pengelogan tidak dijamin dalam mode ini karena ada kemungkinan bahwa batch terakhir peristiwa log belum ditulis ke file log ketika aktivitas Salin gagal. Dalam skenario ini, Anda akan melihat beberapa file yang disalin ke tujuan tidak dicatat. Benar
False (default)
Tidak
logLocationSettings Sekelompok properti yang dapat digunakan untuk menentukan lokasi penyimpanan log sesi. Tidak
NamaLayananTertaut 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 Lokasi jalur file log. Tentukan jalur yang ingin Anda simpan file lognya. Jika Anda tidak menyediakan jalur, layanan akan membuatkan kontainer untuk Anda. Tidak

Pemantauan

Output dari aktivitas penyalinan

Setelah copy activity berjalan sepenuhnya, Anda dapat melihat jalur file log dari output setiap Copy activity berjalan. Anda dapat menemukan file log dari jalur: https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. File log yang dihasilkan memiliki ekstensi .txt dan data mereka dalam format CSV.

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

Catatan

Ketika enableCopyActivityLog properti diatur ke Enabled, nama file log dihasilkan oleh sistem.

Skema berkas log

Tabel berikut menunjukkan skema file log.

Kolom Deskripsi
Penanda Waktu Tanda waktu saat ADF membaca, menulis, atau melewati objek.
Tingkat Tingkat log dari elemen ini. Dapat berupa 'Peringatan' atau "Info".
OperationName Perilaku operasional aktivitas ADF Copy pada setiap objek. Dapat berupa 'FileRead',' FileWrite', 'FileSkip', atau 'TabularRowSkip'.
OperationItem Nama file atau baris yang dilewatkan.
Pesan Informasi selengkapnya untuk memperlihatkan apakah file telah dibaca dari penyimpanan sumber, atau ditulis ke penyimpanan tujuan. Dapat juga menjadi alasan mengapa file atau baris-baris sedang dilewati.

Berikut ini contoh file log:

Timestamp, Level, OperationName, OperationItem, Message
2020-10-19 08:39:13.6688152,Info,FileRead,"sample1.csv","Start to read file: {""Path"":""sample1.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:39: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=,'." 
2020-10-19 08:40:13.6688152,Info,FileRead,"sample2.csv","Start to read file: {""Path"":""sample2.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:40:13.9003981,Info,FileWrite,"sample2.csv","Start to write file from source file: sample2.csv."
2020-10-19 08:45:17.6508407,Info,FileRead,"sample2.csv","Complete reading file successfully. "
2020-10-19 08:45:28.7390083,Info,FileWrite,"sample2.csv","Complete writing file from source file: sample2.csv. File is successfully copied."

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 selengkapnya tentang mengapa sample1.csv menjadi tidak konsisten karena sedang diubah oleh aplikasi lain ketika ADF Copy activity menyalin pada saat yang sama. Anda juga dapat melihat sample2.csv telah berhasil disalin dari sumber ke penyimpanan tujuan.

Anda dapat menggunakan beberapa mesin analisis untuk menganalisis lebih lanjut file log. Ada beberapa contoh di bawah ini untuk menggunakan kueri SQL untuk menganalisis file log dengan mengimpor file log csv ke database SQL di mana nama tabel dapat menjadi SessionLogDemo.

  • Berikan saya daftar file yang disalin.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
  • Beri saya daftar file yang disalin dalam rentang waktu tertentu.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
  • Beri saya file tertentu beserta waktu penyalinan dan metadata-nya.
select * from SessionLogDemo where OperationItem='<file name>'
  • Beri saya daftar file dengan metadata mereka yang disalin dalam rentang waktu.
select * from SessionLogDemo where OperationName='FileRead' and Message like 'Start to read%' and OperationItem in (select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%')
  • Beri saya daftar file yang dilewatkan.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
  • Beri saya alasan mengapa file tertentu dilewati.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
  • Beri saya daftar file yang dilewati karena alasan yang sama: "file blob tidak ada".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
  • Beri saya nama file yang membutuhkan waktu lama untuk menyalin.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc

Lihat artikel lain tentang Aktivitas Penyalinan: