تحويل المجمع في المعلوماتية مع مثال

⚡ ملخص ذكي

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

  • 🧮 الحساب المجمع: تحدد عملية التجميع حسب المنافذ المجموعات، وتقوم خدمة التكامل بإرجاع صف واحد لكل تركيبة فريدة.
  • 💾 مخبأان: يتم الاحتفاظ بقيم المجموعة في ذاكرة التخزين المؤقت للفهرس بينما يتم الاحتفاظ ببيانات الصف في ذاكرة التخزين المؤقت للبيانات.
  • 🧪 مثال عملي: يقوم التعبير sum(SAL) grouped by DEPTNO بتحميل إجماليات الأقسام في SUM_SAL_DEPTWISE.
  • 🔀 المدخلات المصنفة: تتيح عملية الفرز المسبق للمجموعة حسب المنافذ لخدمة التكامل إصدار كل مجموعة مبكراً وتخزين بيانات أقل بكثير.
  • 📈 عمليات التشغيل التدريجية: تعتمد عملية التجميع التدريجي على إعادة استخدام ذاكرة التخزين المؤقت التاريخية بحيث يتم حساب صفوف المصدر الجديدة فقط.
  • 🚫 حد التداخل: قد يحتوي التحويل الواحد على وظائف من مستوى واحد أو وظائف متداخلة، وليس كليهما.

التحول المجمع في المعلوماتية

ما هو تحويل المجمع؟

التحويل التجميعي هو تحويل نشط يقوم بإجراء حسابات تجميعية مثل المجموع والمتوسط ​​والعدد.

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

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

لهذا الغرض، تُستخدم ذاكرة التخزين المؤقت للمُجمِّع. وهي ذاكرة رئيسية مؤقتة مُخصصة لعملية تحويل المُجمِّع لتنفيذ هذه العمليات، وتتكون من جزأين: ذاكرة التخزين المؤقت للفهرس تُخزِّن قيم المجموعة، بينما ذاكرة التخزين المؤقت للبيانات تُخزِّن بيانات الصف التي يتم تجميعها.

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

كيفية استخدام تحويل التجميع في إنفورماتيكا

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

الخطوة 1) أنشئ جدولًا جديدًا في قاعدة البيانات، على سبيل المثال، "sum_sal_deptwise"، باستخدام البرنامج النصي أدناه. سترى جدول قاعدة البيانات الجديد الذي تم إنشاؤه ضمن Targetقم بإنشاء مجلد s في الخطوة التالية.

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

الخطوة 2) إنشاء جديد رسم خريطةping "m_sum_sal_deptwise".

من أجل إنشاء الخريطة الجديدةpingنحتاج إلى جدول المصدر (EMP) وجدول الهدف (sum_sal_deptwise) في الخريطةping مصمم، لذلك نحتاج إلى

  1. استورد جدول الهدف "sum_sal_deptwise" في الخريطةping.
  2. استيراد الجدول المصدر "emp".

يظهر كلا التعريفين الآن على اللوحة، كما هو موضح أدناه.

خريطةping المصمم مع مصدر EMP، SQ_EMP والهدف المستورد SUM_SAL_DEPTWISE

الخطوة 3) في الخريطةping,

  1. XNUMX. من قائمة مؤهل المصدر، احذف الأعمدة empno و ename و job و mgr و hiredate و comm، واترك فقط العمودين deptno و sal.
  2. أنشئ تحويلاً جديداً للمُجمِّع باستخدام قائمة الأدوات كما هو موضح في لقطة الشاشة. عند النقر على أيقونة المُجمِّع، سيتم إنشاء تحويل جديد للمُجمِّع.

يظهر كائن AGGTRANS الجديد بجانب مُؤهِّل المصدر المُقَصَّر.

أيقونة المُجمِّع في شريط الأدوات تُنشئ AGGTRANS بجوار SQ_EMP المُقَصَّر

