من الحوادث اليومية إلى الاستقرار: Informatica مع 10 عيون المشرف



غالبًا ما يكون مكون ETL لمستودع البيانات في ظل المستودع نفسه ويتم توجيه اهتمام به أقل من قاعدة البيانات الرئيسية أو المكون الأمامي ، BI ، إعداد التقارير. في نفس الوقت ، من وجهة نظر آليات ملء مستودع البيانات ، تلعب ETL دورًا رئيسيًا وتتطلب اهتمامًا أقل من المسؤولين من المكونات الأخرى. اسمي ألكساندر ، أدير حاليًا ETLs في Rostelecom ، وسأحاول في هذه المقالة أن أشارك قليلاً مع ما يتعامل به مسؤول واحد من أكثر أنظمة ETL شهرة في مستودع بيانات كبير من Rostelecom.

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

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

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

ستتم مناقشة المزيد من التفاصيل حول السعة التخزينية لدينا في أحد الوظائف التالية.

تعتبر Informatica PowerCenter / Big Data Management حاليًا البرنامج الرائد في مجال أدوات تكامل البيانات. هذا هو نتاج الشركة الأمريكية Informatica ، التي تعد واحدة من أقوى اللاعبين في ETL (استخراج تحويل الحمل) ، وإدارة جودة البيانات ، MDM (إدارة البيانات الرئيسية) ، ILM (إدارة دورة حياة المعلومات) وأكثر من ذلك.

PowerCenter الذي نستخدمه هو خادم تطبيقات Tomcat متكامل ، تعمل فيه تطبيقات Informatica نفسها ، وتقوم بتنفيذ خدماتها:

المجال ، في الواقع ، هو أساس كل شيء آخر ؛ داخل المجال ، تعمل الخدمات والمستخدمون ومكونات GRID.

Administrator Console ، أداة إدارة ومراقبة قائمة على الويب ، بالإضافة إلى عميل Informatica Developer ، الأداة الرئيسية للتفاعل مع المنتج

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

DIS ، Data Integration Service ، هي خدمة تحدث فيها العمليات الوظيفية الرئيسية ، وتعمل فيها التطبيقات ، والإطلاق الفعلي لسير العمل (أوصاف تسلسل التعيينات وتفاعلاتها) ، والتعيينات (التحويلات ، الكتل التي تحدث فيها التحويلات نفسها ، ومعالجة البيانات).

يعد تكوين GRID ، في الواقع ، خيارًا لبناء مجمع باستخدام عدة خوادم ، عندما يتم توزيع الحمل الذي أطلقته DIS على العقد (أي الخوادم التي تعد جزءًا من المجال). في حالة هذا الخيار ، بالإضافة إلى توزيع الحمل على DIS من خلال طبقة تجريد GRID إضافية ، تجمع بين عدة عقد ، تعمل فيها DIS بدلاً من العمل على عقدة واحدة معينة ، يمكن أيضًا إنشاء مثيلات احتياطية احتياطية MRS. يمكنك حتى تنفيذ التوفر العالي عندما يمكن إجراء مكالمات خارجية من خلال عقد نسخ احتياطية في حالة حدوث عطل أساسي. لقد رفضنا حتى الآن خيار البناء هذا.


إنفورماتيكا PowerCenter ، التخطيطي

في المراحل الأولى من العمل ، ظهرت مشاكل بانتظام في سلسلة إمداد البيانات ، بعضها بسبب العمل غير المستقر للمعلوماتية في ذلك الوقت. سوف أشارك بعض اللحظات التي لا تنسى من هذه الملحمة - تطوير Informatica 10.


شعار Informatica السابق

تعد بيئات Informatica الأخرى جزءًا من مجال مسؤوليتنا ، فهي تتميز بتفاصيلها الخاصة بسبب تحميل مختلف ، لكن الآن أتذكر بالضبط كيف تطورت Informatica كعنصر ETL لمستودع البيانات نفسه.

كيف حدث ذلك


في عام 2016 ، عندما أصبحنا مسؤولين عن أعمال إنفورماتيكا ، وصلت بالفعل إلى الإصدار 10.0 ، وبالنسبة للزملاء المتفائلين الذين قرروا استخدام منتج مع إصدار ثانوي .0 في حل جدي ، بدا أن كل شيء واضح - تحتاج إلى استخدام الإصدار الجديد! من وجهة نظر موارد الأجهزة ، كان كل شيء ممتازًا في ذلك الوقت.

منذ ربيع عام 2016 ، كان المقاول مسؤولاً عن أعمال Informatica ، ووفقًا لعدد قليل من مستخدمي النظام ، "لقد كان يعمل مرتين في الأسبوع". من الضروري هنا توضيح أن التخزين كان فعليًا في مرحلة PoC ، ولم يكن هناك مسؤولون في الفريق ، وتعطل النظام باستمرار لأسباب مختلفة ، وبعد ذلك قام المهندس المقاول برفعه مرة أخرى.

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

