التحويل الموجود في تعيين تدفق البيانات
ينطبق على:Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تتوفر تدفقات البيانات في كل من Azure Data Factory وخطوط أنابيب Azure Synapse. تنطبق هذه المقالة على تعيين تدفقات البيانات. إذا كنت جديداً في مجال التحويلات، فيرجى الرجوع إلى المقالة التمهيدية تحويل البيانات باستخدام تدفق بيانات التعيين.
التحويل الموجود هو تحويل تصفية الصف الذي يتحقق مما إذا كانت بياناتك موجودة في مصدر أو دفق آخر. يتضمن دفق الإخراج جميع الصفوف في الدفق الأيسر سواء كانت موجودة أو غير موجودة في الدفق الأيمن. التحويل الموجود مشابه لـ SQL WHERE EXISTS
وSQL WHERE NOT EXISTS
.
التكوين
- اختر تدفق البيانات الذي تتحقق من وجوده في القائمة المنسدلة التدفق الصحيح.
- حدد ما إذا كنت تبحث عن البيانات لتوجد أم لا في إعداد نوع الوجود.
- حدد ما إذا كنت تريد تعبيرًا مخصصًا أم لا.
- اختر الأعمدة الرئيسية التي تريد مقارنتها بشروطك الموجودة. بشكل افتراضي، يبحث تدفق البيانات عن المساواة بين عمود واحد في كل تدفق. للمقارنة عبر قيمة محسوبة، مرر الماوس فوق القائمة المنسدلة للعمود وحدد العمود المحسوب.
شروط متعددة موجودة
لمقارنة عدة أعمدة من كل تدفق، أضف شرطًا جديدًا موجودًا بالنقر فوق رمز علامة الجمع بجوار صف موجود. يتم ربط كل شرط إضافي بعبارة "و". المقارنة بين عمودين مماثلة للتعبير التالي:
source1@column1 == source2@column1 && source1@column2 == source2@column2
تعبير مخصص
لإنشاء تعبير حر يحتوي على عوامل تشغيل بخلاف "و" و"يساوي"، حدد الحقل التعبير المخصص. أدخل تعبيرًا مخصصًا عبر منشئ تعبير تدفق البيانات بالنقر فوق المربع الأزرق.
إذا كنت تقوم ببناء أنماط ديناميكية في تدفقات البيانات الخاصة بك باستخدام "الربط المتأخر" للأعمدة عبر انحراف المخطط، يمكنك استخدام وظيفة التعبير byName()
لاستخدام التحويل الموجود دون تشفير ثابت (أي الربط المبكر) لأسماء الأعمدة. مثال: toString(byName('ProductNumber','source1')) == toString(byName('ProductNumber','source2'))
تحسين البث
في عمليات الصلات وعمليات البحث والتحويل الموجود، إذا كان أحد تدفقات البيانات أو كلاهما يتناسب مع ذاكرة العقدة العاملة، فيمكنك تحسين الأداء عن طريق تمكين البث . بشكل افتراضي، سيقرر محرك الشرارة تلقائياً ما إذا كان سيتم بث جانب واحد أم لا. لاختيار جانب البث يدوياً، حدد ثابت .
لا يوصى بتعطيل البث عبر الخيار إيقافما لم تتعرض الصلات لأخطاء انتهاء المهلة.
البرنامج النصي لتدفق البيانات
بناء الجملة
<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'
.
في تجربة واجهة المستخدم، يبدو هذا التحول مثل الصورة أدناه:
يوجد البرنامج النصي لتدفق البيانات لهذا التحويل في الجزء أدناه:
NameNorm2, TypeConversions
exists(
NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region,
negate:false,
broadcast: 'auto'
) ~> checkForChanges