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 เป็นอีกตัวอย่างหนึ่งของลูกค้าที่ต้องเผชิญกับแอป Analytics ที่ LinkedIn Pinot ขับเคลื่อนผลิตภัณฑ์ที่ต้องพบปะกับผู้ใช้มากกว่า 50 รายการ นำเข้าเหตุการณ์นับล้านต่อวินาที และให้บริการแบบสอบถามมากกว่า 100,000 รายการต่อวินาทีในเวลาแฝงในระดับมิลลิวินาที
การสืบค้นด่วน : กรองและรวมชุดข้อมูลเพตาไบต์ด้วยเวลาแฝง P90 ในระดับสิบมิลลิวินาที ซึ่งเร็วพอที่จะส่งคืนผลลัพธ์สดแบบโต้ตอบใน UI
การทำงานพร้อมกันสูง : ด้วยแอปพลิเคชันที่ผู้ใช้เผชิญหน้ากันที่ทำการสืบค้น Pinot โดยตรง จึงสามารถให้บริการการสืบค้นพร้อมกันนับแสนครั้งต่อวินาที
อินเทอร์เฟซการสืบค้น SQL : อินเทอร์เฟซการสืบค้น SQL ที่มีมาตรฐานสูงสามารถเข้าถึงได้ผ่านตัวแก้ไขการสืบค้นในตัวและ REST API
การรวมอเนกประสงค์ : ดำเนินการรวมข้อเท็จจริง/มิติ และการรวมข้อเท็จจริง/ข้อเท็จจริงตามชุดข้อมูลเพตาไบต์โดยพลการ
เชิงคอลัมน์ : ฐานข้อมูลเชิงคอลัมน์ที่มีรูปแบบการบีบอัดต่างๆ เช่น ความยาวรัน, ความยาวบิตคงที่
การทำดัชนีแบบเสียบได้ : เทคโนโลยีการทำดัชนีแบบเสียบได้รวมถึงการประทับเวลา, กลับด้าน, StarTree, ตัวกรอง Bloom, ช่วง, ข้อความ, JSON และตัวเลือกภูมิสารสนเทศ
สตรีมและนำเข้าแบบแบตช์ : นำเข้าจาก Apache Kafka, Apache Pulsar และ AWS Kinesis แบบเรียลไทม์ นำเข้าเป็นกลุ่มจาก Hadoop, Spark, AWS S3 และอื่นๆ รวมแหล่งที่มาแบบแบตช์และสตรีมมิงไว้ในตารางเดียวสำหรับการสืบค้น
เพิ่มระดับในระหว่างการนำเข้าแบบเรียลไทม์ : อัปเดตข้อมูลในระดับที่มีความสม่ำเสมอ
การครอบครองหลายรายการในตัว : จัดการและรักษาความปลอดภัยข้อมูลในเนมสเปซแบบลอจิคัลแบบแยกสำหรับการจัดการทรัพยากรที่เป็นมิตรต่อระบบคลาวด์
Built for Scale : Pinot สามารถปรับขนาดได้ในแนวนอนและทนทานต่อข้อผิดพลาด ปรับให้เข้ากับปริมาณงานทั่วทั้งพื้นที่จัดเก็บข้อมูลและสเปกตรัมการรับส่งข้อมูล
Cloud-native บน 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 หรือไม่? -
ต้องการเข้าร่วมกลุ่มผู้คอมมิตโอเพ่นซอร์สกับ 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
สำหรับการตั้งค่าการพัฒนา UI โปรดดูเอกสารนี้
การสร้าง Pinot ปกติเสร็จสิ้นโดยใช้คำสั่ง mvn clean install
อย่างไรก็ตาม คำสั่งนี้อาจใช้เวลานานในการรัน
สำหรับการสร้างที่เร็วขึ้น ขอแนะนำให้ใช้ mvn verify -Ppinot-fastdev
ซึ่งจะปิดการใช้งานปลั๊กอินบางตัวที่ไม่จำเป็นสำหรับการพัฒนาจริงๆ
คำแนะนำโดยละเอียดเพิ่มเติมสามารถดูได้ที่ส่วนการสาธิตด่วนในเอกสารประกอบ
โปรดดูการเรียกใช้ Pinot บน Kubernetes ในเอกสารประกอบโครงการของเรา Pinot ยังนำเสนอการผสานรวม Kubernetes เข้ากับเอ็นจิ้นการสืบค้นแบบโต้ตอบ Trino Presto และเครื่องมือสร้างภาพข้อมูล Apache Superset
ตรวจสอบเอกสารประกอบของ Pinot สำหรับคำอธิบายที่สมบูรณ์เกี่ยวกับคุณสมบัติของ Pinot
Apache Pinot อยู่ภายใต้ Apache License เวอร์ชัน 2.0