Apache Pinot هو مستودع بيانات OLAP موزع في الوقت الفعلي
Apache Pinot هو حل تخزين OLAP موزع في الوقت الفعلي مصمم لتقديم تحليلات قابلة للتوسع ومنخفضة زمن الوصول في الوقت الفعلي.
يستطيع Pinot استيعاب البيانات من مصادر البيانات المجمعة (مثل HDFS وS3 وAzure Data Lake وGoogle Cloud Storage) بالإضافة إلى مصادر البيانات المتدفقة (مثل Kafka). صُمم Pinot ليكون قابلاً للتوسع أفقيًا، مما يسمح له بالتوسع ليشمل مجموعات بيانات أكبر ومعدلات استعلام أعلى حسب الحاجة.
حول أباتشي بينوت
طُوّر مشروع Pinot في الأصل بواسطة LinkedIn ، وفي عام 2015 نُقل إلى مؤسسة Apache لمواصلة تطويره بشكل مشترك. صُمم نظام التخزين هذا للعمل في بيئة تُضاف فيها بيانات جديدة باستمرار، وهو مُهندس لتوفير زمن استجابة منخفض ومتوقع، مما يُمكّن استخدامه لمعالجة الاستعلامات في الوقت الفعلي.
مثل معظم مستودعات البيانات الأخرى وحلول تخزين بيانات OLAP، يدعم Pinot لغة استعلام تشبه لغة SQL تدعم التحديد والتجميع والتصفية والتجميع والفرز واستعلامات البيانات الأخرى.
يوفر Apache Pinot قابلية التوسع الأفقي، ووسيلة لتحقيق التسامح مع الأعطال ، والقدرة على الاستمرار في مواجهة أعطال البرامج والأجهزة. تُدمج عمليات النسخ الاحتياطي والتكرار مباشرةً في دورة معالجة البيانات المُضافة إلى مخزن البيانات. من جهة، يُبسط هذا النهج بنية النظام بشكل كبير، ولكنه من جهة أخرى، يُضيف تأخيرًا بين إضافة البيانات وإتاحتها للاستعلام.
تُخزَّن البيانات في جداول ضمن قاعدة بيانات عمودية، وتدعم أنظمة ضغط متنوعة وإمكانية وضع قيم متعددة في حقل واحد. يوفر Pinot نظام فهرسة قابل للتوصيل يمكنه استخدام تقنيات فهرسة متنوعة (الفهرس المرتب، وفهرس الصور النقطية، والفهرس المعكوس، وفهرس شجرة النجوم، ومرشح بلوم، وفهرس النطاق، وفهرس البحث النصي (Lucence/FST)، وفهرس JSON، والفهرس الجغرافي المكاني).
من الخصائص التي تتميز بها Apache Pinot:
- موجه نحو العمود- قاعدة بيانات موجهة نحو الأعمدة مع أنظمة ضغط مختلفة مثل طول التشغيل وطول البت الثابت.
- فهرسة قابلة للتوصيل: تقنيات الفهرسة القابلة للتوصيل، الفهرس المفرز، فهرس الصور النقطية، الفهرس المقلوب.
- الاستعلام الأمثل- القدرة على تحسين خطة الاستعلام/التنفيذ بناءً على بيانات تعريف الاستعلام والقطاع.
- استيعاب التدفقات والدفعات: بالقرب من استيعاب تدفقات Hadoop في الوقت الفعلي واستيعاب الدُفعات.
- استعلام: محرك تنفيذ الاستعلام المستند إلى SQL.
- Upsert أثناء الابتلاع في الوقت الحقيقي: تحديث البيانات على نطاق واسع مع الاتساق
- حقول قيم متعددة: دعم الحقول متعددة القيم، مما يسمح لك بالاستعلام عن الحقول كقيم مفصولة بفواصل.
- السحابة الأصلية على Kubernetes: يوفر مخطط Helm نشرًا مجمعًا قابلاً للتطوير أفقيًا ومتسامحًا مع الأخطاء ويسهل إدارته باستخدام Kubernetes.
نسخة جديدة من أباتشي بينوت
تجدر الإشارة إلى أن الإصدار 1.0 من Apache Pinot قد تم إصداره مؤخرًا ، والذي لخص بشكل أساسي الكثير من العمل لتحقيق استقرار قاعدة التعليمات البرمجية وأخذ رغبات المجتمع في الاعتبار (تم النظر في أكثر من 300 تعليق).
بالإضافة إلى ذلك، تجدر الإشارة إلى أن محرك الاستعلام متعدد المراحل الجديد قد بلغ كامل إمكاناته ، مما يتيح دعم عمليات دمج الجداول (JOIN). كان المحرك المستخدم في البداية يؤدي أداءً ممتازًا مع عمليات التصفية والتجميع البسيطة، ولكن لضمان أوقات تنفيذ استعلامات متوقعة، لم يكن يدعم عمليات دمج الجداول.
يتضمن المحرك الجديد مراحل وسيطة لمعالجة الاستعلامات المعقدة، وتقترب دلالات لغة SQL الخاصة به من معيار ANSI SQL . علاوة على ذلك، يوفر الإصدار الجديد دعمًا أصليًا لمعالجة بيانات JSON، ويدعم قيمة "NULL"، ويتكامل مع Apache Spark 3.x، ويُحسّن تنفيذ الجداول في وضع Upsert (بإضافة ضغط الأجزاء ودعم عمليات الحذف).
وأخيرًا، إذا كنت مهتمًا بمعرفة المزيد ، فاعلم أن كود المشروع مكتوب بلغة جافا وموزع بموجب ترخيص أباتشي. يمكنك الاطلاع على تفاصيل الإصدار الجديد عبر الرابط التالي.