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

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

تلميح

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

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

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

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

تعيين ثابت

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

Fixed mapping

إشعار

لا يمكنك تعيين عمود منحرف أو إعادة تسميته باستخدام تعيين ثابت

تعيين أعمدة هرمية

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

hierarchical mapping

التعيين المسند للقواعد

إذا كنت ترغب في تعيين العديد من الأعمدة مرة واحدة أو تمرير أعمدة منحرفة في اتجاه مجرى النهر، فاستخدم التعيين المستند إلى القواعد لتحديد التعيينات باستخدام أنماط الأعمدة. تستند المطابقة إلى name وtype وstream وposition من الأعمدة. يمكنك الحصول على أي مجموعة من التعيينات الثابتة والمعتمدة على القواعد. بشكل افتراضي، ستتحول جميع الإسقاطات التي تحتوي على أكبر من 50 عموداً إلى تعيين قائم على القواعد يتطابق مع كل عمود ويخرج الاسم المُدخل.

لإضافة تعيين مستند إلى القواعد، انقر فوق إضافة تعيين وحدد تعيين مستند إلى القواعد .

Screenshot shows Rule-based mapping selected from Add mapping.

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

Screenshot shows a mapping.

استخدم بناء الجملة $$ للإشارة إلى اسم الإدخال لعمود مطابق. باستخدام الصورة أعلاه كمثال، لنفترض أن المستخدم يريد التطابق في جميع أعمدة السلسلة التي تكون أسماؤها أقصر من ستة أحرف. إذا تم تسمية عمود وارد واحد باسم test، فسيعيد التعبير $$ + '_short' تسمية العمود test_short. إذا كان هذا هو التعيين الوحيد الموجود، فسيتم إسقاط جميع الأعمدة التي لا تفي بالشرط من البيانات الناتجة.

تتطابق الأنماط مع كل من الأعمدة المنحرفة والمحددة. لمعرفة الأعمدة المحددة التي تم تعيينها بواسطة قاعدة، انقر فوق رمز النظارات بجوار القاعدة. تحقق من مخرجاتك باستخدام معاينة البيانات.

تخطيط Regex

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

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

يتطابق المثال أعلاه مع نمط regex (r) أو أي اسم عمود يحتوي على حرف r صغير. على غرار التعيين القياسي المستند إلى القواعد، يتم تغيير جميع الأعمدة المتطابقة حسب الشرط الموجود على اليمين باستخدام بناء الجملة $$.

إذا كان لديك العديد من مطابقات regex في اسم العمود الخاص بك، فيمكنك الرجوع إلى مطابقات محددة باستخدام $n حيث يشير "n" إلى المطابقة. على سبيل المثال، يشير "$2" إلى المطابقة الثانية داخل اسم العمود.

التسلسلات الهرمية المعتمدة على القواعد

إذا كان الإسقاط المحدد الخاص بك يحتوي على تسلسل هرمي، فيمكنك استخدام التعيين المستند إلى القواعد لتعيين الأعمدة الفرعية للتسلسلات الهرمية. حدد شرطاً مطابقاً والعمود المعقد الذي ترغب في تعيين أعمدته الفرعية. سيتم إخراج كل عمود فرعي متطابق باستخدام قاعدة "الاسم كـ" المحددة على اليمين.

Screenshot shows a rule-based mapping using for a hierarchy.

يتطابق المثال أعلاه مع جميع الأعمدة الفرعية للعمود المركب a. يحتوي a على عمودين فرعيين b وc. سيتضمن مخطط الإخراج عمودين b وc حيث أن شرط "الاسم كـ" هو $$.

تعريف المحددات

يمكنك تحديد معلمات أسماء الأعمدة باستخدام التعيين المستند إلى القواعد. استخدم الكلمة الأساسية name لمطابقة أسماء الأعمدة الواردة مع معلمة. على سبيل المثال، إذا كان لديك معلمة تدفق بيانات mycolumn، فيمكنك إنشاء قاعدة تطابق أي اسم عمود يساوي mycolumn. يمكنك إعادة تسمية العمود المطابق إلى سلسلة مضمّنة مثل "مفتاح العمل" والإشارة إليه صراحة. في هذا المثال، يكون شرط المطابقة name == $mycolumn وشرط الاسم هو «مفتاح العمل».

التعيين التلقائي

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

Auto mapping

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

أعمدة مكررة

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

Skip Duplicates

ترتيب الأعمدة

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

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

بناء الجملة

<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>

مثال

يوجد أدناه مثال على تعيين التحديد والنص البرمجي لتدفق البيانات الخاص به:

Select script example

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 لإيصال بياناتك إلى مخزن بيانات.