Apache Pinot عبارة عن مخزن بيانات OLAP موزع في الوقت الفعلي، تم تصميمه لتقديم تحليلات قابلة للتطوير في الوقت الفعلي مع زمن وصول منخفض. يمكنه استيعاب مصادر البيانات المجمعة (مثل Hadoop HDFS وAmazon S3 وAzure ADLS وGoogle Cloud Storage) بالإضافة إلى مصادر البيانات المتدفقة (مثل Apache Kafka).
تم إنشاء Pinot بواسطة مهندسين في LinkedIn وUber، وهو مصمم للتوسع والتوسع دون حدود أعلى. يظل الأداء ثابتًا دائمًا استنادًا إلى حجم مجموعتك وعتبة الاستعلام المتوقعة في الثانية (QPS).
للحصول على أدلة البدء ووصفات النشر والبرامج التعليمية والمزيد، يرجى زيارة وثائق مشروعنا على https://docs.pinot.apache.org.
تم إنشاء Pinot في الأصل في LinkedIn لتشغيل التطبيقات التحليلية التفاعلية الغنية في الوقت الفعلي مثل من شاهد الملف الشخصي، وتحليلات الشركة، ورؤى المواهب، وغيرها الكثير. يعد UberEats Restaurant Manager مثالًا آخر على العميل الذي يواجه تطبيق Analytics. في LinkedIn، يعمل Pinot على تشغيل أكثر من 50 منتجًا موجهًا للمستخدم، ويستوعب ملايين الأحداث في الثانية ويخدم أكثر من 100 ألف استفسار في الثانية بزمن استجابة بالمللي ثانية.
الاستعلامات السريعة : قم بتصفية وتجميع مجموعات البيانات بالبيتابايت مع زمن استجابة P90 في عشرات المللي ثانية - بسرعة كافية لعرض النتائج المباشرة بشكل تفاعلي في واجهة المستخدم.
التزامن العالي : من خلال التطبيقات التي تواجه المستخدم والتي تستعلم عن Pinot مباشرةً، يمكنها تقديم مئات الآلاف من الاستعلامات المتزامنة في الثانية.
واجهة استعلام SQL : يمكن الوصول إلى واجهة استعلام SQL القياسية للغاية من خلال محرر استعلام مدمج وواجهة برمجة تطبيقات REST.
الصلات المتعددة الاستخدامات : إجراء صلات عشوائية بين الحقيقة/البعد وربط الحقيقة/الحقيقة على مجموعات بيانات بالبيتابايت.
موجهة نحو الأعمدة : قاعدة بيانات موجهة نحو الأعمدة مع أنظمة ضغط متنوعة مثل طول التشغيل وطول البت الثابت.
الفهرسة القابلة للتوصيل : تقنيات الفهرسة القابلة للتوصيل بما في ذلك الطابع الزمني، والمقلوب، وStarTree، وفلتر Bloom، والنطاق، والنص، وJSON، والخيارات الجغرافية المكانية.
الاستيعاب المباشر والدفعي : استوعب من Apache Kafka وApache Pulsar وAWS Kinesis في الوقت الفعلي. استيعاب الدُفعات من Hadoop وSpark وAWS S3 والمزيد. قم بدمج مصادر الدُفعات والتدفق في جدول واحد للاستعلام.
Upsert أثناء الاستيعاب في الوقت الفعلي : قم بتحديث البيانات على نطاق واسع بشكل متسق
تعدد الاستخدامات المدمج : إدارة البيانات وتأمينها في مساحات أسماء منطقية معزولة لإدارة الموارد الملائمة للسحابة.
مصمم للتوسع : يتميز Pinot بأنه قابل للتطوير أفقيًا ومتسامح مع الأخطاء، وقابل للتكيف مع أعباء العمل عبر نطاق التخزين والإنتاجية.
السحابة الأصلية على Kubernetes : يوفر مخطط Helm نشرًا مجمعًا قابلاً للتطوير أفقيًا ومتسامحًا مع الأخطاء ويسهل إدارته باستخدام Kubernetes.
تم تصميم Pinot لتنفيذ استعلامات OLAP في الوقت الفعلي مع زمن وصول منخفض على كميات هائلة من البيانات والأحداث. بالإضافة إلى استيعاب البث في الوقت الفعلي، يدعم Pinot أيضًا حالات الاستخدام المجمعة بنفس ضمانات زمن الوصول المنخفض. وهي مناسبة في السياقات التي تتطلب تحليلات سريعة، مثل التجميعات، على بيانات غير قابلة للتغيير، وربما مع استيعاب البيانات في الوقت الفعلي. يعمل Pinot بشكل جيد جدًا للاستعلام عن بيانات السلاسل الزمنية التي تحتوي على الكثير من الأبعاد والمقاييس.
مثال للاستعلام:
SELECT sum (clicks), sum (impressions) FROM AdAnalyticsTable
WHERE
((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856 )) AND
accountId IN ( 123456789 )
GROUP BY
daysSinceEpoch TOP 100
هل تريد المساهمة في أباتشي/بينوت؟ ؟
هل تريد الانضمام إلى صفوف الملتزمين بالمصادر المفتوحة لـ Apache Pinot؟ ثم تحقق من دليل المساهمة لمعرفة كيفية المشاركة في الكود.
إذا كان لديك خطأ ما أو فكرة لميزة جديدة، فتصفح المشكلات المفتوحة لمعرفة ما نعمل عليه بالفعل قبل فتح مشكلة جديدة.
قمنا أيضًا بوضع علامة على بعض مشكلات المبتدئين التي يمكن للمساهمين الجدد معالجتها.
# Clone a repo
$ git clone https://github.com/apache/pinot.git
$ cd pinot
# Build Pinot
# -Pbin-dist is required to build the binary distribution
# -Pbuild-shaded-jar is required to build the shaded jar, which is necessary for some features like spark connectors
$ mvn clean install -DskipTests -Pbin-dist -Pbuild-shaded-jar
# Run the Quick Demo
$ cd build/
$ bin/quick-start-batch.sh
لإعداد تطوير واجهة المستخدم، راجع هذا المستند.
تتم عمليات إنشاء Pinot العادية باستخدام أمر mvn clean install
.
ومع ذلك، قد يستغرق تشغيل هذا الأمر وقتًا طويلاً.
للحصول على تصميمات أسرع، يوصى باستخدام mvn verify -Ppinot-fastdev
، الذي يعطل بعض المكونات الإضافية غير المطلوبة فعليًا للتطوير.
يمكن العثور على تعليمات أكثر تفصيلاً في قسم العرض التوضيحي السريع في الوثائق.
يرجى الرجوع إلى تشغيل Pinot على Kubernetes في وثائق مشروعنا. يوفر Pinot أيضًا تكاملات Kubernetes مع محرك الاستعلام التفاعلي، Trino Presto، وأداة تصور البيانات، Apache Superset.
راجع وثائق Pinot للحصول على وصف كامل لميزات Pinot.
Apache Pinot موجود تحت ترخيص Apache، الإصدار 2.0