التحويل الموجود في تعيين تدفق البيانات

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

تلميح

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

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

التحويل الموجود هو تحويل تصفية الصف الذي يتحقق مما إذا كانت بياناتك موجودة في مصدر أو دفق آخر. يتضمن دفق الإخراج جميع الصفوف في الدفق الأيسر سواء كانت موجودة أو غير موجودة في الدفق الأيمن. التحويل الموجود مشابه لـ SQL WHERE EXISTS وSQL WHERE NOT EXISTS.

التكوين

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

Exists settings

شروط متعددة موجودة

لمقارنة عدة أعمدة من كل تدفق، أضف شرطًا جديدًا موجودًا بالنقر فوق رمز علامة الجمع بجوار صف موجود. يتم ربط كل شرط إضافي بعبارة "و". المقارنة بين عمودين مماثلة للتعبير التالي:

source1@column1 == source2@column1 && source1@column2 == source2@column2

تعبير مخصص

لإنشاء تعبير حر يحتوي على عوامل تشغيل بخلاف "و" و"يساوي"، حدد الحقل التعبير المخصص. أدخل تعبيرًا مخصصًا عبر منشئ تعبير تدفق البيانات بالنقر فوق المربع الأزرق.

Exists custom settings

إذا كنت تقوم ببناء أنماط ديناميكية في تدفقات البيانات الخاصة بك باستخدام "الربط المتأخر" للأعمدة عبر انحراف المخطط، يمكنك استخدام وظيفة التعبير byName() لاستخدام التحويل الموجود دون تشفير ثابت (أي الربط المبكر) لأسماء الأعمدة. مثال: toString(byName('ProductNumber','source1')) == toString(byName('ProductNumber','source2'))

تحسين البث

Broadcast Join

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

لا يوصى بتعطيل البث عبر الخيار إيقافما لم تتعرض الصلات لأخطاء انتهاء المهلة.

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

بناء الجملة

<leftStream>, <rightStream>
    exists(
        <conditionalExpression>,
        negate: { true | false },
        broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
    ) ~> <existsTransformationName>

مثال

المثال التالي هو تحويل موجود مسمى checkForChangesوالذي يأخذ التدفق الأيسر NameNorm2والتيار الأيمن TypeConversions. الشرط الموجود هو التعبير NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region الذي يعرض صحيحًا إذا تطابق كلا العمودين EMPID وRegion في كل تدفق. بينما نتحقق من وجودنا، negate غير صحيح. لا نقوم بتمكين أي بث في علامة التبويب "تحسين"، لذا فإن broadcast له قيمة 'none'.

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

Exists example

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

NameNorm2, TypeConversions
    exists(
        NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region,
	    negate:false,
	    broadcast: 'auto'
    ) ~> checkForChanges

التحويلات المشابهة هي بحث و انضمام .