أول ما كان علينا القيام به لمطوري فريقنا والمقاول هو تثبيت عمل شركة Informatica نفسها ، لجعل وحدة التحكم الإدارية المستندة إلى الويب (Informatica Administrator) جاهزة للعمل.


لذلك التقينا مطوري Informatica

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


إحدى محاولات الحصول على مراقب Informatica العمل

مع وحدة تحكم الإدارة ، كان الموقف حرجًا أيضًا. نظرًا لوجود تنمية نشطة على بيئة منتجة مشروطة ، كان الزملاء بحاجة باستمرار إلى تحليل عمل التعيينات وسير العمل "أثناء التنقل". في Informatica الجديدة ، لا تملك خدمة تكامل البيانات أداة منفصلة لمثل هذا الرصد ، لكن قسم المراقبة (Informatica Administrator Monitor) قد ظهر في وحدة تحكم الويب للإدارة ، حيث يمكنك مراقبة تشغيل التطبيقات وسير العمل والتعيينات وبدء التشغيل والسجلات. بشكل دوري ، أصبحت وحدة التحكم غير متوفرة تمامًا ، أو توقف تحديث المعلومات حول العمليات الحالية في DIS ، أو حدثت أخطاء أثناء تحميل الصفحات.


اختيار المعلمات جافا لتحقيق الاستقرار في العمل

تم إصلاح المشكلة بعدة طرق ، وأجريت تجارب لتغيير المعلمات ، وتم جمع السجلات ، وتم إرسال jstack في الدعم ، و googling النشط كان يجري في نفس الوقت وتم إجراء الملاحظة للتو.

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

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

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

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

هنا تحتاج أن تشكر الدعم ، فقد تم تحديد المشكلات بسرعة وحلها باستخدام EBF (Emergency Bug Fix) - وبعدها شعر الجميع أن الأداة تعمل بالفعل.

لا يزال يعمل!


بحلول الوقت الذي بدأ فيه العمل في الوضع المستهدف ، بدا Informatica على النحو التالي. إصدار Informatica 10.1.1HF1 (HF1 هو HotFix1 ، تجميع بائع من مجموعة من EBFs) مع EBFs إضافية مثبتة تعمل على حل مشكلات التحجيم وبعضها الآخر ، على أحد خوادم GRID الثلاثة و 20 x86_64 النوى والتخزين ، على مجموعة كبيرة بطيئة من الأقراص المحلية - هذا هو تكوين الخادم لمجموعة Hadoop. على خادم آخر من نفس النوع ، يعمل Oracle DBMS به مجال Informatica وآلية التحكم ETL. تتم مراقبة كل هذا من خلال أدوات المراقبة القياسية المستخدمة في الفريق (Zabbix + Grafana) ، على كلا الجانبين - Informatica نفسها مع خدماتها ، وعمليات التحميل التي تدخل فيها. الآن يعتمد كل من الأداء والاستقرار ، دون مراعاة العوامل الخارجية ، على الإعدادات التي تحد من الحمل.

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

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

تنشأ مشكلة أخرى من نفس الموقف - في بعض الأحيان تحدث عمليات إطلاق متعددة لآلية التحكم الخاصة بنا.


إطلاق تطبيقات متعددة ، مما يؤدي إلى انهيار الآلية

عند البدء وفقًا لجدول زمني في أوقات الحمل الثقيل على النظام ، تحدث المواقف التي تؤدي إلى انهيار الآلية في بعض الأحيان. حتى الآن ، تم حل المشكلة يدويًا ؛ يتم البحث عن حل دائم.

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

كما هو الحال مع أي منتج جدي ، فإن Informatica لديها بعض اللحظات الغريبة.
ذات مرة ، عند تحليل نوع من الحوادث ، لاحظت أن وقت الأحداث كان ملحوظًا بشكل غريب في سجلات MRS.


ازدواجية مؤقتة في سجلات MRS "حسب التصميم"

اتضح أن الطوابع الزمنية مكتوبة بتنسيق 12 ساعة ، دون تحديد AM / PM ، أي قبل الظهر أو بعده. تم فتح التطبيق حتى في هذا الموضوع ، وتم تلقي استجابة رسمية - تم التخطيط لذلك ، وعلامات في سجل MRS مكتوبة بهذا التنسيق. وهذا هو ، في بعض الأحيان لا يزال هناك بعض المؤامرات فيما يتعلق بوقت حدوث بعض الأخطاء ...

نسعى للأفضل


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

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

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

أعد هذا المقال فريق Rostelecom لإدارة البيانات


شعار Informatica الفعلي

Source: https://habr.com/ru/post/ar454126/


All Articles