تنشأ مهمة بناء منصات لتكنولوجيا المعلومات لتجميع البيانات وتحليلها عاجلاً أو آجلاً لأي شركة تعتمد أعمالها على نموذج تقديم خدمة محمّل فكريا أو إنشاء منتجات معقدة تقنيًا. يعد بناء منصات تحليلية مهمة صعبة وتستغرق وقتًا طويلاً. ومع ذلك ، يمكن تبسيط أي مهمة. في هذه المقالة ، أرغب في مشاركة تجربتي في استخدام أدوات التعليمات البرمجية المنخفضة لمساعدتك في إنشاء حلول تحليلية. تم اكتساب هذه الخبرة أثناء تنفيذ عدد من المشاريع في اتجاه حلول البيانات الكبيرة لشركة Neoflex. منذ عام 2005 ، كان اتجاه حلول البيانات الكبيرة في Neoflex يتعامل مع قضايا بناء مخازن البيانات والبحيرات ، وحل مشكلات تحسين سرعة معالجة المعلومات والعمل على منهجية لإدارة جودة البيانات.
لن يتمكن أي شخص من تجنب التراكم المتعمد للبيانات الضعيفة و / أو عالية التنظيم. ربما حتى لو كنا نتحدث عن شركة صغيرة. في الواقع ، عند توسيع نطاق الأعمال التجارية ، سيواجه رائد الأعمال الواعد مشاكل تطوير برنامج ولاء ، ويريد تحليل فعالية نقاط البيع ، ويفكر في الإعلانات المستهدفة ، ويحتار من الطلب على المنتجات المصاحبة. كأول تقدير تقريبي ، يمكن حل المشكلة في الركبة. ولكن مع نمو الأعمال التجارية ، لا يزال الوصول إلى منصة تحليلية أمرًا لا مفر منه.
ومع ذلك ، في أي حالة يمكن أن تتطور مهام تحليل البيانات إلى مهام فئة "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.
تم استخدام أداة الكود المنخفض في هذا المفهوم لتحسين المهمة الأكثر كثافة في العمل في بناء منصة تحليلية - مهمة حساب البيانات.
تم اختيار أداة مخطط البيانات ذات الكود المنخفض كآلية رئيسية لتعيين البيانات. Neoflex Datagram هو أداة لتصميم التحويلات وتدفقات البيانات.
باستخدام هذه الأداة ، يمكنك تجنب كتابة كود Scala "باليد". يتم إنشاء رمز Scala تلقائيًا باستخدام نهج الهندسة المعمارية النموذجية.
إضافة واضحة لهذا النهج هي تسريع عملية التنمية. ومع ذلك ، بالإضافة إلى السرعة ، هناك أيضًا المزايا التالية:
- عرض المحتوى وهيكل المصادر / الوجهات ؛
- تتبع أصل كائنات تدفق البيانات إلى الحقول الفردية (النسب) ؛
- التنفيذ الجزئي للتحولات مع عرض النتائج الوسيطة ؛
- عرض الكود المصدري وتصحيحه قبل التنفيذ ؛
- التحقق التلقائي من التحولات ؛
- تحميل تلقائي للبيانات 1 في 1.
الحد الأدنى لإدخال حلول ذات رمز منخفض لتوليد التحويلات منخفض جدًا: يحتاج المطور إلى معرفة SQL ولديه خبرة في أدوات ETL. وتجدر الإشارة إلى أن مولدات التحويل المدفوعة بالشفرة ليست أدوات ETL بالمعنى الواسع للكلمة. قد لا تحتوي أدوات التعليمات البرمجية المنخفضة على بيئة تنفيذ التعليمات البرمجية الخاصة بها. أي أن الكود الذي تم إنشاؤه سيتم تنفيذه في البيئة التي كانت موجودة في الكتلة حتى قبل تثبيت الحل منخفض الكود. وربما تكون هذه إضافة أخرى في الكارما منخفضة الكود. لأنه ، بالتوازي مع الأمر ذي الكود المنخفض ، يمكن لأمر "كلاسيكي" أن يعمل ، والذي ينفذ الوظيفة ، على سبيل المثال ، في Scala-code خالص. سيكون سحب عمل كلا الفريقين في الإنتاج بسيطًا وسلسًا.
ربما تجدر الإشارة إلى أنه بالإضافة إلى التعليمات البرمجية المنخفضة ، هناك أيضًا حلول لا تحتوي على تعليمات برمجية. وهي في جوهرها أشياء مختلفة. يسمح الرمز المنخفض للمطور بالتدخل في الشفرة التي تم إنشاؤها إلى حد أكبر. في حالة مخطط البيانات ، من الممكن عرض وتحرير رمز Scala الذي تم إنشاؤه ، وقد لا يوفر أي كود مثل هذه الفرصة. هذا الاختلاف مهم جدًا ليس فقط من حيث مرونة الحلول ، ولكن أيضًا من حيث الراحة والتحفيز في عمل مهندسي البيانات.
هندسة الحل
دعنا نحاول معرفة كيف تساعد أداة التعليمات البرمجية المنخفضة بالضبط في حل مشكلة تحسين سرعة تطوير وظيفة حساب البيانات. أولاً ، دعنا نلقي نظرة على البنية الوظيفية للنظام. في هذه الحالة ، المثال هو نموذج إنتاج البيانات لأبحاث الوسائط.
مصادر البيانات في حالتنا غير متجانسة ومتنوعة للغاية:
- (-) — - , – , , . – . Data Lake , , , . , , ;
- ;
- web-, site-centric, user-centric . Data Lake research bar VPN.
- , - ;
- -.
يمكن تنظيم تنفيذ التحميل من أنظمة المصدر إلى التدريج الأولي للبيانات الخام بطرق مختلفة. إذا تم استخدام رمز منخفض لهذه الأغراض ، فمن الممكن إنشاء برامج نصية تمهيدية تلقائيًا بناءً على البيانات الوصفية. في هذه الحالة ، ليست هناك حاجة للنزول إلى مستوى تطوير المصدر لتعيينات الهدف. لتنفيذ التحميل التلقائي ، نحتاج إلى إنشاء اتصال بالمصدر ، ثم تحديد قائمة الكيانات التي سيتم تحميلها في واجهة التحميل. سيكون إنشاء بنية الدليل في HDFS تلقائيًا وسيتوافق مع بنية تخزين البيانات في النظام المصدر.
ومع ذلك ، في سياق هذا المشروع ، قررنا عدم استغلال هذه الفرصة للمنصة منخفضة التعليمات البرمجية نظرًا لحقيقة أن Mediascope قد بدأت بالفعل بشكل مستقل في إنتاج خدمة مماثلة على رابط Nifi + Kafka.
وتجدر الإشارة على الفور إلى أن هذه الأدوات ليست قابلة للتبديل ، ولكنها مكملة لبعضها البعض. نيفي وكافكا قادران على العمل في الحزم المباشرة (Nifi -> Kafka) والعكس (Kafka -> Nifi). بالنسبة لمنصة البحث الإعلامي ، تم استخدام الرابط الأول.
في حالتنا ، كنت بحاجة إلى معالجة أنواع مختلفة من البيانات من أنظمة المصدر وإرسالها إلى وسيط كافكا. في الوقت نفسه ، تم توجيه الرسائل إلى موضوع كافكا محدد باستخدام معالجات PublishKafka Nifi. يتم تنظيم وصيانة خطوط الأنابيب هذه في واجهة مرئية. يمكن أيضًا تسمية أداة Nifi واستخدام حزمة Nifi + Kafka بمقاربة منخفضة الترميز للتطوير ، والتي لها حد منخفض لإدخال تقنيات البيانات الكبيرة وتسريع عملية تطوير التطبيق.
كانت المرحلة التالية في تنفيذ المشروع هي تقليص شكل طبقة دلالية واحدة من البيانات التفصيلية. إذا كان للكيان سمات تاريخية ، فسيتم إجراء الحساب في سياق القسم المعني. إذا لم يكن الكيان تاريخيًا ، فمن الممكن اختياريًا إما إعادة حساب المحتوى بالكامل للكائن ، أو رفض إعادة حساب هذا الكائن على الإطلاق (بسبب عدم وجود تغييرات). في هذه المرحلة ، يتم إنشاء مفاتيح لجميع الكيانات. يتم حفظ المفاتيح في أدلة Hbase المقابلة للكائنات الرئيسية ، والتي تحتوي على المراسلات بين المفاتيح في النظام الأساسي التحليلي والمفاتيح من الأنظمة المصدر. يرافق توحيد الكيانات الذرية إثراء البيانات التحليلية بنتائج الحساب الأولي. كان إطار عمل حساب البيانات هو Spark.تم أيضًا تنفيذ الوظيفة الموصوفة لتحويل البيانات إلى دلالات واحدة على أساس تعيينات مخطط بيانات أداة الترميز المنخفض.
البنية الهدف المطلوبة لتوفير الوصول إلى بيانات SQL لمستخدمي الأعمال. تم استخدام الخلية لهذا الخيار. يتم تسجيل الكائنات في Hive تلقائيًا عند تمكين خيار "جدول الخلية المسجل" في الأداة ذات الرمز المنخفض.
التحكم في تدفق المدفوعات
يحتوي مخطط البيانات على واجهة لإنشاء تصميمات سير العمل. يمكن تشغيل التعيينات باستخدام جدولة Oozie. في واجهة مطور التدفقات ، من الممكن إنشاء مخططات متوازية أو متسلسلة أو اعتمادًا على الشروط المحددة لتنفيذ تحويلات البيانات. هناك دعم لنصوص شل وبرامج جافا. من الممكن أيضًا استخدام خادم Apache Livy. يستخدم Apache Livy لتشغيل التطبيقات مباشرة من بيئة التطوير.
إذا كان لدى الشركة منظم العمليات الخاص بها بالفعل ، فمن الممكن استخدام واجهة برمجة تطبيقات REST لتضمين التعيينات في دفق حالي. على سبيل المثال ، لدينا تجربة ناجحة إلى حد ما في تضمين تعيينات Scala في منسقين مكتوبين بلغتي PLSQL و Kotlin. تتضمن واجهة برمجة تطبيقات REST الخاصة بأداة ذات رمز منخفض وجود عمليات مثل إنشاء سنة قابلة للتنفيذ بناءً على تصميم الخرائط ، واستدعاء التعيين ، واستدعاء سلسلة من التعيينات ، وبالطبع ، تمرير المعلمات إلى عنوان URL لإطلاق التعيينات.
جنبًا إلى جنب مع Oozie ، من الممكن تنظيم تدفق الحساب باستخدام Airflow. ربما لن أتطرق إلى مقارنة Oozie و Airflow لفترة طويلة ، لكنني سأقول ببساطة أنه في سياق العمل في مشروع بحث إعلامي ، وقع الاختيار على Airflow. تبين أن الحجج الرئيسية هذه المرة هي مجتمع أكثر نشاطًا يطور المنتج وواجهة أكثر تطورًا + API.
يعد تدفق الهواء جيدًا أيضًا لأنه يستخدم لغة Python المحبوبة لوصف عمليات الحساب. بشكل عام ، لا يوجد الكثير من منصات إدارة سير العمل مفتوحة المصدر. يؤدي بدء العمليات ومراقبتها (بما في ذلك تلك التي تحتوي على مخطط جانت) فقط إلى إضافة نقاط إلى كارما Airflow.
تنسيق ملف التكوين لبدء تعيينات الحلول منخفضة التعليمات البرمجية هو إرسال شرارة. حدث هذا لسببين. أولاً ، يسمح لك إرسال شرارة بتشغيل ملف الجرة مباشرة من وحدة التحكم. ثانيًا ، يمكن أن يحتوي على جميع المعلومات التي تحتاجها لتكوين سير العمل (مما يسهل كتابة البرامج النصية التي تشكل Dag).
العنصر الأكثر شيوعًا في سير عمل تدفق الهواء في حالتنا هو SparkSubmitOperator.
يسمح لك SparkSubmitOperator بتشغيل تعيينات مخطط البيانات المعبأ jar`niks مع معلمات الإدخال مسبقة التكوين لهم.
تجدر الإشارة إلى أن كل مهمة 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 ؛
- يمكن إنشاء فحوصات توفر البيانات (تحديد وجود أي بيانات في وقت ما) بناءً على دليل يخزن التوقيت المتوقع لظهور الجزء التالي من البيانات في سياق الكائنات ؛
- يتم إنشاء فحوصات معقولية بيانات الأعمال من قبل محللين في دفاتر زيبلين. من حيث ينتقلون مباشرة إلى جداول إعداد وحدة DQ في بيئة الإنتاج.
لا توجد مخاطر من الشحن المباشر للنصوص إلى الإنتاج على هذا النحو. حتى مع وجود خطأ في بناء الجملة ، فإن الحد الأقصى الذي يهددنا هو الفشل في إجراء فحص واحد ، لأن تدفق حساب البيانات وتدفق بدء عمليات فحص الجودة منفصلان عن بعضهما البعض.
في الواقع ، تعمل خدمة DQ بشكل دائم في بيئة الإنتاج وهي جاهزة لبدء العمل عند ظهور الجزء التالي من البيانات.
بدلا من الاستنتاج
ميزة استخدام رمز منخفض واضحة. لا يحتاج المطورون إلى تطوير تطبيق من البداية. مبرمج يتم تحريره من المهام الإضافية يعطي نتائج أسرع. توفر السرعة بدورها موردًا إضافيًا من الوقت لحل مشكلات التحسين. لذلك ، في هذه الحالة ، يمكنك الاعتماد على حل أفضل وأسرع.
بالطبع ، لا يُعد الرمز المنخفض حلاً سحريًا ، ولن يحدث السحر من تلقاء نفسه:
- تمر صناعة الكود المنخفض بمرحلة "النمو" ، وحتى الآن لا توجد معايير صناعية موحدة ؛
- العديد من الحلول ذات الأكواد المنخفضة ليست مجانية ، ويجب أن يكون شرائها خطوة مدروسة ، ويجب القيام بها بثقة تامة في الفوائد المالية من استخدامها ؛
- GIT / SVN. ;
- – , , « » low-code-.
- , low-code-. . / IT- .
ومع ذلك ، إذا كنت تعرف جميع أوجه القصور في النظام المختار ، وفوائد استخدامه ، مع ذلك ، هي الأغلبية المهيمنة ، فانتقل إلى الكود الصغير دون خوف. علاوة على ذلك ، فإن الانتقال إليها أمر لا مفر منه - لأن أي تطور أمر لا مفر منه.
إذا كان بإمكان مطور واحد على نظام أساسي منخفض الكود القيام بعمله بشكل أسرع من مطورين اثنين بدون رمز منخفض ، فإن هذا يمنح الشركة السبق من جميع النواحي. الحد الأدنى لإدخال الحلول منخفضة الكود أقل مما هو عليه في التقنيات "التقليدية" ، وهذا له تأثير إيجابي على مسألة نقص الموظفين. عند استخدام أدوات التعليمات البرمجية المنخفضة ، من الممكن تسريع التفاعل بين الفرق الوظيفية واتخاذ قرارات أسرع بشأن صحة مسار البحث المختار لعلوم البيانات. يمكن للمنصات منخفضة المستوى أن تقود التحول الرقمي للمؤسسة ، حيث يمكن فهم الحلول المنتجة من قبل المتخصصين غير التقنيين (على وجه الخصوص ، مستخدمي الأعمال).
إذا كان لديك موعد نهائي ضيق ، ومنطق عمل مزدحم ، ونقص في الخبرة التكنولوجية ، وتحتاج إلى تسريع وقت التسويق ، فإن التعليمات البرمجية المنخفضة هي إحدى الطرق لتلبية احتياجاتك.
ليس هناك من ينكر أهمية أدوات التطوير التقليدية ، ولكن في كثير من الحالات ، يعد استخدام الحلول ذات التعليمات البرمجية المنخفضة هو أفضل طريقة لزيادة كفاءة المشكلات التي يتم حلها.