مصدر مفتوح شعبي - الجزء الأول: 3 أدوات للعمل مع البيانات

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


/ الصورة AKT.UZ PD

سنتحدث عن حلول مثل FoundationDB و LogDevice و Queryparser . في العام الماضي ، تمت مناقشتها بنشاط في أخبار هاكر. كان سبب الاهتمام هو حقيقة أن شركات تكنولوجيا المعلومات الكبرى - Apple و Uber و Facebook شاركت في تطويرها. هذا يعني أن الأدوات الثلاثة مناسبة للعمل مع بنية تحتية لتكنولوجيا المعلومات واسعة النطاق ومحملة بدرجة كبيرة.


Foundationdb



FoundationDB هو DBMS متعدد النماذج من النوع NoSQL . تم تقديمه في عام 2012 من قبل ثلاثة مهندسين من العلوم المرئية ، الذين عملوا على منصة لتصور البيانات (وهي اليوم جزء من Adobe Analytics).

بخلاف الأنظمة المماثلة الأخرى ، تتوافق العمليات في FoundationDB مع مبادئ ACID : atomicity ، والاتساق ، وعزل ومتانة البيانات. تعتبر قواعد بيانات إدارة قواعد البيانات (DBMS) التي تلتزم بهذا النموذج الأكثر موثوقية ويمكن التنبؤ بها ، ولكن في NoSQL يتم التضحية ببعض مبادئ ACID للحصول على أداء أفضل.

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

بفضل هذه الخصائص ، سرعان ما أصبح FoundationDB مشهورًا. تم تنفيذه بواسطة العديد من الخدمات السحابية: خدمة مراقبة Wavefront (أصبحت الآن جزءًا من VMware) وأنظمة تخزين Snowflake و SkuVault. تأثرت شعبية FoundationDB أيضًا بحقيقة أن الكود المصدري للمشروع مفتوح منذ بدايته.

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

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


Logdevice



LogDevice هو نظام تخزين سجل موزع تم إنشاؤه على Facebook. تم تحسينها لتسجيل البيانات الواردة بالتتابع: يتم حفظ أي معلومات في النظام ليس كملف منفصل ، ولكن كجزء من "مجموعة سجلات" معينة. يتيح لك ذلك تحديد الترتيب الذي يتم به تلقي البيانات بدقة.

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

ولكن هناك رأي مفاده أن حل Facebook سيكسب شعبية ببطء. هناك عدد كبير من الأدوات المماثلة في السوق (على سبيل المثال ، Apache Kafka). ولديهم بالفعل عدد كبير من عمليات الدمج ، ويجب على LogDevice فقط الحصول عليها. بالمناسبة ، يعمل مطورو الأداة الآن على إدخال تكامل LogDevice مع نظام تزامن حاوية Kubernetes.

الجميع مدعوون للمشاركة - متطلبات الكود موصوفة في وثيقة مستودع منفصلة على GitHub .


/ الصورة الكسندر يوم CC BY


Queryparser



Queryparser هو نظام تحليل لثلاث لهجات SQL: Vertica و Hive و Presto. مثل LogDevice ، تم إنشاء Queryparser في الأصل للمهام الداخلية لشركة تكنولوجيا معلومات كبيرة - هذه المرة نشأ المشروع في Uber.

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

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

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

كان كود المصدر لـ Queryparser مفتوحًا منذ بداية المشروع ، ولكن في عام 2018 فقط أصدر Uber مقالة مفصلة حول الأداة. يمكن اعتباره كدليل للعمل مع النظام. وفي المستودع ، يمكنك العثور على إرشادات التثبيت وتعليمات لأولئك الذين يرغبون في المشاركة في تطوير Queryparser.

في المستقبل ، تخطط أوبر لتطوير الحل بشكل أكبر. على سبيل المثال ، أضف دعمًا لهجات SQL الجديدة: PostgreSQL و MySQL و SQLite. من بين مهام الشركة أيضًا إضافة أنواع بيانات التدقيق في الاستعلامات وترجمة الاستعلامات من لهجة إلى أخرى.



في المرة القادمة نواصل قصة المشاريع مفتوحة المصدر الشعبية لعام 2018. دعونا نتحدث عن حلول مفتوحة المصدر لإدارة السحابة وأدوات المطور.



بضع مشاركات من مدونة IaaS للشركات الأولى:


ما نكتب عنه في قناة Telegram:

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


All Articles