تحويل التطبيع في المعلوماتية مع المثال

⚡ ملخص ذكي

يُعد تحويل Normalizer في Informatica تحويلًا نشطًا يحول صفًا واحدًا يحتوي على أعمدة متكررة إلى صفوف متعددة، كما أنه يُنشئ أعمدة المفاتيح التي تحدد كل ظهور ينتجه.

  • 🔁 صفوف خارج الأعمدة: تتحول أربعة أعمدة مبيعات ربع سنوية في صف المصدر الواحد إلى أربعة صفوف مستهدفة، صف واحد لكل ربع سنة.
  • 🔢 الأحداث هي التي تحرك كل شيء: تحدد قيمة Occurs في علامة التبويب Normalizer عدد منافذ الإدخال وعدد صفوف الإخراج التي يتم إنشاؤها.
  • 🧪 مثال عملي: خريطة ستةping تقوم خطوات المصمم بنقل ملف sales_source المسطح إلى جدول sales_target من خلال عملية التحويل nrm_sales.
  • 🔑 المنافذ المُنشأة: تقوم الدالة GK_ بإرجاع مفتاح متزايد لكل صف مصدر، بينما تقوم الدالة GCID_ بإرجاع فهرس التكرار من 1 إلى N.
  • 🗂️ نكهتان: يقوم برنامج VSAM Normalizer بقراءة مصادر COBOL، بينما يقوم برنامج pipeline Normalizer بمعالجة البيانات العلائقية وبيانات الملفات المسطحة.
  • ⚠️ فخ شائع: يؤدي تعيين قيمة "Occurs" على عمود ذي تكرار واحد، أو تركها عند الصفر لعمود متكرر، إلى تعطيل قائمة المنافذ.

التحول الطبيعي في المعلوماتية

ما هو التحول الطبيعي؟

المُعَدِّل هو تحويل نشط يُستخدم لتحويل صف واحد إلى عدة صفوف والعكس. إنه طريقة ذكية لعرض بياناتك بشكل أكثر تنظيمًا.

إذا احتوى صف واحد على بيانات متكررة في أعمدة متعددة، فيمكن تقسيمه إلى صفوف متعددة. أحيانًا تتكرر البيانات في أعمدة متعددة. على سبيل المثال:

اسم الطالب درجة الصف 9 درجة الصف 10 درجة الصف 11 درجة الصف 12
طالب 1 50 60 65 80
طالب 2 70 64 83 77

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

اسم الطالب الفئه العلامة
طالب 1 9 50
طالب 1 10 60
طالب 1 11 65
طالب 1 12 80
طالب 2 9 70
طالب 2 10 64
طالب 2 11 83
طالب 2 12 77

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

كيفية استخدام تحويل Normalizer في برنامج Informatica

الخطوات الست التالية تُنشئ خريطةping يقوم هذا البرنامج بقراءة ملف مسطح يحتوي على مبيعات المتجر الفصلية وكتابة صف واحد مستهدف لكل فصل دراسي.

الخطوة 1) قم بإنشاء الجدول المصدر "sales_source" والجدول المستهدف "sales_target" باستخدام البرنامج النصي واستيرادهما المعلوماتيّة.

قم بتنزيل ملف Sales_Source.txt أعلاه

الخطوة 2) أنشئ خريطةping بوجود مصدر "sales_source" وجدول هدف "sales_target". الخريطةping ثم تحتوي لوحة التصميم على تعريف المصدر، مؤهل المصدر والتعريف المستهدف.

خريطةping لوحة تصميم تحتوي على تعريف مصدر المبيعات، ومؤهل المصدر الخاص به، وجدول هدف المبيعات

الخطوة 3) من قائمة التحويل، أنشئ تحويلاً جديداً. في نافذة إنشاء التحويل:

  1. حدد Normalizer كتحويل
  2. أدخل الاسم "nrm_sales"
  3. حدد خيار الإنشاء

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

أنشئ نافذة تحويل مع تحديد Normalizer وإدخال الاسم nrm_sales

الخطوة 4) سيتم إنشاء التحويل، حدد خيار "تم". يوجد الآن تحويل nrm_sales الفارغ على اللوحة بين مُؤهِّل المصدر والهدف.

خريطةping لوحة عرض توضح تحويل nrm_sales Normalizer الذي تم إنشاؤه حديثًا بدون أعمدة حتى الآن

الخطوة 5) Double انقر على تحويل Normalizer، ثم:

  1. حدد علامة التبويب Normalizer
  2. انقر على الأيقونة لإنشاء عمودين
  3. أدخل أسماء الأعمدة
  4. قم بتعيين رقم التكرار إلى 4 للمبيعات و0 لاسم المتجر
  5. حدد زر موافق

