نسخ مجمع من قاعدة بيانات مع جدول تحكم

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

لنسخ البيانات من مستودع بيانات في Oracle Server أو Netezza أو Teradata أو SQL Server إلى Azure Synapse Analytics، يجب عليك تحميل كميات هائلة من البيانات من جداول متعددة. عادة، يجب تقسيم البيانات في كل جدول بحيث يمكنك تحميل الصفوف مع مؤشرات ترابط متعددة بالتوازي من جدول واحد. توضح هذه المقالة قالباً لاستخدامه في هذه السيناريوهات.

إشعار

إذا كنت ترغب في نسخ البيانات من عدد صغير من الجداول ذات حجم بيانات صغير نسبيًا إلى Azure Synapse Analytics، فمن الأفضل استخدام أداة نسخ بيانات Azure Data Factory. القالب الموضح في هذه المقالة أكثر مما تحتاج إليه لهذا السيناريو.

حول قالب الحل هذا

يسترد هذا القالب قائمة أقسام قاعدة البيانات المصدر لنسخها من جدول تحكم خارجي. ثم يتكرر فوق كل قسم في قاعدة البيانات المصدر وينسخ البيانات إلى الوجهة.

يحتوي القالب على ثلاثة أنشطة:

  • بحث يسترد قائمة أقسام قاعدة البيانات المؤكدة من جدول تحكم خارجي.
  • للكل يحصل على قائمة الأقسام من نشاط البحث ويقوم بتكرار كل قسم إلى نشاط النسخ.
  • نسخ ينسخ كل قسم من مخزن قاعدة البيانات المصدر إلى المخزن الوجهة.

يحدد القالب المعلمات التالية:

  • Control_Table_Name هو جدول التحكم الخارجي الذي يخزن قائمة الأقسام لقاعدة البيانات المصدر.
  • Control_Table_Schema_PartitionID هو اسم العمود في جدول التحكم الخارجي الذي يخزن معرف كل قسم. تأكد من أن معرف القسم فريد لكل قسم في قاعدة البيانات المصدر.
  • Control_Table_Schema_SourceTableName هو جدول التحكم الخارجي الذي يخزن اسم كل جدول من قاعدة البيانات المصدر.
  • Control_Table_Schema_FilterQuery هو اسم العمود في جدول التحكم الخارجي الذي يخزن استعلام عامل التصفية للحصول على البيانات من كل قسم في قاعدة البيانات المصدر. على سبيل المثال، إذا قمت بتقسيم البيانات حسب السنة، فقد يكون الاستعلام المخزن في كل صف مماثلاً لـ "تحديد * من مصدر البيانات حيث LastModifytime >= '' 2015-01-01 00:00:00 '' و LastModifytime <=" 2015 -12-31 23: 59: 59.999 ''.
  • Data_Destination_Folder_Path هو المسار الذي يتم فيه نسخ البيانات إلى المخزن الوجهة (قابل للتطبيق عندما تكون الوجهة التي تختارها هي "نظام الملفات" أو "Azure Data Lake Storage Gen1").
  • Data_Destination_Container هو مسار المجلد الجذر حيث يتم نسخ البيانات إلى المخزن الوجهة.
  • Data_Destination_Directory هو مسار الدليل الموجود أسفل الجذر حيث يتم نسخ البيانات إلى المخزن الوجهة.

تكون المعلمات الثلاث الأخيرة التي تحدد المسار في مخزن الوجهة مرئية فقط إذا كانت الوجهة التي تختارها هي التخزين المستند إلى الملف. إذا اخترت "Azure Synapse Analytics" كمخزن الوجهة، فلن تكون هذه المعلمات مطلوبة. ولكن يجب أن تكون أسماء الجداول والمخطط في Azure Synapse Analytics هي نفسها الموجودة في قاعدة البيانات المصدر.

كيفية استخدام قالب الحل هذا

  1. إنشاء جدول تحكم في SQL Server أو Azure SQL Database لتخزين قائمة أقسام قاعدة البيانات المصدر للنسخ المجمع. في المثال التالي، هناك خمسة أقسام في قاعدة البيانات المصدر. ثلاثة أقسام لـ datasource_table، واثنان لـ project_table. يتم استخدام العمود LastModifytime لتقسيم البيانات في الجدول datasource_table من قاعدة البيانات المصدر. الاستعلام المستخدم لقراءة القسم الأول هو 'حدد * من datasource_table حيث LastModifytime >=»2015-01-01 00:00:00» و LastModifytime <=»2015-12-31 23: 59: 59.999». يمكنك استخدام استعلام مشابه لقراءة البيانات من أقسام أخرى.

     		Create table ControlTableForTemplate
     		(
     		PartitionID int,
     		SourceTableName  varchar(255),
     		FilterQuery varchar(255)
     		);
    
     		INSERT INTO ControlTableForTemplate
     		(PartitionID, SourceTableName, FilterQuery)
     		VALUES
     		(1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''),
     		(2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''),
     		(3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''),
     		(4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'),
     		(5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');
    
  2. انتقل إلى قالب النسخ المجمع من قاعدة البيانات. إنشاء اتصال جديد إلى جدول التحكم الخارجي الذي قمت بإنشائه في الخطوة 1.

    لقطة شاشة تعرض إنشاء اتصال جديد بجدول التحكم.

  3. إنشاء اتصال جديد بقاعدة البيانات المصدر التي تقوم بنسخ البيانات منها.

    لقطة شاشة تعرض إنشاء اتصال جديد بقاعدة البيانات المصدر.

  4. إنشاء اتصال جديد إلى مخزن البيانات الوجهة الذي تقوم بنسخ البيانات إليه.

    لقطة شاشة تعرض إنشاء اتصال جديد بالمخزن الوجهة.

  5. حدد استخدام هذا القالب.

  6. ترى المسار، كما هو موضح في المثال التالي:

    لقطة شاشة تعرض البنية الأساسية لبرنامج ربط العمليات التجارية.

  7. حدد "Debug"، وأدخل المعلمات، ثم حدد "Finish".

    لقطة شاشة تعرض زر تتبع الأخطاء.

  8. تشاهد نتائج مشابهة للمثال التالي:

    لقطة شاشة تعرض نتيجة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

  9. (اختياري) إذا اخترت "Azure Synapse Analytics" كوجهة بيانات، يجب إدخال اتصال بمساحة تخزين Azure Blob لعملية التقسيم المرحلي، كما هو مطلوب من قبل Azure Synapse Analytics Polybase. سيقوم القالب تلقائياً بإنشاء مسار حاوية لتخزين الكائن الثنائي كبير الحجم الخاص بك. تحقق من إنشاء الحاوية بعد تشغيل خط التدفقات.

    لقطة شاشة تعرض إعداد Polybase.