نسخة دلتا من قاعدة بيانات مع جدول تحكم
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تصف هذه المقالة قالباً متاحاً للتحميل المتزايد للصفوف الجديدة أو المحدثة من جدول قاعدة بيانات إلى Azure باستخدام جدول تحكم خارجي يخزن قيمة علامة مائية عالية.
يتطلب هذا القالب أن يحتوي مخطط قاعدة البيانات المصدر على عمود طابع زمني أو مفتاح متزايد لتعريف الصفوف الجديدة أو المحدثة.
إشعار
إذا كان لديك عمود طابع زمني في قاعدة بيانات المصدر لتحديد الصفوف الجديدة أو المحدثة ولكنك لا تريد إنشاء جدول تحكم خارجي لاستخدامه لنسخ دلتا، يمكنك بدلاً من ذلك استخدام أداة نسخ بيانات مصنع Azure للحصول على البنية الأساسية. تستخدم هذه الأداة وقتاً مجدولاً كمتغير لقراءة الصفوف الجديدة من قاعدة البيانات المصدر.
حول قالب الحل هذا
يسترد هذا القالب أولاً قيمة العلامة المائية القديمة ويقارنها بقيمة العلامة المائية الحالية. بعد ذلك، يقوم بنسخ التغييرات من قاعدة البيانات المصدر فقط، بناءً على مقارنة بين قيمتي العلامة المائية. أخيراً، يخزن قيمة العلامة المائية الجديدة العالية في جدول تحكم خارجي لتحميل بيانات دلتا في المرة القادمة.
يحتوي القالب على أربعة أنشطة:
- يسترد البحث قيمة العلامة المائية القديمة التي تم تخزينها في جدول تحكم خارجي.
- يسترد نشاط بحث آخر قيمة العلامة المائية العالية الحالية من قاعدة البيانات المصدر.
- نسخ ينسخ التغييرات فقط من قاعدة البيانات المصدر إلى المخزن الوجهة. الاستعلام الذي يحدد التغييرات في قاعدة البيانات المصدر يشبه 'SELECT * FROM Data_Source_Table WHERE TIMESTAMP_Column > “last high-watermark” and TIMESTAMP_Column <= “current high-watermark”'.
- يكتب SqlServerStoredProcedure القيمة الحالية للعلامة المائية العالية إلى جدول تحكم خارجي لنسخ دلتا في المرة القادمة.
يحدد القالب المعلمات التالية:
- Data_Source_Table_Name هو الجدول الموجود في قاعدة البيانات المصدر الذي تريد تحميل البيانات منه.
- Data_Source_WaterMarkColumn هو اسم العمود الموجود في الجدول المصدر والذي يُستخدم لتحديد الصفوف الجديدة أو المحدثة. عادةً ما يكون نوع هذا العمود هو التاريخ والوقت أو INT أو ما شابه ذلك.
- Data_Destination_Container هو المسار الجذر للمكان الذي يتم نسخ البيانات إليه في المتجر الوجهة.
- Data_Destination_Directory هو مسار الدليل الموجود أسفل جذر المكان الذي تم نسخ البيانات إليه في المتجر الوجهة.
- Data_Destination_Table_Name هو المكان الذي يتم نسخ البيانات إليه في المتجر الوجهة (ينطبق عند تحديد "Azure Synapse Analytics" كوجهة بيانات).
- Data_Destination_Folder_Path هو المكان الذي يتم نسخ البيانات إليه في المخزن الوجهة (ينطبق عند تحديد "نظام الملفات" أو "Azure Data Lake Storage Gen1" كوجهة بيانات).
- Control_Table_Table_Name هو جدول التحكم الخارجي الذي يخزن القيمة العالية للعلامة المائية.
- Control_Table_Column_Name هو العمود الموجود في جدول التحكم الخارجي الذي يخزن قيمة العلامة المائية العالية.
كيفية استخدام قالب الحل هذا
استكشف الجدول المصدر الذي تريد تحميله، وحدد عمود العلامة المائية العالية الذي يمكن استخدامه لتحديد الصفوف الجديدة أو المحدثة. قد يكون نوع هذا العمود datetime أو INT أو ما شابه ذلك. تزداد قيمة هذا العمود كلما تمت إضافة صفوف جديدة. من نموذج الجدول التالي (data_source_table)، يمكننا استخدام العمود LastModifytime كعمود ذو علامة مائية عالية.
PersonID Name LastModifytime 1 aaaa 2017-09-01 00:56:00.000 2 bbbb 2017-09-02 05:23:00.000 3 cccc 2017-09-03 02:36:00.000 4 dddd 2017-09-04 03:21:00.000 5 eeee 2017-09-05 08:06:00.000 6 fffffff 2017-09-06 02:23:00.000 7 gggg 2017-09-07 09:01:00.000 8 hhhh 2017-09-08 09:01:00.000 9 iiiiiiiii 2017-09-09 09:01:00.000
أنشئ جدول تحكم في SQL Server أو قاعدة بيانات Azure SQL لتخزين قيمة العلامة المائية العالية لتحميل بيانات دلتا. في المثال التالي، اسم جدول التحكم هو watermarktable . في هذا الجدول، WatermarkValue هو العمود الذي يخزن قيمة العلامة المائية العالية، ونوعها هو datetime .
create table watermarktable ( WatermarkValue datetime, ); INSERT INTO watermarktable VALUES ('1/1/2010 12:00:00 AM')
قم بإنشاء إجراء مخزن في نفس مثيل SQL Server أو مثيل قاعدة بيانات Azure SQL الذي استخدمته لإنشاء جدول التحكم. يتم استخدام الإجراء المخزن لكتابة قيمة العلامة المائية الجديدة العالية إلى جدول التحكم الخارجي لتحميل بيانات دلتا في المرة القادمة.
CREATE PROCEDURE update_watermark @LastModifiedtime datetime AS BEGIN UPDATE watermarktable SET [WatermarkValue] = @LastModifiedtime END
انتقل إلى قالب نسخة دلتا من قاعدة البيانات . قم بإنشاء اتصال جديد بقاعدة البيانات المصدر التي تريد نسخ البيانات منها.
قم بإنشاء اتصال جديد بمخزن البيانات الوجهة الذي تريد نسخ البيانات إليه.
قم بإنشاء اتصال جديد بجدول التحكم الخارجي والإجراء المخزن الذي قمت بإنشائه في الخطوتين 2 و3.
حدد استخدام هذا القالب.
راجع البنية الأساسية المتاحة، كما موضح في المثال التالي:
حدد إجراء مخزن . بالنسبة إلى اسم الإجراء المخزن ، اختر [dbo]. [update_watermark] . حدد استيراد معلمة ، ثم حدد إضافة محتوى ديناميكي .
اكتب المحتوى @{activity('LookupCurrentWaterMark').output.firstRow.NewWatermarkValue} ثم حدد Finish.
حدد "Debug"، وأدخل المعلمات، ثم حدد "Finish".
يتم عرض نتائج مشابهة للمثال التالي:
يمكنك إنشاء صفوف جديدة في الجدول المصدر الخاص بك. فيما يلي نموذج للغة SQL لإنشاء صفوف جديدة:
INSERT INTO data_source_table VALUES (10, 'newdata','9/10/2017 2:23:00 AM') INSERT INTO data_source_table VALUES (11, 'newdata','9/11/2017 9:01:00 AM')
لتشغيل خط الأنابيب مرة أخرى، حدد تصحيح ، وأدخل المعلمات ، ثم حدد إنهاء .
ستلاحظ أنه تم نسخ الصفوف الجديدة فقط إلى الوجهة.
(اختياري :) إذا حددت Azure Synapse Analytics كوجهة للبيانات، فيجب عليك أيضاً توفير اتصال بتخزين Azure Blob للتشغيل المرحلي، وهو ما يتطلبه Azure Synapse Analytics Polybase. سيقوم القالب بإنشاء مسار حاوية لك. بعد تشغيل البنية الأساسية، تحقق مما إذا كان قد تم إنشاء الحاوية في تخزين Blob.
المحتوى ذو الصلة
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