YTsaurus عبارة عن منصة تخزين ومعالجة موزعة للبيانات الضخمة مع دعم لنموذج MapReduce.
قبل بضعة أيام، أعلنت شركة ياندكس عن إطلاق منصة YTsauru مفتوحة المصدر، والتي تُستخدم للتخزين الموزع ومعالجة كميات كبيرة من البيانات، وتدعم معالجة البيانات باستخدام نموذج MapReduce، ومحرك استعلام SQL، ونظام الملفات الموزع، وتخزين NoSQL بتنسيق المفتاح والقيمة.
يُستخدم نظام YTsaurus في بنية ياندكس التحتية للاستفادة بكفاءة من القدرة الحاسوبية لأجهزة الكمبيوتر العملاقة التابعة للشركة. ويمكن توسيع نطاق المنصة لتشمل مجموعات تضم أكثر من 10000 عقدة، تغطي ما يصل إلى مليون معالج وآلاف وحدات معالجة الرسومات (لأداء مهام التعلم الآلي).
يمكن استخدام الحاويات المعزولة التي تعمل على الخوادم الفعلية كوحدات عنقودية. يمكن أن يحتوي التخزين على إكسابايت من البيانات الموجودة على وسائط مختلفة مثل محركات الأقراص الثابتة ومحركات أقراص الحالة الصلبة و NVME وذاكرة الوصول العشوائي.
تدعم المجموعة الإضافة الديناميكية وإزالة العقد ، والتكرار (بدون نقطة فشل واحدة) ، والنسخ المتماثل التلقائي ، وترقيات برنامج الكتلة النشطة ، واستعادة التكرار التلقائي في حالة فشل العقدة.
يتم دعم ثلاثة أنواع من المجموعات: مجموعات الحوسبة (للمعالجة المتوازية الضخمة للبيانات الكبيرة باستخدام عمليات MapReduce)، ومجموعات الجداول المحورية وتخزين القيم الرئيسية، والمجموعات الموزعة جغرافيا.
يمكن أن توفر الخدمة المستندة إلى النظام الأساسي وسائل لتخزين البيانات ومعالجتها لعشرات الآلاف من المستخدمين. تتضمن تطبيقات YTsaurus النموذجية في Yandex تخزين المعلومات حول مستخدمي شبكة الإعلانات ، وتدريب نماذج التعلم الآلي ، وتشكيل فهرس بحث ، وبناء مستودع بيانات لخدمات مثل Yandex Taxi. ، و Food ، و Lavka ، والتسليمات.
من حالات الاستخدام الأساسية تم ذكرها:
- تجهيز الدفعات: MapReduce و SPYT (Apache Spark كمحرك حوسبة على البيانات في YTsaurus) لمعالجة البيانات المهيكلة وشبه المهيكلة: السجلات أو المعاملات المالية.
- التحليل المخصص: استعلامات سريعة عبر CHYT (مجموعة من خوادم ClickHouse على عقد حساب YTsaurus) دون نسخ البيانات إلى نظام تحليلات منفصل. ODBC و JDBC مع القدرة على توصيل BI للتصور.
- مهام OLTP: تعمل المعاملات في الوقت الفعلي مع تخزين القيمة الرئيسية: على سبيل المثال ، تخزين ملف تعريف المستخدم أو عرض الإعلانات أو معالجة البث.
- التعلم الالي: إدارة مجموعات GPU لتدريب النماذج بمليارات من المعلمات.
- تخزين المعلومات الوصفية: تخزين المعاملات لمعلومات البيانات والخدمة الموثوقة للأقفال الموزعة.
- إنشاء مستودعات البيانات و ETL لمعالجة البيانات متعددة المستويات باستخدام أدوات نموذجية: Apache Spark و SQL و MapReduce.
بينما من ناحية العناصر الرئيسية للهندسة المعمارية ، تم ذكر ما يلي:
- نظام الملفات الموزع وتخزين المعلومات المستندة إلى الشجرة من Cypress المتسامح مع الأخطاء.
- برنامج جدولة للحوسبة الموزعة مع دعم لنموذج MapReduce ، بالإضافة إلى العمليات الأساسية المتقدمة.
- قابلية التوسع الأفقي لعمليات تكنولوجيا المعلومات.
- عزل موارد الحوسبة وإمكانية تخصيص موارد حوسبة معينة (CPU ، GPU ، RAM) بنسب مختلفة.
- جداول PivotTable لإنشاء تخزين OLTP ، ودعم التخزين المستند إلى MVCC ، والمعاملات ، والقدرة على حذف البيانات بعد انتهاء الصلاحية ، وقوائم انتظار الرسائل لتدفق معالجة البيانات عبر PivotTables.
- API ومكتبات لغات البرمجة C ++ و Python و Java و Go.
- واجهة ويب للمستخدمين والمسؤولين تدعم التنقل عبر مساحة تخزين تشبه الشجرة.
وأخيرًا، إذا كنت مهتمًا بمعرفة المزيد ، فاعلم أن كود المشروع مكتوب بلغة C/C++ وهو مفتوح المصدر بموجب ترخيص Apache 2.0. يمكنك الاطلاع على المزيد من التفاصيل عبر الرابط التالي.
يحتوي مستودع GitHub على كود الخادم الخاص بـ YTsaurus، وبنية النشر التي تستخدم k8s، وواجهة ويب للنظام، ومجموعات تطوير البرامج (SDKs) الخاصة بالعميل للغات البرمجة الشائعة مثل C++ و Java و Go و Python.