تطبيق الكود المنخفض في المنصات التحليلية

القراء الأعزاء ، يوم جيد!

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

تطبيق الكود المنخفض في المنصات التحليلية

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

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

تطبيق الكود المنخفض في المنصات التحليلية

كلما زادت السرية والاستقلالية في تطبيقاتك / خدماتك / خدماتك المصغرة ، كان من الأسهل عليك وعلى زملائك والعمل بأكمله استيعاب الأمر.

توصل جميع عملائنا تقريبًا إلى هذه الفرضية من خلال إعادة بناء المشهد بناءً على الممارسات الهندسية لفرق DevOps.

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

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

دعونا نفهم السبب.

يرتبط تحليل البيانات في مجال الخدمات اللوجستية وصناعة الاتصالات وفي مجال البحث الإعلامي والقطاع المالي دائمًا بالمسائل التالية:

  • سرعة التحليل الآلي.
  • القدرة على إجراء التجارب دون التأثير على تيار إنتاج البيانات الرئيسي ؛
  • موثوقية البيانات المعدة ؛
  • تغيير التتبع والإصدارات ؛
  • إثبات البيانات ، نسب البيانات ، CDC ؛
  • تسليم سريع للميزات الجديدة إلى بيئة الإنتاج ؛
  • وسيئ السمعة: تكلفة التطوير والدعم.

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

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

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

لذلك ، فإن الكود المنخفض هو مجرد مظهر لمستوى آخر من التجريد.

الخبرة التطبيقية باستخدام التعليمات البرمجية المنخفضة

موضوع الكود المنخفض واسع جدًا ، لكني الآن أود أن أتحدث عن تطبيق "مفاهيم الكود المنخفض" باستخدام مثال أحد مشاريعنا.

يركز قسم حلول البيانات الضخمة في Neoflex بشكل أكبر على قطاع الأعمال المالية ، وبناء مستودعات البيانات والبحيرات وأتمتة التقارير المختلفة. في هذا المجال ، لطالما كان استخدام الرموز المنخفضة هو المعيار. تتضمن الأدوات الأخرى ذات التعليمات البرمجية المنخفضة أدوات لتنظيم عمليات ETL: Informatica Power Center و IBM Datastage و Pentaho Data Integration. أو Oracle Apex ، وهي بيئة التطوير السريع للواجهات للوصول إلى البيانات وتحريرها. ومع ذلك ، فإن استخدام أدوات التطوير ذات التعليمات البرمجية المنخفضة لا يرتبط دائمًا ببناء تطبيقات مركزة بشكل ضيق على مجموعة تقنية تجارية ذات اعتماد واضح على البائع.

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

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

تطبيق الكود المنخفض في المنصات التحليلية

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

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

كانت المهمة التي أمامنا طموحة حقًا - كان على Neoflex و Mediascope إنشاء حل صناعي في أقل من عام ، بشرط أن يتم إصدار MVP بالفعل خلال الربع الأول من تاريخ بدء العمل.

تم اختيار مكدس تكنولوجيا Hadoop كأساس لبناء منصة بيانات جديدة تعتمد على الحوسبة منخفضة الكود. أصبح HDFS معيار تخزين البيانات باستخدام ملفات الباركيه. للوصول إلى البيانات في النظام الأساسي ، يتم استخدام Hive ، حيث يتم تقديم جميع واجهات المتاجر المتاحة في شكل جداول خارجية. تم تنفيذ تحميل البيانات في التخزين باستخدام Kafka و Apache NiFi.

تم استخدام أداة الكود المنخفض في هذا المفهوم لتحسين المهمة الأكثر كثافة في العمل في بناء منصة تحليلية - مهمة حساب البيانات.

تطبيق الكود المنخفض في المنصات التحليلية

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

الميزة الواضحة لهذا النهج هي تسريع عملية التنمية. ومع ذلك ، بالإضافة إلى السرعة ، هناك أيضًا المزايا التالية:

  • عرض محتوى وهيكل المصادر / الوجهات ؛
  • تتبع أصل كائنات تدفق البيانات إلى الحقول الفردية (النسب) ؛
  • التنفيذ الجزئي للتحولات مع عرض النتائج الوسيطة ؛
  • عرض الكود المصدري وتعديله قبل التنفيذ ؛
  • التحقق التلقائي من التحولات ؛
  • تحميل تلقائي للبيانات 1 في 1.

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

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

هندسة الحل

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

تطبيق الكود المنخفض في المنصات التحليلية

مصادر البيانات في حالتنا غير متجانسة ومتنوعة للغاية:

  • عدادات الأشخاص (عدادات التلفزيون) هي برامج وأجهزة تقرأ سلوك المستخدم للمستجيبين في لوحة التلفزيون - من ومتى وأي قناة تلفزيونية تمت مشاهدتها في الأسرة المشاركة في الدراسة. المعلومات المقدمة عبارة عن دفق فترات مشاهدة البث المرتبطة بحزمة وسائط ومنتج وسائط. يمكن إثراء البيانات في مرحلة التحميل في Data Lake بالسمات الديموغرافية ، والمعدل الجغرافي ، والمنطقة الزمنية ، وغيرها من المعلومات الضرورية لتحليل عرض التلفزيون لمنتج وسائط معين. يمكن استخدام القياسات التي تم إجراؤها لتحليل أو تخطيط الحملات الإعلانية ، وتقييم نشاط الجمهور وتفضيلاته ، وإنشاء شبكة بث ؛
  • يمكن أن تأتي البيانات من أنظمة المراقبة لبث التلفزيون وقياس عرض محتوى الفيديو على الإنترنت ؛
  • أدوات القياس في بيئة الويب ، بما في ذلك عدادات تتمحور حول الموقع وتركز على المستخدم. يمكن أن يكون موفر البيانات لـ Data Lake وظيفة إضافية لمتصفح شريط البحث وتطبيق جوال مزود بشبكة VPN مدمجة.
  • يمكن أن تأتي البيانات أيضًا من المواقع التي توحد نتائج ملء الاستبيانات عبر الإنترنت ونتائج المقابلات الهاتفية في استطلاعات الشركة ؛
  • يمكن أن يحدث إثراء إضافي لبحيرة البيانات عن طريق تنزيل المعلومات من سجلات الشركات الشريكة.

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

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