تُعدّ قيمة "التكرار" أهم عنصر في هذه الصفحة، فهي تُخبر المصمم بعدد مرات تكرار العمود في صف المصدر الواحد. يظهر اسم المتجر مرة واحدة في كل صف، لذا تبقى قيمة "التكرار" الخاصة به عند 0.

في علامة تبويب "المُعَدِّل" في نافذة "تحرير التحويلات"، اضبط عمود المبيعات على أربع مرات واسم المتجر على صفر.

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

قائمة المنافذ المُنشأة لـ nrm_sales تُظهر أربعة منافذ إدخال مبيعات بالإضافة إلى منفذي GK و GCID

الخطوة 6) ثم في رسم خريطةping:

  1. قم بربط الأعمدة الأربعة لمؤهل المصدر للربع الرابع بأعمدة أداة التسوية على التوالي.
  2. ربط عمود اسم المتجر بعمود التسوية
  3. قم بربط اسم_المتجر وأعمدة المبيعات من أداة التسوية إلى الجدول المستهدف
  4. ربط عمود GK_sales من أداة التسوية إلى الجدول المستهدف

بمجرد رسم كل وصلة، تصبح الخريطة مكتملةping يبدو مثل هذا.

خريطة مكتملةping مع ربط منافذ الأرباع الأربعة واسم المتجر بـ nrm_sales، ومنافذ store_name وsales وGK_sales بـ sales_target

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

مخرجات خريطتناping سيكون الأمر أشبه بـ

اسم المتجر ربع مبيعة
DELHI 1 150
DELHI 2 240
DELHI 3 455
DELHI 4 100
MUMBAI 1 100
MUMBAI 2 500
MUMBAI 3 350
MUMBAI 4 340

احتوت بيانات المصدر على أعمدة متكررة هي QUARTER1 وQUARTER2 وQUARTER3 وQUARTER4. وباستخدام أداة Normalizer، قمنا بإعادة ترتيب البيانات لتناسب عمودًا واحدًا هو QUARTER، وبذلك يتم إنشاء أربعة سجلات لكل سجل في المصدر في الهدف.

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

منافذ وخصائص تحويل المُعَيِّر

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

منفذ أو سمة ماذا يفعل
يحدث عدد مرات ظهور العمود في صف واحد من المصدر. تشير القيمة 0 إلى عمود يظهر مرة واحدة فقط، مثل اسم المتجر.
مستوى يُجمّع الأعمدة في تسلسل هرمي للسجلات. يُستخدم هذا الخيار لمصادر COBOL ويبقى عند 0 للهيكل المسطح.
مدخلات الإدخال يقوم مُنظِّم خط الأنابيب بإنشاء منفذ إدخال واحد لكل تكرار، لذا فإن قيمة التكرار 4 تُنتج أربعة منافذ إدخال.
منفذ إخراج يحتوي العمود متعدد الظهور على منفذ إخراج واحد يُرجع صفًا واحدًا لكل ظهور.
GK_ المفتاح المُنشأ. تقوم خدمة التكامل بزيادة رقم التسلسل هذا في كل مرة تعالج فيها صفًا من المصدر.
GCID_ معرف العمود المُنشأ. وهو فهرس الظهور، لذا فإن العمود الذي يظهر أربع مرات يُرجع 1 أو 2 أو 3 أو 4.

من المهم تذكر الفرق بين المنفذين المُنشأين، فكلاهما يبدو كعداد. يبدأ GCID من جديد عند 1 لكل صف مصدر، بينما يستمر GK في التزايد طوال الجلسة. في خريطة المبيعاتping، GK_sales هو المنفذ المرتبط بالهدف، لذا فإن كل صف من صفوف الإخراج الثمانية يحمل مفتاحًا مميزًا.

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

مقارنة بين مُعَدِّل VSAM ومُعَدِّل خط الأنابيب

يُوفر برنامج PowerCenter نسختين من نفس عملية التحويل، ويستخدم المثال أعلاه النسخة الثانية. ويتم تحديد اختيار النسخة المناسبة بناءً على المصدر فقط.

البعد مُعدِّل VSAM مُعَدِّل خط الأنابيب
الدور في الخريطةping يعمل كمؤهل المصدر لتعريف مصدر COBOL يوجد في أي مكان في خط الأنابيب، بعد مُؤهِّل المصدر العادي
كيف يتم إنشاؤه يتم إنشاؤها تلقائيًا عند سحب مصدر COBOL إلى الخريطةping تم إنشاؤها من قائمة التحويل، كما هو موضح في الخطوة 3 أعلاه
منافذ إدخال لعمود متكرر منفذ إدخال واحد للعمود المتعدد التكرار بأكمله منفذ إدخال واحد لكل ظهور للعمود
تحرير الأعمدة قم بتغيير مصدر COBOL وأعد إنشاء التحويل يمكنك تعديل الأعمدة في علامة التبويب "المُعَدِّل" في أي وقت
البيانات النموذجية ملفات الحاسوب المركزي باستخدام عبارات OCCURS وREDEFINES تكرار الأعمدة في الجداول العلائقية والملفات المسطحة

