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 มีระบบสร้างดัชนีแบบเสียบปลั๊กได้ ซึ่งสามารถใช้เทคโนโลยีการสร้างดัชนีต่างๆ ได้ (ดัชนีเรียงลำดับ, ดัชนีบิตแมป, ดัชนีกลับด้าน, ดัชนี StarTree, ตัวกรอง Bloom, ดัชนีช่วง, ดัชนีค้นหาข้อความ (Lucence/FST), ดัชนี JSON, ดัชนีเชิงพื้นที่)
ลักษณะที่โดดเด่นจาก Apache Pinot:
- เน้นคอลัมน์– ฐานข้อมูลแบบคอลัมน์ที่มีรูปแบบการบีบอัดต่างๆ เช่น ความยาวรันและความยาวบิตคงที่
- การจัดทำดัชนีแบบเสียบได้: เทคโนโลยีการทำดัชนีแบบเสียบได้, ดัชนีเรียงลำดับ, ดัชนีบิตแมป, ดัชนีกลับด้าน
- การเพิ่มประสิทธิภาพการค้นหา- ความสามารถในการปรับแผนแบบสอบถาม/การดำเนินการให้เหมาะสมตามข้อมูลเมตาของแบบสอบถามและเซ็กเมนต์
- การกลืนกินสตรีมและแบตช์: การนำเข้าสตรีม Hadoop และการนำเข้าแบบแบตช์ที่ใกล้เคียงแบบเรียลไทม์
- การปรึกษาหารือ: เอ็นจิ้นการดำเนินการสืบค้นแบบอิง SQL
- เพิ่มในระหว่างการนำเข้าแบบเรียลไทม์: อัปเดตข้อมูลในระดับที่มีความสม่ำเสมอ
- ช่องค่าหลายช่อง: รองรับฟิลด์หลายค่า ช่วยให้คุณสามารถสืบค้นฟิลด์เป็นค่าที่คั่นด้วยเครื่องหมายจุลภาค
- คลาวด์เนทีฟบน Kubernetes: แผนภูมิ Helm นำเสนอการปรับใช้คลัสเตอร์ที่ทนทานต่อข้อผิดพลาดที่ปรับขนาดได้ในแนวนอน ซึ่งง่ายต่อการจัดการด้วย Kubernetes
Apache Pinot เวอร์ชันใหม่
เป็นที่น่ากล่าวถึงว่า Apache Pinot เวอร์ชัน 1.0 เพิ่งได้รับการเผยแพร่ เมื่อเร็ว ๆ นี้ ซึ่งโดยพื้นฐานแล้วเป็นการสรุปงานมากมายเพื่อทำให้โค้ดเบสมีความเสถียรและคำนึงถึงความต้องการของชุมชน (มีการพิจารณาความคิดเห็นมากกว่า 300 รายการ)
นอกจากนี้ สิ่งสำคัญที่ควรทราบคือ เอ็นจิ้นการค้นหาแบบหลายขั้นตอน (Multi-Stage Query Engine) ใหม่ได้แสดงศักยภาพอย่างเต็มที่แล้วโดยรองรับการรวมตาราง (JOIN) เอ็นจิ้นที่ใช้ในตอนแรกนั้นทำงานได้ดีเยี่ยมกับการกรองและการรวมข้อมูลแบบง่ายๆ แต่เพื่อให้มั่นใจได้ว่าเวลาในการประมวลผลคำสั่งค้นหาจะคาดการณ์ได้ จึงไม่รองรับการรวมตาราง
เอนจินใหม่นี้มีขั้นตอนระดับกลางสำหรับการประมวลผลคำสั่งค้นหาที่ซับซ้อน และความหมายของ SQL ก็ใกล้เคียงกับ ANSI SQLนอกจากนี้ เวอร์ชันใหม่ยังรองรับการประมวลผลข้อมูล JSON โดยตรง รองรับค่า "NULL" ผสานรวมกับ Apache Spark 3.x และปรับปรุงการใช้งานตารางในโหมด Upsert (เพิ่มการบีบอัดเซ็กเมนต์และรองรับการดำเนินการลบ)
สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติมคุณควรทราบว่าโค้ดของโปรเจ็กต์นี้เขียนด้วยภาษา Java และเผยแพร่ภายใต้ใบอนุญาต Apache คุณสามารถดูรายละเอียดเกี่ยวกับเวอร์ชันใหม่ได้ที่ลิงก์ต่อไปนี้