- เอนจินยุคถัดไปที่ออกแบบมาเฉพาะเพื่อ เร่งความเร็วคิวรี SQL โดยใช้ฮาร์ดแวร์ GPU รุ่นล่าสุด
- ส่งคิวรีที่สร้างจากเอนจิน CPU (DuckDB) ไปยังสภาพแวดล้อม GPU (Sirius) ผ่าน ฟอร์แมตคิวรี Substrait
- แยก Raw Data Cache Region และ Processing Region ภายในหน่วยความจำ GPU เพื่อเพิ่มประสิทธิภาพการโหลดและประมวลผลข้อมูลให้สูงสุด
- ทำความเร็วได้ มากกว่า 10 เท่าเมื่อเทียบที่ต้นทุนเท่ากัน บนขนาด TPC-H 100 โดยไม่ต้องแก้ไขคิวรีหรือเปลี่ยนระบบ
- เหมาะสำหรับ เวิร์กโหลดข้อมูลขนาดใหญ่ เช่น การวิเคราะห์แบบเรียลไทม์ การเงิน และ ETL
- สภาพแวดล้อมที่รองรับ: Ubuntu 20.04+, GPU NVIDIA Volta(7.0+) ขึ้นไป, CUDA 11.2+, CMake 3.30.4 ขึ้นไป (แนะนำ 16 vCPU ขึ้นไป)
- วิธีติดตั้ง: มีให้เลือก 3 แบบ ได้แก่ AWS AMI (อิมเมจที่ตั้งค่าไว้ล่วงหน้า), Docker image และการติดตั้ง dependency ด้วยตนเอง
- Docker:
sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
- แบบแมนนวล: ต้องติดตั้ง dependency ของ DuckDB, CUDA, libcudf (ติดตั้งผ่าน conda) เป็นต้น แยกต่างหาก
- ข้อจำกัดหลัก
- ทำงานได้เฉพาะภายในขนาดหน่วยความจำ GPU เท่านั้น (มีแผนรองรับ partitioning/batching, disk spill และ multi-GPU ในภายหลัง)
- จำนวนแถวสูงสุดถูกจำกัดด้วยขีดจำกัด int32_t ของ libcudf (~2 พันล้านแถว)
- ชนิดข้อมูล: รองรับ INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE, DECIMAL และกำลังพัฒนาชนิดอื่นเพิ่มเติม
- ตัวดำเนินการ: รองรับ FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION, TOP-N, LIMIT, CTE ส่วนฟังก์ชัน WINDOW เป็นต้นยังอยู่ระหว่างพัฒนา
- ยังไม่รองรับ Partially NULL Column (มีแผนแพตช์ในอนาคต)
- หากเกิดปัญหา จะสลับกลับไปใช้เอนจิน CPU ของ DuckDB โดยอัตโนมัติ
1 ความคิดเห็น
Substrait - มาตรฐานการแลกเปลี่ยนข้ามแพลตฟอร์มสำหรับการดำเนินการประมวลผลข้อมูล