الخطوة 4) اسحب وأفلت عمودي SAL وDEPTNO من مُؤهِّل المصدر (SQ_EMP) إلى تحويل المُجمِّع. الآن تم ربط المنفذين في AGGTRANS.

تم سحب منافذ SAL و DEPTNO من SQ_EMP إلى تحويل AGGTRANS Aggregator

الخطوة 5) Doubleانقر على تحويل المُجمِّع لفتح خصائصه، ثم

  1. إضافة منفذ جديد في التحويل
  2. أعد تسمية المنفذ إلى SUM_SAL
  3. تغيير نوع بيانات هذا المنفذ الجديد إلى مزدوج
  4. اجعل هذا المنفذ منفذ إخراج عن طريق تحديد خانة الاختيار الخاصة بمنفذ الإخراج
  5. انقر على خيار التعبير

تعرض علامة التبويب "المنافذ" الآن SAL و DEPTNO ومنفذ الإخراج الجديد SUM_SAL.

علامة تبويب المنافذ في AGGTRANS مع ضبط منفذ الإخراج SUM_SAL الجديد على نوع البيانات المزدوج

الخطوة 6) في نافذة محرر التعبيرات

  1. أضف التعبير sum(SAL)؛ عليك كتابة هذا التعبير بنفسك.
  2. حدد زر "موافق"، سيؤدي ذلك إلى إعادة فتح نافذة "تحرير التحويلات".

يعرض محرر التعبيرات التعبير التجميعي المخصص لـ SUM_SAL.

محرر التعبيرات لمنفذ SUM_SAL الذي يحتوي على التعبير التجميعي sum(SAL)

الخطوة 7) في نافذة "تحرير التحويلات"، حدد خيار "التجميع حسب" بتحديد خانة الاختيار بجوار عمود "رقم القسم"، ثم انقر فوق "موافق". باختيار "التجميع حسب" بجوار "رقم القسم"، فإننا نوجه برنامج Informatica لتجميع الرواتب حسب رقم القسم.

علامة تبويب المنافذ مع تحديد خانة الاختيار GroupBy مقابل منفذ DEPTNO

الخطوة 8) قم بربط عمودي deptno و sum_sal من تحويل المُجمِّع بالجدول الهدف. الخريطةping ثم تكتمل العملية من المصدر إلى الهدف.

تم ربط DEPTNO و SUM_SAL من AGGTRANS إلى تعريف الهدف SUM_SAL_DEPTWISE

الآن احفظ الخريطةping ونفذه بعد إنشاء جديد الجلسة لهذه الخريطةpingسيحتوي الجدول المستهدف على مجموع الرواتب حسب الأقسام. وبهذه الطريقة، يمكننا استخدام تحويل المُجمِّع لحساب النتائج الإجمالية.

تجميع البيانات حسب الموانئ في عملية تحويل المُجمِّع

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

ثلاثة قواعد تحكم مجموعة النتائج:

  • صف واحد لكل مجموعة. عند تجميع القيم، تقوم خدمة التكامل بإنتاج صف واحد لكل مجموعة فريدة من المنافذ المجمعة.
  • لا يوجد تجميع حسب، صف واحد. إذا لم يتم تحديد أي منفذ، فسيتم التعامل مع المدخلات بأكملها كمجموعة واحدة وسيتم إرجاع صف واحد لجميع صفوف الإدخال.
  • يفوز الصف الأخير. إلى جانب النتيجة الإجمالية، تقوم خدمة التكامل عادةً بتمرير الصف الأخير الذي تم استلامه في المجموعة، ما لم تقم وظيفة مثل FIRST بتسمية صف مختلف.

عند تحديد عدة موانئ، يحدد ترتيب الموانئ المجموعةping الترتيب، والترتيب قد يغير النتيجة.ping حسب رقم القسم ثم الوظيفة ليس هو نفسه حسب المجموعةping حسب الوظيفة ثم رقم القسم، لأن قيم العمود الثاني ليست بالضرورة فريدة.

