سجل الجلسة في النشاط الخاص بالنسخ
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
يمكنك تسجيل أسماء الملفات التي نُسخت في نشاط النسخ. يمكن أن يساعد ذلك في ضمان عدم نسخ البيانات بنجاح من المصدر إلى الوجهة فحسب، بل أيضًا التحقق من التناسق بين المصدر والوجهة.
عند تمكين إعداد التسامح مع الخطأ في نشاط النسخ لتخطي البيانات المعيبة، يمكن أيضًا تسجيل الملفات والصفوف التي تم تخطيها. يمكنك الحصول على مزيد من التفاصيل من التسامح مع الخطأ في نشاط النسخ.
ونظرًا لإتاحة الفرصة لك للحصول على جميع أسماء الملفات المنسوخة بواسطة نشاط نسخ Azure Data Factory (ADF) من خلال تمكين سجل الجلسة، فسيكون ذلك مفيدًا في السيناريوهات التالية:
- بعد استخدام أنشطة نسخ خاصة بـ ADF لنسخ الملفات من وحدة تخزين إلى أخرى، تجد بعض الملفات غير المتوقعة في المخزن الوجهة. يمكنك فحص سجلات جلسة نشاط النسخ لمعرفة النشاط الذي نسخ الملفات بالفعل، ومتى. باستخدام هذا النهج، يمكنك بسهولة العثور على السبب الجذري وإصلاح التكوينات الخاصة بك في ADF.
- بعد استخدام أنشطة نسخ خاصة بـ ADF لنسخ الملفات من وحدة تخزين إلى أخرى، تجد أن الملفات المنسوخة إلى الوجهة ليست تلك المتوقعة من المخزن المصدر. يمكنك فحص سجلات جلسة نشاط النسخ للحصول على الطابع الزمني لمهام النسخ بالإضافة إلى بيانات التعريف للملفات عندما تقرأها أنشطة نسخ ADF من المتجر المصدر. باستخدام هذا الأسلوب، يمكنك تأكيد ما إذا كانت الملفات قد تم تحديثها بواسطة تطبيقات أخرى على مخزن المصدر بعد نسخها بواسطة ADF.
تكوين باستخدام Azure Data Factory Studio
لتكوين تسجيل نشاط النسخ، أضف أولا نشاط نسخ إلى pipeline الخاص بك، ثم استخدم علامة التبويب Settings لتكوين التسجيل وخيارات التسجيل المختلفة.
لمراقبة السجل لاحقًا، يمكنك التحقق من إخراج pipeline run في علامة التبويب Monitoring في ADF Studio ضمن pipeline runs. ومن هناك، حدد pipeline run الذي تريد مراقبته، ثم مرر فوق المنطقة بجوار اسم النشاط، حيث ستجد رموزًا للارتباطات التي تعرض إدخال وإخراج pipeline (بمجرد اكتماله) وتفاصيل أخرى.
حدد رمز الإخراج للاطلاع على تفاصيل تسجيل الوظيفة، ولاحظ موقع التسجيل في حساب التخزين المحدد، حيث يمكنك رؤية تفاصيل جميع الأنشطة المسجلة.
انظر أدناه للحصول على تفاصيل تنسيق إخراج السجل.
تكوين باستخدام JavaScript Object Notation
يوفر المثال التالي تعريف JSON لتمكين التحقق من سجل الجلسة في نشاط النسخ:
{
"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/"
}
}
}
}
الخاصية | الوصف | القيم المسموح بها | المطلوب |
---|---|---|---|
enableCopyActivityLog | عند تعيينها إلى صواب، ستتاح لك الفرصة لتسجيل الملفات المنسوخة أو الملفات التي تم تخطيها أو الصفوف التي تم تخطيها. | صواب خطأ (افتراضي) |
لا |
logLevel | سيقوم "معلومات" بتسجيل كافة الملفات المنسوخة والملفات التي تم تخطيها والصفوف التي تم تخطيها. سيقوم "تحذير" بتسجيل الملفات التي تم تخطيها والصفوف التي تم تخطيها فقط. | المعلومات تحذير (الافتراضي) |
لا |
enableReliableLogging | عند تعيينها إلى صواب، فإن نشاط النسخ في الوضع الموثوق به سيقوم بمسح السجلات على الفور بمجرد نسخ كل ملف إلى الوجهة. عند نسخ العديد من الملفات مع تمكين وضع التسجيل الموثوق به في نشاط النسخ، ينبغي أن تتوقع تأثر معدل النقل، نظرًا لأن عمليات الكتابة المزدوجة مطلوبة لكل ملف يُنسخ. يذهب أحد الطلبات إلى مخزن الوجهة والآخر إلى مخزن تخزين السجلات. سيؤدي نشاط النسخ في وضع أفضل جهد إلى مسح السجلات بدفعة من السجلات خلال فترة زمنية، وسيكون معدل نقل النسخ أقل تأثرًا. لا يتم ضمان اكتمال التسجيل وتوقيته في هذا الوضع نظرًا لوجود عدد قليل من الاحتمالات بأن الدفعة الأخيرة من أحداث السجل لم يتم مسحها في ملف السجل عند فشل نشاط النسخ. في هذا السيناريو، سترى أن بعض الملفات التي تم نسخها إلى الوجهة لم يتم تسجيلها. | صواب خطأ (افتراضي) |
لا |
logLocationSettings | مجموعة من الخصائص التي يمكن استخدامها لتحديد موقع تخزين سجلات الجلسة. | لا | |
linkedServiceName | الخدمة المرتبطة بتخزين Azure Blob أو Azure Data Lake Storage Gen2 لتخزين ملفات سجل جلسة العمل. | أسماء أنواع الخدمات المرتبطة AzureBlobStorage أو AzureBlobFS ، والتي تشير إلى المثيل الذي تستخدمه لتخزين ملفات السجل. |
لا |
path | مسار ملفات السجل. | حدد المسار الذي تريد تخزين ملفات السجل فيه. إذا لم تقدم مسارًا، فإن الخدمة تنشئ حاوية خاصة لك. | لا |
مراقبة
مخرجات من نشاط النسخ
بعد تشغيل نشاط النسخ بالكامل، يمكنك رؤية مسار ملفات السجل من مخرجات كل عملية تشغيل خاصة بنشاط النسخ. يمكنك العثور على ملفات السجل من المسار: https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt
. ملفات السجل التي تم إنشاؤها لها ملحق .txt وبياناتها بتنسيق 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"
}
}
إشعار
عند تعيين الخاصية enableCopyActivityLog
إلى Enabled
، يتم إنشاء أسماء ملفات السجل بواسطة النظام.
مخطط ملف السجل
يوضح الجدول التالي مخطط ملف السجل.
العمود | الوصف |
---|---|
طابع زمني | الطابع الزمني عندما يقوم ADF بقراءة أو كتابة أو تخطى الكائن. |
المستوى | مستوى سجل هذا العنصر. يمكن أن يكون "تحذير" أو "معلومات". |
OperationName | السلوك التشغيلي لنشاط النسخ لـ ADF على كل عنصر. يمكن أن يكون "FileRead" أو "FileWrite" أو "FileSkip" أو "TabularRowSkip". |
OperationItem | أسماء الملفات أو الصفوف التي تم تخطيها. |
رسالة | المزيد من المعلومات لإظهار ما إذا كان الملف قد تمت قراءته من مخزن المصدر، أو تمت كتابته إلى المخزن الوجهة. يمكن أيضًا أن يكون سبب تخطي الملف أو الصفوف. |
موضح أدناه مثال على ملف السجل:
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."
يمكنك من ملف السجل أعلاه أن ترى أنه تم تخطي sample1.csv لأنه فشل في التحقق من اتساق البيانات بين مخزني المصدر والوجهة. يمكنك الحصول على مزيد من التفاصيل عن سبب عدم تناسق sample1.csv لأنه تم تغييره عن طريق تطبيقات أخرى عندما يقوم نشاط النسخ الخاص بـ ADF بعملية النسخ في نفس الوقت. يمكنك أيضًا الاطلاع على ملف sample2.csv الذي تم نسخه بنجاح من المصدر إلى المخزن الوجهة.
يمكنك استخدام محركات تحليل متعددة لتحليل ملفات السجل بشكل أكبر. هناك بعض الأمثلة أدناه لاستخدام استعلام SQL لتحليل ملف السجل عن طريق استيراد ملف سجل بتنسيق csv إلى قاعدة بيانات SQL حيث يمكن أن يكون اسم الجدول SessionLogDemo.
- أعطني قائمة الملفات المنسوخة.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
- أعطني قائمة الملفات المنسوخة ضمن نطاق زمني معين.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
- أعطني ملف معين مع الوقت المنسوخ والبيانات التعريفية.
select * from SessionLogDemo where OperationItem='<file name>'
- أعطني قائمة من الملفات مع بياناتها التعريفة المنسوخة في نطاق زمني.
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%')
- أعطني قائمة الملفات التي تم تخطيها.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
- أعطني السبب في تخطي ملف معين.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
- أعطني قائمة الملفات التي تم تخطيها لنفس السبب: "ملف كائن ثنائي كبير الحجم غير موجود".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
- أعطني اسم الملف الذي يتطلب وقتًا أطول لنسخه.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc
المحتوى ذو الصلة
راجع مقالات نشاط النسخ الأخرى: