التحول المحوري (Pivot) عند تعيين تدفق البيانات

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

تلميح

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

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

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

التكوين

يتطلب التحويل المحوري ثلاثة إدخالات مختلفة: التجميع حسب الأعمدة، والمفتاح المحوري، وكيفية إنشاء الأعمدة المحورية

تجميع حسب

Group by options

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

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

مفتاح عرض محوري

Pivot key

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

في القسم المسمى Value، يمكنك إدخال قيم صف معينة ليتم عرضها محوريًا. سيتم العرض المحوري لقيم الصفوف التي تم إدخالها في هذا القسم فقط. تمكين Null value سينشئ عمود عرض محوري للقيم الخالية في العمود.

العرض المحوري للأعمدة

Pivoted columns

لكل قيمة مفتاح عرض محوري فريدة تصبح عمودًا، قم بإنشاء قيمة صف مجمعة لكل مجموعة. يمكنك إنشاء أعمدة متعددة لكل مفتاح عرض محوري. يجب أن يحتوي كل عمود عرض محوري على وظيفة تجميعية واحدة على الأقل.

Column name pattern: حدد كيفية تنسيق اسم العمود لكل عمود عرض محوري. سيكون اسم العمود الناتج مزيجا من قيمة المفتاح المحوري وبادئة العمود والبادئة الاختيارية واللاحقة والأحرف الوسطى.

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

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

رسم المساعدة

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

Pivot help graphics

بيانات تعريف العرض المحوري

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

إذا تم تعيين قيم مفتاح عرض محوري معينة، ستظهر الأعمدة المحورية في بيانات التعريف. أسماء الأعمدة ستكون متوفرة لك في تعيين الفحص والمتلقي.

إنشاء بيانات تعريف من أعمدة منحرفة

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

Pivot columns

تلقي الأعمدة المحورية

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

إعادة الضم إلى الحقول الأصلية

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

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

بناء الجملة

<incomingStreamName>
    pivot(groupBy(Tm),
        pivotBy(<pivotKeyColumn, [<specifiedColumnName1>,...,<specifiedColumnNameN>]),
        <pivotColumnPrefix> = <pivotedColumnValue>,
        columnNaming: '< prefix >< $N | $V ><middle >< $N | $V >< suffix >',
        lateral: { 'true' | 'false'}
    ) ~> <pivotTransformationName

مثال

الشاشات المعروضة في قسم التكوين، لديها البرنامج النصي لتدفق البيانات التالية:

BasketballPlayerStats pivot(groupBy(Tm),
    pivotBy(Pos),
    {} = count(),
    columnNaming: '$V$N count',
    lateral: true) ~> PivotExample

جرب التحويل غير المحوري لتحويل قيم الأعمدة إلى قيم صف.