يمكن لملف COBOL أيضًا أن يحتوي على عدة أنواع من السجلات في نفس الملف الفعلي، ولهذا السبب يقرأ إصدار VSAM ملف نسخ بدلاً من قائمة أعمدة. للاستخدام اليومي ETL عند التعامل مع قواعد البيانات والملفات المحددة، فإن أداة "مُعَدِّل خط الأنابيب" هي الأداة التي يجب اللجوء إليها.

أخطاء تحويل المُعَيِّر الشائعة وكيفية إصلاحها

معظم مشاكل المُعَدِّل tracنعود إلى إعدادين أو ثلاثة. تتضمن القائمة أدناه الإعدادات التي تظهر في أغلب الأحيان أثناء التطوير.

  • قائمة المنافذ لا تتطابق مع المصدر. عدد منافذ الإدخال قليل جدًا أو كثير جدًا يعني غالبًا أن قيمة Occurs غير صحيحة. أعد فتح علامة تبويب Normalizer واضبط قيمة Occurs على العدد الدقيق للأعمدة المتكررة، ثم أعد ربط الخريطة.pingلأن تغيير Occurs يعيد بناء المنافذ.
  • يظهر في عمود واحد. يؤدي إعطاء اسم المتجر قيمة "تكرار" أكبر من صفر إلى تكرار صفوف لم يكن من المفترض أن تتكرر أصلاً. أما الأعمدة التي تظهر مرة واحدة فتبقى قيمتها صفر.
  • لا يمكن تعريف أعمدة التاريخ. تقبل علامة التبويب Normalizer أعمدة String و Nstring و Number فقط، لذلك يجب نقل التاريخ كسلسلة نصية وتحويله في تحويل Expression قبل أن يصل إلى الهدف.
  • عدد الصفوف يبدو خاطئاً في سجل الجلسة. قراءة صفين من المصدر وكتابة ثمانية صفوف من الهدف هو سلوك صحيح لقيمة Occurs تساوي 4، وليس عيبًا. إن خاصية Normalizer نشطة تحديدًا لأن هذه الأعداد مختلفة.
  • تتكرر المفاتيح المُولّدة أو تقفز بين عمليات التشغيل. هذا هو زوج إعادة الضبط وإعادة التشغيل في علامة تبويب الخصائص. تعمل إعادة التشغيل على إعادة التسلسل إلى 1 لكل جلسة، وهو أمر نادرًا ما يكون مرغوبًا فيه عندما يتم وضع المفتاح في جدول المستودع.
  • لن يتم حفظ التعديلات التي يتم إجراؤها في علامة تبويب المنافذ. يتم إنشاء المنافذ، وليس تأليفها. يجب أن يكون كل تغيير في العمود موجودًا في علامة تبويب Normalizer، وبالنسبة لـ VSAM Normalizer، يجب أن يكون التغيير موجودًا في مصدر COBOL نفسه.

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

الأسئلة الشائعة

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

يدعم فقط السلاسل النصية، والسلاسل النصية المتعددة، والأرقام. لا يوجد خيار التاريخ والوقت في علامة تبويب "المُعَدِّل"، لذا يجب أن تمر قيم التاريخ عبر عملية التحويل كسلاسل نصية، ثم يتم تحويلها في عملية تحويل تعبيرية على كلا جانبيها.

نعم. خريطة تكامل البيانات السحابيةping يُقدّم المصمم تحويلًا مُوحّدًا (Normalizer) لنفس الغرض، ويتم تكوينه من خلال قيمة تكرار لكل حقل. يختلف تخطيط علامات التبويب عن PowerCenter، لذا قم بتخصيص الخريطة.pingيتم إعادة بناء الملفات بدلاً من نسخها.

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

يمكن إنشاء مُوحِّد مسار البيانات في مطوّر التحويل، أو ترقيته من خريطة.pingثم تتم مشاركتها. لا يمكن لـ VSAM Normalizer القيام بذلك، لأنه مرتبط بتعريف مصدر COBOL الذي أنشأه.

عملية التحويل نفسها غير مكلفة لأنها لا تتطلب تخزينًا مؤقتًا. تظهر التكلفة لاحقًا: فقيمة Occurs البالغة أربعة تضاعف حجم الصف أربع مرات مع كل عملية تحويل لاحقة يتعين على كاتب الهدف التعامل معها.

تقوم نماذج تحليل البيانات بفحص أعمدة المصدر وتحديد المجموعات المتكررة، مثل QUARTER1 إلى QUARTER4، التي تنتمي إلى الصفوف بدلاً من الأعمدة. هذا الاقتراح هو مجرد نقطة انطلاق، ولا يزال يتعين على المطور تأكيد قيم التكرار ومعالجة المفاتيح.

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

تلخيص هذه التدوينة بـ: