التحويل المحدد في تعيين تدفق البيانات
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
تتوفر تدفقات البيانات في كل من Azure Data Factory وخطوط أنابيب Azure Synapse. تنطبق هذه المقالة على تعيين تدفقات البيانات. إذا كنت جديداً في مجال التحويلات، فيرجى الرجوع إلى المقالة التمهيدية تحويل البيانات باستخدام تدفق بيانات التعيين.
استخدم التحويل المحدد لإعادة تسمية الأعمدة أو إسقاطها أو إعادة ترتيبها. لا يغير هذا التحويل بيانات الصفوف، ولكنه يختار الأعمدة التي يتم نشرها في اتجاه متلقي المعلومات.
في التحويل المحدد، يمكن للمستخدمين تحديد التعيينات الثابتة أو استخدام الأنماط لإجراء التعيين المستند إلى القواعد أو تمكين التعيين التلقائي. يمكن استخدام تعيينات ثابتة وقائمة على قاعدة ضمن نفس التحويل المحدد. إذا لم يتطابق العمود مع أحد التعيينات المعرفة، سيتم تقطيعه.
تعيين ثابت
إذا كان هناك أقل من 50 عمودًا محددًا في الإسقاط الخاص بك، فسيكون لكل الأعمدة المحددة تعيين ثابت بشكل افتراضي. يأخذ التعيين الثابت عمودًا محددًا واردًا ويعينه اسمًا دقيقًا.
إشعار
لا يمكنك تعيين عمود منحرف أو إعادة تسميته باستخدام تعيين ثابت
تعيين أعمدة هرمية
يمكن استخدام التعيينات الثابتة لتعيين عمود فرعي لعمود متدرج إلى عمود المستوى الأعلى. إذا كان لديك تسلسل هرمي محدد، فاستخدم قائمة العمود المنسدلة لتحديد عمود فرعي. سيُنشئ التحويل المحدد عمودًا جديدًا بالقيمة ونوع البيانات للعمود الفرعي.
التعيين المسند للقواعد
إذا كنت ترغب في تعيين العديد من الأعمدة مرة واحدة أو تمرير أعمدة منحرفة في اتجاه مجرى النهر، فاستخدم التعيين المستند إلى القواعد لتحديد التعيينات باستخدام أنماط الأعمدة. تستند المطابقة إلى name
وtype
وstream
وposition
من الأعمدة. يمكنك الحصول على أي مجموعة من التعيينات الثابتة والمعتمدة على القواعد. بشكل افتراضي، ستتحول جميع الإسقاطات التي تحتوي على أكبر من 50 عموداً إلى تعيين قائم على القواعد يتطابق مع كل عمود ويخرج الاسم المُدخل.
لإضافة تعيين مستند إلى القواعد، انقر فوق إضافة تعيين وحدد تعيين مستند إلى القواعد .
يتطلب كل تعيين قائم على القواعد مدخلين: الشرط الذي يتم التطابق به وماذا يتم تسمية كل عمود معيّن. يتم إدخال كلا القيمتين عبر منشئ التعبير . في مربع التعبير الأيسر، أدخل شرط المطابقة المنطقية. في مربع التعبير الأيمن، حدد ما سيتم تعيين العمود المتطابق إليه.
استخدم بناء الجملة $$
للإشارة إلى اسم الإدخال لعمود مطابق. باستخدام الصورة أعلاه كمثال، لنفترض أن المستخدم يريد التطابق في جميع أعمدة السلسلة التي تكون أسماؤها أقصر من ستة أحرف. إذا تم تسمية عمود وارد واحد باسم test
، فسيعيد التعبير $$ + '_short'
تسمية العمود test_short
. إذا كان هذا هو التعيين الوحيد الموجود، فسيتم إسقاط جميع الأعمدة التي لا تفي بالشرط من البيانات الناتجة.
تتطابق الأنماط مع كل من الأعمدة المنحرفة والمحددة. لمعرفة الأعمدة المحددة التي تم تعيينها بواسطة قاعدة، انقر فوق رمز النظارات بجوار القاعدة. تحقق من مخرجاتك باستخدام معاينة البيانات.
تخطيط Regex
إذا نقرت على رمز الرتبة المتجه لأسفل، فيمكنك تحديد شرط تعيين التعبير العادي. يتطابق شرط تعيين regex مع جميع أسماء الأعمدة التي تطابق شرط regex المحدد. يمكن استخدام هذا مع التعيينات القياسية المستندة إلى القواعد.
يتطابق المثال أعلاه مع نمط regex (r)
أو أي اسم عمود يحتوي على حرف r صغير. على غرار التعيين القياسي المستند إلى القواعد، يتم تغيير جميع الأعمدة المتطابقة حسب الشرط الموجود على اليمين باستخدام بناء الجملة $$
.
إذا كان لديك العديد من مطابقات regex في اسم العمود الخاص بك، فيمكنك الرجوع إلى مطابقات محددة باستخدام $n
حيث يشير "n" إلى المطابقة. على سبيل المثال، يشير "$2" إلى المطابقة الثانية داخل اسم العمود.
التسلسلات الهرمية المعتمدة على القواعد
إذا كان الإسقاط المحدد الخاص بك يحتوي على تسلسل هرمي، فيمكنك استخدام التعيين المستند إلى القواعد لتعيين الأعمدة الفرعية للتسلسلات الهرمية. حدد شرطاً مطابقاً والعمود المعقد الذي ترغب في تعيين أعمدته الفرعية. سيتم إخراج كل عمود فرعي متطابق باستخدام قاعدة "الاسم كـ" المحددة على اليمين.
يتطابق المثال أعلاه مع جميع الأعمدة الفرعية للعمود المركب a
. يحتوي a
على عمودين فرعيين b
وc
. سيتضمن مخطط الإخراج عمودين b
وc
حيث أن شرط "الاسم كـ" هو $$
.
تعريف المحددات
يمكنك تحديد معلمات أسماء الأعمدة باستخدام التعيين المستند إلى القواعد. استخدم الكلمة الأساسية name
لمطابقة أسماء الأعمدة الواردة مع معلمة. على سبيل المثال، إذا كان لديك معلمة تدفق بيانات mycolumn
، فيمكنك إنشاء قاعدة تطابق أي اسم عمود يساوي mycolumn
. يمكنك إعادة تسمية العمود المطابق إلى سلسلة مضمّنة مثل "مفتاح العمل" والإشارة إليه صراحة. في هذا المثال، يكون شرط المطابقة name == $mycolumn
وشرط الاسم هو «مفتاح العمل».
التعيين التلقائي
عند إضافة تحويل تحديد، يمكن تمكين التعيين التلقائي عن طريق تبديل شريط تمرير التعيين التلقائي. مع التعيين التلقائي، يقوم التحويل المحدد بتعيين كافة الأعمدة الواردة، باستثناء التكرارات، بنفس اسم إدخالها. وهذا سيتضمن أعمدة منحرفة، مما يعني أن بيانات الإخراج قد تحتوي على أعمدة غير محددة في المخطط الخاص بك. لمزيد من المعلومات حول الأعمدة المنجرفة، راجع انجراف المخطط.
مع تشغيل التعيين التلقائي، سيحترم التحويل المحدد تخطي الإعدادات المكررة ويوفر اسمًا مستعارًا جديدًا للأعمدة الحالية. يكون الاسم المستعار مفيدًا عند إجراء عمليات صلات أو عمليات بحث متعددة في نفس الدفق وفي سيناريوهات الانضمام الذاتي.
أعمدة مكررة
بشكل افتراضي، يقوم تحويل التحديد بإسقاط الأعمدة المكررة في كل من إسقاط الإدخال والإخراج. غالبًا ما تأتي أعمدة الإدخال المكررة من تحولات الربط والبحث حيث يتم تكرار أسماء الأعمدة على كل جانب من جوانب الصلة. يمكن أن تحدث أعمدة الإخراج المكررة إذا قمت بتعيين عمودين مختلفين للإدخال لنفس الاسم. اختر ما إذا كنت تريد إسقاط الأعمدة المكررة أو تمريرها عن طريق تبديل خانة الاختيار.
ترتيب الأعمدة
يحدد ترتيب التعيينات ترتيب أعمدة الإخراج. إذا تم تعيين عمود إدخال عدة مرات، فسيتم استخدام التعيين الأول فقط. بالنسبة لأي إسقاط عمود مكرر، سيتم الاحتفاظ بالمطابقة الأولى.
البرنامج النصي لتدفق البيانات
بناء الجملة
<incomingStream>
select(mapColumn(
each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
<fixedColumn>, ## fixed mapping, no rename
<renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
),
skipDuplicateMapInputs: { true | false },
skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>
مثال
يوجد أدناه مثال على تعيين التحديد والنص البرمجي لتدفق البيانات الخاص به:
DerivedColumn1 select(mapColumn(
each(a, match(true())),
movie,
title1 = title,
each(match(name == 'Rating')),
each(patternMatch(`(y)`),
$1 + 'regex' = $$)
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> Select1
المحتوى ذو الصلة
- بعد استخدام أعمدة التحديد لإعادة التسمية وإعادة الترتيب والاسم المستعار، استخدم تحويل Sink لإيصال بياناتك إلى مخزن بيانات.