وتجدر الإشارة على الفور إلى أن هذه الأدوات ليست قابلة للتبديل ، بل هي مكملة لبعضها البعض. نيفي وكافكا قادران على العمل بشكل مباشر (Nifi -> Kafka) والعكس (كافكا -> Nifi). بالنسبة لمنصة البحث الإعلامي ، تم استخدام الإصدار الأول من الحزمة.

تطبيق الكود المنخفض في المنصات التحليلية

في حالتنا ، احتاج Naifai إلى معالجة أنواع مختلفة من البيانات من أنظمة المصدر وإرسالها إلى وسيط كافكا. في الوقت نفسه ، تم إرسال الرسائل إلى موضوع كافكا محدد باستخدام معالجات PublishKafka Nifi. يتم تنظيم وصيانة خطوط الأنابيب هذه في واجهة مرئية. يمكن أيضًا تسمية أداة Nifi واستخدام حزمة Nifi + Kafka بمقاربة منخفضة الكود للتطوير ، والتي لها عتبة منخفضة لإدخال تقنيات البيانات الكبيرة وتسريع عملية تطوير التطبيق.

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

البنية الهدف المطلوبة لتوفير وصول SQL إلى البيانات لمستخدمي الأعمال. تم استخدام الخلية لهذا الخيار. يتم تنفيذ تسجيل الكائنات في Hive تلقائيًا عندما تقوم بتمكين خيار "Registr Hive Table" في أداة الكود المنخفض.

تطبيق الكود المنخفض في المنصات التحليلية

إدارة الرواتب

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

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

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

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

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

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

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

معًا ، أدى استخدام حل Datagram ذي الكود المنخفض بالتزامن مع تعميم ملفات التكوين (تشكيل Dag) إلى تسريع وتبسيط كبير لعملية تطوير تدفقات تحميل البيانات.

عرض الحساب

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

تطبيق الكود المنخفض في المنصات التحليلية

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

تقرر تقسيم خوارزمية التحقق إلى المراحل الفرعية التالية:

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

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

ما الذي يمكن أن يفعله الرمز المنخفض أيضًا؟

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

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

تطبيق الكود المنخفض في المنصات التحليلية

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

تطبيق الكود المنخفض في المنصات التحليلية

جودة البيانات والأكواد المنخفضة

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

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

من خلال إقران أداة التعليمات البرمجية المنخفضة و Enterprise Architect ، تم إنشاء عمليات التحقق التالية تلقائيًا:

  • التحقق من وجود قيم "خالية" في الحقول ذات المعدل "غير الفارغ" ؛
  • التحقق من وجود نسخ مكررة من المفتاح الأساسي ؛
  • التحقق من المفتاح الخارجي للكيان ؛
  • التحقق من تفرد سلسلة من خلال مجموعة من الحقول.

لإجراء فحوصات أكثر تعقيدًا لتوافر البيانات وصلاحيتها ، تم إنشاء مخطط باستخدام Scala Expression ، والذي يأخذ كمدخل كود فحص Spark SQL خارجي أعده محللو Zeppelin.

تطبيق الكود المنخفض في المنصات التحليلية

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

  • تنفيذ DQ في دفاتر Zeppelin ؛
  • جزءا لا يتجزأ من DQ في رسم الخرائط ؛
  • DQ في شكل تعيينات ضخمة منفصلة تحتوي على مجموعة كاملة من الشيكات لكيان منفصل ؛
  • تعيينات DQ ذات المعلمات العامة التي تقبل معلومات حول البيانات الوصفية وفحص الأعمال كمدخلات.

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

  • يتم إنشاء جميع عمليات فحص البيانات الوصفية تلقائيًا عند تغيير النموذج في EA ؛
  • يمكن إنشاء فحوصات توفر البيانات (تحديد وجود أي بيانات في نقطة زمنية معينة) بناءً على دليل يخزن التوقيت المتوقع لظهور الجزء التالي من البيانات في سياق الكائنات ؛
  • يتم إنشاء عمليات التحقق من صحة بيانات الأعمال بواسطة محللين في دفاتر Zeppelin المحمولة. من حيث يتم إرسالها مباشرة إلى جداول الإعداد لوحدة DQ في بيئة الإنتاج.

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

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

بدلا من خاتمة

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

بالطبع ، الكود المنخفض ليس حلاً سحريًا ، ولن يحدث السحر من تلقاء نفسه:

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

تطبيق الكود المنخفض في المنصات التحليلية

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

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

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

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

المصدر: www.habr.com

إضافة تعليق