خصائص تحويل المُجمِّع

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

الضبط ما الذي يتحكم فيه
دليل التخزين المؤقت الدليل المحلي الذي تُنشئ فيه خدمة التكامل ملفات الفهرس وذاكرة التخزين المؤقت للبيانات. القيمة الافتراضية هي متغير العملية $PMCacheDir المُحدد في مدير سير العمل.
Tracمستوى ing مقدار التفاصيل المكتوبة في سجل الجلسة لهذا التحويل.
المدخلات المصنفة يُعلن أن البيانات الواردة مُرتبة بالفعل حسب المجموعة حسب المنافذ. حددها فقط عندما تكون الخريطةping يقدم بيانات مصنفة بالفعل.
حجم ذاكرة التخزين المؤقت لبيانات المُجمِّع حجم ذاكرة التخزين المؤقت للبيانات. القيمة الافتراضية هي 2,000,000 بايت، ويترك خيار "تلقائي" لخدمة التكامل تحديد حجمها.
حجم ذاكرة التخزين المؤقت لفهرس المُجمِّع حجم ذاكرة التخزين المؤقت للفهرس. القيمة الافتراضية هي 1,000,000 بايت، ويترك خيار "تلقائي" لخدمة التكامل تحديد حجمها.
نطاق التحول يطبق المنطق على كل معاملة، أو على جميع البيانات الواردة. يؤدي خيار "جميع المدخلات" إلى حذف حدود المعاملات الواردة.

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

قواعد التعبير التجميعي ونصائح الأداء

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

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

أما فيما يتعلق بالضبط، فإن ثلاثة إعدادات تقوم بمعظم العمل:

  • المدخلات المصنفة. عند وصول الصفوف مُرتبةً حسب المجموعة حسب المنافذ، يُمكن تحرير كل مجموعة فور وصول آخر صف فيها، مما يُقلل بشكل كبير من كمية البيانات المُخزنة مؤقتًا ويُسرّع من أداء الجلسة. لا يُمكن دمج الإدخال المُرتب مع التجميع التزايدي.
  • التجميع التدريجي. يتم تمرير صفوف المصدر الجديدة عبر الخريطةping وتم دمجها مع ذاكرة التخزين المؤقتة التاريخية بدلاً من إعادة حساب التاريخ، وهو ما يناسب التحميل الليلي على إجمالي متراكم.
  • قم بالتصفية مبكراً. يجب حذف الصفوف التي لن تساهم أبدًا في الإجمالي قبل المُجمِّع، إما في استعلام مُؤهِّل المصدر أو في تحويل المرشحلأن كل صف يصل إلى المُجمِّع يستهلك مساحة من ذاكرة التخزين المؤقت. هذا أحد الفحوصات القياسية أثناء ضبط الأداء.

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

تغطي العائلة الإجمالية AVG، COUNT، FIRST، LAST، MAX، MEDIAN، MIN، PERCENTILE، STDDEV، SUM و VARIANCE. تُعيد كل منها قيمة مُلخصة للقيم غير الفارغة في المنفذ المُحدد.

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

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

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

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

انتقل إلى المجلد المحدد في إعداد "مجلد التخزين المؤقت"، والذي يكون افتراضيًا هو متغير العملية $PMCacheDir المُكوّن في مدير سير العمل. تأكد من وجود هذا المجلد وأن لديه مساحة كافية على القرص.

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

يقوم برنامج Copilot بصياغة التعبيرات وقواعد بيانات SQL المحيطة بها بسرعة، مما يوفر الوقت في عمليات ضبط المنافذ المتكررة. لا يمكنه الاطلاع على أحجام ذاكرة التخزين المؤقت أو ترتيب المنافذ، لذا يُرجى التحقق من صحة كل اقتراح في محرر التعبيرات قبل الحفظ.

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