إنشاء مسارات نسخ بيانات واسعة النطاق باستخدام نهج يستند إلى بيانات التعريف في أداة نسخ البيانات
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
عندما تريد نسخ كميات ضخمة من العناصر (على سبيل المثال، آلاف الجداول) أو تحميل البيانات من مجموعة كبيرة ومتنوعة من المصادر، فإن الأسلوب المناسب هو إدخال قائمة أسماء الكائنات ذات سلوكيات النسخ المطلوبة في جدول التحكم، ومن ثم استخدام مسارات ذات معلمات لقراءة نفس الشيء من جدول التحكم وتطبيقها على المهام وفقاً لذلك. بالقيام بذلك، يمكنك الاحتفاظ (على سبيل المثال، إضافة/إزالة) قائمة الكائنات المراد نسخها بسهولة فقط عن طريق تحديث أسماء الكائنات في جدول التحكم بدلاً من إعادة توزيع المسارات. كما سيكون لديك مكان واحد للتحقق بسهولة من الكائنات التي تم نسخها بواسطة المسارات / المشغلات مع سلوكيات النسخ المحددة.
تخفف أداة نسخ البيانات في ADF من رحلة بناء مسارات نسخ البيانات المدفوعة بالبيانات الوصفية. بعد الانتقال عبر تدفق بديهي من تجربة مستندة إلى المعالج، يمكن إنشاء الأداة مسارات ذات معلمات والبرامج النصية SQL لإنشاء جداول التحكم الخارجية وفقاً لذلك. بعد تشغيل البرامج النصية التي تم إنشاؤها لإنشاء جدول التحكم في قاعدة بيانات SQL، ستقرأ المسارات الخاصة بك بيانات التعريف من جدول التحكم وتطبيقها على مهام النسخ تلقائياً.
إنشاء مهام نسخ تعتمد على بيانات التعريف من أداة نسخ البيانات
تحديد مهام نسخ تعتمد على بيانات التعريف من أداة نسخ البيانات.
تحتاج إلى إدخال الاتصال واسم الجدول لجدول عنصر التحكم، بحيث يقرأ منها المسار المُنشأ بيانات التعريف.
إدخال اتصال قاعدة البيانات المصدر. كما يمكنك استخدام خدمة مرتبطة ذات معلمات.
تحديد اسم الجدول لنسخه.
إشعار
إذا قمت بتحديد مخزن البيانات الجدولية، فسيكون لديك فرصة لتحديد التحميل الكامل أو تحميل دلتا في الصفحة التالية. إذا قمت بتحديد مخزن تخزين، يمكنك تحديد التحميل الكامل فقط في الصفحة التالية. تحميل الملفات الجديدة بشكل متزايد فقط من مخزن التخزين غير مدعوم حالياً.
اختر سلوك التحميل.
تلميح
إذا كنت تريد إجراء نسخة كاملة على جميع الجداول، فحدد تحميل كامل لجميع الجداول. إذا كنت تريد إجراء نسخة تزايدية، يمكنك تحديد تكوين لكل جدول على حدة،وتحديد Delta load وكذلك اسم عمود العلامة المائية والقيمة لبدء تشغيل كل جدول.
حدد مخزن بيانات الوجهة.
في صفحة الإعدادات، يمكنك تحديد الحد الأقصى لعدد أنشطة النسخ لنسخ البيانات من مخزن المصدر الخاص بك في وقت واحد عبر عدد مهام النسخ المتزامنة. القيمة الافتراضية هي 20.
بعد توزيع مسار، يمكنك نسخ أو تنزيل البرامج النصية SQL من واجهة المستخدم لإنشاء جدول التحكم وإجراء مخزن.
سترى اثنين من البرامج النصية SQL.
- يتم استخدام البرنامج النصي SQL الأول لإنشاء جدولي تحكم. يخزن جدول التحكم الرئيسي قائمة الجدول أو مسار الملف أو نسخ السلوكيات. يخزن جدول التحكم في الاتصال قيمة الاتصال في مخزن البيانات إذا استخدمت خدمة مرتبطة ذات معلمات.
- يتم استخدام البرنامج النصي SQL الثاني لإنشاء إجراء مخزن. يتم استخدامه لتحديث قيمة العلامة المائية في جدول التحكم الرئيسي عند إكمال مهام النسخ الإضافية في كل مرة.
افتح SSMS للاتصال بملقم جدول التحكم وتشغيل البرنامجين النصيين SQL لإنشاء جداول التحكم وإجراء مخزن.
الاستعلام عن جدول التحكم الرئيسي وجدول التحكم في الاتصال لمراجعة بيانات التعريف فيه.
جدول التحكم الرئيسي
جدول التحكم في الاتصال
العودة إلى مدخل ADF لعرض المسارات وتصحيحها. سترى مجلداً تم إنشاؤه بتسمية"MetadataDrivenCopyTask_############". انقر فوق تسمية المسار مع "MetadataDrivenCopyTask###_TopLevel" وانقر فوق تشغيل تتبع الأخطاء.
مطلوب منك إدخال المعلمات التالية:
اسم المعلمات الوصف MaxNumberOfConcurrentTasks يمكنك دائماً تغيير الحد الأقصى لعدد أنشطة النسخ المتزامنة التي يتم تشغيلها قبل تشغيل المسارات. القيمة الافتراضية ستكون القيمة التي تقوم بإدخالها في أداة نسخ البيانات. MainControlTableName يمكنك دائما تغيير اسم جدول عنصر التحكم الرئيسي، بحيث يحصل المسار على بيانات التعريف من هذا الجدول قبل تشغيله. ConnectionControlTableName يمكنك دائماً تغيير اسم جدول التحكم في الاتصال (اختياري)، بحيث يحصل المسار على بيانات التعريف المتعلقة باتصال مخزن البيانات قبل التشغيل. MaxNumberOfObjectsReturnedFromLookupActivity لتجنب الوصول إلى الحد الأقصى لنشاط البحث عن الإخراج، هناك طريقة لتحديد الحد الأقصى لعدد الكائنات التي يتم إرجاعها بواسطة نشاط البحث. في معظم الحالات، غير مطلوب تغيير القيمة الافتراضية. windowStart عند إدخال قيمة ديناميكية (على سبيل المثال، yyyy/mm/dd) كمسار مجلد، يتم استخدام المعلمة لتمرير وقت المشغل الحالي إلى مسار لملء مسار المجلد الحيوي. عند تشغيل مسار بواسطة مشغل جدولة أو مشغل الإطارات الهابطة، المستخدمين لا تحتاج إلى إدخال قيمة هذه المعلمة. قيمة العينة: 2021-01-25T01:49:28Z تمكين المشغل لتشغيل المسارات.
تحديث جدول التحكم بواسطة أداة نسخ البيانات
يمكنك دائماً تحديث جدول التحكم مباشرة عن طريق إضافة الكائن المراد نسخه أو إزالته أو تغيير سلوك النسخ لكل جدول. نحن أيضاً ننشئ تجربة واجهة المستخدم في أداة نسخ البيانات لتسهيل رحلة تحرير جدول التحكم.
انقر بزر الماوس الأيمن فوق مسار المستوى الأعلى: MetadataDrivenCopyTask_xxx_TopLevel، ثم حدد تحرير جدول التحكم.
حدد صفوفاً من جدول التحكم لتحريرها.
انتقل الإنتاجية أداة نسخ البيانات، وسوف يأتي مع برنامج نصي SQL جديد بالنسبة لك. أعد تشغيل البرنامج النصي SQL لتحديث جدول التحكم.
إشعار
لن تتم إعادة توزيع المسار. يساعدك البرنامج النصي SQL الجديد الذي تم إنشاؤه على تحديث جدول عنصر التحكم فقط.
جداول التحكم
جدول التحكم الرئيسي
يحتوي كل صف في جدول التحكم على بيانات التعريف لكائن واحد (على سبيل المثال، جدول واحد) ليتم نسخها.
اسم العمود | الوصف |
---|---|
البطاقة/رقم البطاقة | المعرف الفريد للكائن المراد نسخه. |
SourceObjectSettings | بيانات التعريف لمجموعة بيانات المصدر. يمكن أن يكون اسم مخطط أو اسم جدول، وما إلى ذلك. إليك مثالاً. |
SourceConnectionSettingsName | اسم إعداد اتصال المصدر في جدول التحكم في الاتصال. إنه اختياري. |
CopySourceSettings | بيانات التعريف الخاصة بخصائص المصدر في نشاط النسخ. يمكن أن يكون استعلاماً أو أقساماً وما إلى ذلك. إليك مثالاً. |
SinkObjectSettings | بيانات التعريف لمجموعة البيانات الوجهة. يمكن أن يكون اسم الملف، مسار المجلد أو اسم الجدول، وما إلى ذلك. إليك مثالاً. إذا تم تحديد مسار مجلد حيوي، فلن تتم كتابة قيمة المتغير هنا في جدول التحكم. |
SinkConnectionSettingsName | اسم إعداد الاتصال الوجهة في جدول التحكم في الاتصال. إنه اختياري. |
CopySinkSettings | بيانات التعريف خاصية مصدر في نشاط النسخ. يمكن أن يكون preCopyScript أو tableOption وما إلى ذلك. إليك مثالاً. |
عمليات نسخ النشاط | بيانات التعريف خاصية المترجم في نشاط النسخ. يتم استخدامه لتعريف تعيين العمود. |
TopLevelPipelineName | اسم مسار العلوي الذي يمكن نسخ هذا الكائن. |
اسم المشغل | اسم المشغل، الذي يمكن أن يؤدي إلى المسار لنسخ هذا الكائن. إذا تم تشغيل التصحيح، يكون الاسم هو Sandbox. إذا كان التنفيذ يدوياً، يكون الاسم هو Manual. إذا تمت جدولة التشغيل، يكون الاسم هو اسم المشغل المقترن. يمكن إدخال أسماء متعددة. |
DataLoadingBehaviorSettings | تحميل كامل مقابل تحميل دلتا. |
معرف المهمة | ترتيب الكائنات المراد نسخها بعد جدول TaskId في عنصر التحكم (الطلب حسب [TaskId] DESC). إذا كان لديك كميات هائلة من الكائنات المراد نسخها ولكن مسموحًا بعدد محدود فقط من العناصر المتزامنة، يمكنك تغيير TaskId لكل كائن لتحديد الكائنات التي يمكن نسخها مسبقًا. القيمة الافتراضية هي 0. |
CopyEnabled | حدد ما إذا كان العنصر ممكّناً في عملية استيعاب البيانات. القيم المسموح بها: 1 (ممكن)، 0 (معطل). القيمة الافتراضية هي 1. |
جدول التحكم في الاتصال
يحتوي كل صف في جدول التحكم على إعداد اتصال واحد لتخزين البيانات.
اسم العمود | الوصف |
---|---|
الاسم | اسم الاتصال ذات المعلمات في جدول التحكم الرئيسي. |
تعيينات الاتصال | إعدادات الاتصال. يمكن أن يكون اسم "قاعدة بيانات" واسم الخادم وهلم جراً. |
التدفقات
سترى ثلاثة مستويات من المسارات التي تم إنشاؤها بواسطة أداة نسخ البيانات.
MetadataDrivenCopyTask_xxx_TopLevel
سيقوم المسار هذا بحساب إجمالي عدد الكائنات (الجداول وما إلى ذلك) المطلوب نسخها في هذا التشغيل، والخروج بعدد الدفعات التسلسلية استنادا إلى الحد الأقصى المسموح به لمهمة النسخ المتزامنة، ثم تنفيذ مسار آخر لنسخ دفعات مختلفة بشكل تسلسلي.
المعلمات
اسم المعلمات | الوصف |
---|---|
MaxNumberOfConcurrentTasks | يمكنك دائماً تغيير الحد الأقصى لعدد أنشطة النسخ المتزامنة التي يتم تشغيلها قبل تشغيل المسارات. القيمة الافتراضية ستكون القيمة التي تقوم بإدخالها في أداة نسخ البيانات. |
MainControlTableName | اسم الجدول لجدول التحكم الرئيسي. سيحصل المسار على بيانات التعريف من هذا الجدول قبل تشغيله |
ConnectionControlTableName | اسم الجدول لجدول التحكم في الاتصال (اختياري). سيحصل المسار على بيانات التعريف المتعلقة باتصال مخزن البيانات قبل التشغيل |
MaxNumberOfObjectsReturnedFromLookupActivity | لتجنب الوصول إلى الحد الأقصى لنشاط البحث عن الإخراج، هناك طريقة لتحديد الحد الأقصى لعدد الكائنات التي يتم إرجاعها بواسطة نشاط البحث. في معظم الحالات، غير مطلوب تغيير القيمة الافتراضية. |
windowStart | عند إدخال قيمة ديناميكية (على سبيل المثال، yyyy/mm/dd) كمسار مجلد، يتم استخدام المعلمة لتمرير وقت المشغل الحالي إلى مسار لملء مسار المجلد الحيوي. عند تشغيل مسار بواسطة مشغل جدولة أو مشغل الإطارات الهابطة، المستخدمين لا تحتاج إلى إدخال قيمة هذه المعلمة. قيمة العينة: 2021-01-25T01:49:28Z |
الأنشطة
اسم النشاط | نوع النشاط | الوصف |
---|---|---|
GetSumOfObjectsToCopy | البحث | حساب العدد الإجمالي للكائنات (جداول وما إلى ذلك) المطلوب نسخها في هذا التشغيل. |
CopyBatchesOfObjectsSequentially | ForEach | الخروج بعدد الدفعات التسلسلية استناداً إلى الحد الأقصى المسموح به مهام النسخ المتزامنة، ثم تنفيذ مسار آخر لنسخ دفعات مختلفة بشكل تسلسلي. |
CopyObjectsInOneBtach | تنفيذ مسار | تنفيذ مسار آخر لنسخ دفعة واحدة من الكائنات. سيتم نسخ الكائنات التي تنتمي إلى هذه الدفعة بالتوازي. |
MetadataDrivenCopyTask_xxx_ MiddleLevel
سيقوم المسار هذا بنسخ دفعة واحدة من الكائنات. سيتم نسخ الكائنات التي تنتمي إلى هذه الدفعة بالتوازي.
المعلمات
اسم المعلمات | الوصف |
---|---|
MaxNumberOfObjectsReturnedFromLookupActivity | لتجنب الوصول إلى الحد الأقصى لنشاط البحث عن الإخراج، هناك طريقة لتحديد الحد الأقصى لعدد الكائنات التي يتم إرجاعها بواسطة نشاط البحث. في معظم الحالات، غير مطلوب تغيير القيمة الافتراضية. |
TopLevelPipelineName | اسم مسار الطبقة العليا. |
اسم المشغل | اسم المشغل. |
CurrentSequentialNumberOfBatch | معرف الدفعة التسلسلية. |
SumOfObjectsToCopy | إجمالي عدد الكائنات التي تريد نسخها. |
SumOfObjectsToCopyForCurrentBatch | عدد الكائنات التي يجب نسخها في الدفعة الحالية. |
MainControlTableName | اسم جدول التحكم الرئيسي. |
ConnectionControlTableName | اسم جدول التحكم في الاتصال. |
الأنشطة
اسم النشاط | نوع النشاط | الوصف |
---|---|---|
DivideOneBatchIntoMultipleGroups | ForEach | تقسيم الكائنات من دفعة واحدة إلى مجموعات متوازية متعددة لتجنب الوصول إلى حد الإخراج لنشاط البحث. |
GetObjectsPerGroupToCopy | البحث | الحصول على كائنات (جداول وما إلى ذلك) من جدول التحكم المطلوب نسخها في هذه المجموعة. ترتيب الكائنات المراد نسخها بعد جدول TaskId في عنصر التحكم (الطلب حسب [TaskId] DESC). |
CopyObjectsInOneGroup | تنفيذ مسار | تنفيذ مسار آخر لنسخ الكائنات من مجموعة واحدة. سيتم نسخ الكائنات التابعة لهذه المجموعة بالتوازي. |
MetadataDrivenCopyTask_xxx_ BottomLevel
سيقوم المسار هذا بنسخ كائنات من مجموعة واحدة. سيتم نسخ الكائنات التابعة لهذه المجموعة بالتوازي.
المعلمات
اسم المعلمات | الوصف |
---|---|
ObjectsPerGroupToCopy | عدد الكائنات التي يجب نسخها في المجموعة الحالية. |
ConnectionControlTableName | اسم جدول التحكم في الاتصال. |
windowStart | يتم استخدامه لتمرير الوقت الحالي للمشغل لمسار من أجل ملء مسار المجلد الحيوي إذا تم تكوينه من قبل المستخدم. |
الأنشطة
اسم النشاط | نوع النشاط | الوصف |
---|---|---|
ListObjectsFromOneGroup | ForEach | سرد الكائنات من مجموعة واحدة ثم تكرير كل واحد منهم إلى الأنشطة المتلقين للمعلومات. |
RouteJobsBasedOnLoadingBehavior | التبديل | تحقق من سلوك التحميل لكل كائن. إذا كان الافتراضي أو حالة FullLoad، فقم بتحميل كامل. إذا كانت حالة دلتا التحميل، فقم بتحميل تدريجي عبر عمود العلامة المائية لتحديد التغييرات |
FullLoadOneObject | نسخ | خذ لقطة كاملة على هذا الكائن وانسخه إلى الوجهة. |
DeltaLoadOneObject | نسخ | نسخ البيانات التي تم تغييرها فقط من آخر مرة عن طريق مقارنة القيمة في عمود العلامة المائية لتحديد التغييرات. |
GetMaxWatermarkValue | البحث | الاستعلام عن الكائن المصدر للحصول على القيمة القصوى من عمود العلامة المائية. |
UpdateWatermarkColumnValue | StoreProcedure | اكتب قيمة العلامة المائية الجديدة للتحكم في الجدول لاستخدامها في المرة القادمة. |
القيود المعروفة
- لا يمكن وضع معلمات على اسم وقت تشغيل التكامل، ونوع قاعدة البيانات، ونوع تنسيق الملف في ADF. على سبيل المثال، إذا كنت تريد استيعاب البيانات من كل من Oracle Server وSQL Server، فستحتاج لمساري معلمات مختلفة. ولكن يمكن مشاركة جدول التحكم المفرد بمجموعتين من المسارات.
- يتم استخدام OPENJSON في البرامج النصية SQL التي تم إنشاؤها بواسطة أداة نسخ البيانات. إذا كنت تستخدم SQL Server لاستضافة جدول التحكم، يجب أن يكون SQL Server 2016 (13.x) والأحدث لدعم الدالة OPENJSON.
المحتوى ذو الصلة
جرب هذه البرامج التعليمية التي تستخدم أداة نسخ البيانات: