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

ينطبق على: 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

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

إشعار

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

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

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

تغيير نهج الصف

إشعار

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

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

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

تغيير نهج الصف

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

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

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

تغيير متلقي الصف

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

إشعار

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

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

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

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

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

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

  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 يحدد ما إذا كان قد تم إدراج صف أو تحديثه أو حذفه في قاعدة البيانات أم لا. إذا كانت قيمة العمود تحتوي على قيمة سلسلة تطابق قاعدة الصف البديلة، يتم تعيين هذا النهج.

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

مثال على تعديل الصف

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

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

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