تغيير تحويل الصف في تعيين تدفق البيانات

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

تلميح

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

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

استخدم تحويل Alter Row لتعيين سياسات الإدراج والحذف والتحديث والارتقاء بالصفوف. يمكنك إضافة شروط واحد إلى متعدد كتعبيرات. يجب تحديد هذه الشروط بترتيب الأولوية، حيث سيتم تمييز كل صف بالسياسة المقابلة لتعبير المطابقة الأول. يمكن أن يؤدي كل من هذه الشروط إلى إدراج صف (أو صفوف) أو تحديثه أو حذفه أو تكبيره. يمكن أن ينتج عن Alter Row إجراء DDL وDML على قاعدة البيانات الخاصة بك.

Alter row settings

تعمل تحويلات Alter Row فقط على قاعدة البيانات أو REST أو متلقيات Azure Cosmos DB في تدفق البيانات. لن تحدث الإجراءات التي تقوم بتعيينها للصفوف (إدراج، تحديث، حذف، رفع) أثناء جلسات تصحيح الأخطاء. قم بتشغيل نشاط "تنفيذ تدفق البيانات" في مسار لتفعيل سياسات الصف البديلة في جداول قاعدة البيانات الخاصة بك.

إشعار

لا يلزم تحويل Alter Row لتغيير تدفقات بيانات التقاط البيانات التي تستخدم مصادر CDC الأصلية مثل SQL Server أو SAP. في هذه الحالات، سيكتشف ADF تلقائيا علامة الصف بحيث تكون نهج Alter Row غير ضرورية.

حدد سياسة الصف الافتراضية

قم بإنشاء تحويل Alter Row وحدد نهج صف بشرط true(). سيتم وضع علامة على كل صف لا يتطابق مع أي من التعبيرات المحددة مسبقاً لسياسة الصف المحددة. بشكل افتراضي، سيتم وضع علامة على كل صف لا يتطابق مع أي تعبير شرطي ل Insert.

Alter row policy

إشعار

لوضع علامة على جميع الصفوف بنهج واحد، يمكنك إنشاء شرط لهذا النهج وتحديد الشرط ك true().

عرض السياسات في معاينة البيانات

استخدم وضع التصحيح لعرض نتائج نهج الصف البديلة في جزء معاينة البيانات. لن ينتج عن معاينة البيانات لتحويل الصف البديل إجراءات DDL أو DML ضد هدفك.

Alter row policies

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

السماح بتغيير سياسات الصف في التجمع

لكي تعمل نهج الصف البديلة، يجب أن يكتب دفق البيانات إلى قاعدة بيانات أو متلقي Azure Cosmos DB. في علامة التبويب الإعدادات في المتلقي الخاص بك، قم بتمكين نهج الصف البديلة المسموح بها لهذا المتلقي.

Alter row sink

السلوك الافتراضي هو السماح فقط بالإدخالات. للسماح بالتحديثات أو التنشيطات أو الحذف، حدد المربع الموجود في التجمع المقابل لهذا الشرط. إذا تم تمكين التحديثات أو التنشيطات أو الحذف، فيجب عليك تحديد أعمدة المفاتيح في التجمع التي تريد التطابق عليها.

إشعار

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

يتطلب تحويل التجمع إما مفتاحاً واحداً وإما سلسلة من المفاتيح لتعريف الصف الفريد في قاعدة البيانات الهدف. بالنسبة إلى متلقي SQL، قم بتعيين المفاتيح في علامة التبويب إعدادات المتلقي. بالنسبة إلى Azure Cosmos DB، قم بتعيين مفتاح القسم في الإعدادات وقم أيضا بتعيين حقل نظام Azure Cosmos DB "id" في تعيين المتلقي. بالنسبة إلى Azure Cosmos DB، من الضروري تضمين "معرف" عمود النظام للتحديثات و upserts والحذف.

يدمج ويزيد من خلال قاعدة بيانات Azure SQL وAzure Synapse

تدعم تدفقات البيانات عمليات الدمج مقابل قاعدة بيانات Azure SQL وتجمع قاعدة بيانات Azure Synapse (مستودع البيانات) مع خيار الإدخال والتحديث.

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

فيما يلي طرق لإصلاح ذلك:

  1. انتقل إلى إعدادات تحويل التجمع وقم بتعيين "تخطي كتابة الأعمدة الرئيسية". سيؤدي هذا إلى إخبار الخدمة بعدم كتابة العمود الذي حددته كقيمة أساسية للتعيين.

  2. إذا لم يكن عمود المفتاح هذا هو العمود الذي يسبب المشكلة لأعمدة الهوية، فيمكنك استخدام خيار SQL للمعالجة المسبقة لتحويل المتلقي: SET IDENTITY_INSERT tbl_content ON. ثم قم بإيقاف تشغيله باستخدام خاصية SQL بعد المعالجة: SET IDENTITY_INSERT tbl_content OFF.

  3. لكل من حالة الهوية وحالة عمود التوزيع، يمكنك تبديل الحالة من Upsert إلى استخدام شرط تحديث منفصل وشرط إدراج منفصل باستخدام تحويل Conditional Split. بهذه الطريقة، يمكنك تعيين التعيين على مسار التحديث لتجاهل تعيين عمود المفتاح.

البرنامج النصي لتدفق البيانات

بناء الجملة

<incomingStream>
    alterRow(
           insertIf(<condition>?),
           updateIf(<condition>?),
           deleteIf(<condition>?),
           upsertIf(<condition>?),
        ) ~> <alterRowTransformationName>

مثال

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

في واجهة المستخدم، يبدو هذا التحول مثل الصورة أدناه:

Alter row example

يوجد البرنامج النصي لتدفق البيانات لهذا التحويل في الجزء أدناه:

SpecifyUpsertConditions alterRow(insertIf(alterRowCondition == 'insert'),
	updateIf(alterRowCondition == 'update'),
	deleteIf(alterRowCondition == 'delete')) ~> AlterRow

بعد تحويل Alter Row، قد تحتاج إلى تخزين بياناتك في مخزن بيانات الوجهة.