- เป็น สาขาโอเพนซอร์สที่พัฒนาบน MySQL โดย Alibaba Group ซึ่งรวมความสามารถด้าน OLTP และ OLAP ไว้ในเอนจินฐานข้อมูลเดียว
- ฝัง เอนจินคอลัมน์ DuckDB มาในตัว เพื่อมอบ ประสิทธิภาพที่เร็วขึ้นสูงสุด 200 เท่า สำหรับคิวรีเชิงวิเคราะห์
- รองรับ การค้นหาเวกเตอร์บนพื้นฐาน HNSW และประมวลผล AI·ML embedding ได้สูงสุด 16,383 มิติ
- เข้ากันได้กับเครื่องมือ·ไดรเวอร์ MySQL เดิม 100% ใช้งานได้ทันทีโดยไม่ต้องเรียนรู้เพิ่มเติม
- เป็นเทคโนโลยีที่ผ่านการพิสูจน์แล้วในสภาพแวดล้อมโปรดักชันขนาดใหญ่ของ Alibaba Cloud และกำลังได้รับความสนใจในฐานะ ฐานข้อมูลแบบบูรณาการสำหรับเวิร์กโหลด AI·การวิเคราะห์
ภาพรวมของ AliSQL
- AliSQL คือ สาขาระดับองค์กรของ MySQL ที่พัฒนาโดย Alibaba Group โดยผสาน เอนจิน OLAP ของ DuckDB และ ความสามารถค้นหาเวกเตอร์แบบเนทีฟ
- เป็นระบบที่ผ่านการตรวจสอบแล้วจากการใช้งานฐานข้อมูลนับล้านในสภาพแวดล้อมโปรดักชันของ Alibaba
- ผสาน เสถียรภาพ OLTP ของ InnoDB เข้ากับ สมรรถนะการวิเคราะห์ความเร็วสูงของ DuckDB
- ทุกความสามารถเข้าถึงได้ผ่าน อินเทอร์เฟซ MySQL เดิม
ประสิทธิภาพและคุณสมบัติหลัก
- DuckDB Storage Engine เป็นเอนจิน OLAP แบบคอลัมน์ที่รองรับการบีบอัดอัตโนมัติ และปรับให้เหมาะกับเวิร์กโหลดการวิเคราะห์
- ให้ ความเร็วในการประมวลผลคิวรีวิเคราะห์สูงสุด 200 เท่า เมื่อเทียบกับ InnoDB
- Vector Index (VIDX) รองรับการจัดเก็บเวกเตอร์และการค้นหาเพื่อนบ้านใกล้เคียงโดยประมาณ (ANN) บนพื้นฐาน อัลกอริทึม HNSW
- รองรับ การคำนวณระยะทางแบบ COSINE และ EUCLIDEAN และประมวลผล เวกเตอร์ได้สูงสุด 16,383 มิติ
- คงไว้ซึ่ง ความเข้ากันได้กับ MySQL 100% จึงสามารถใช้ SQL, ไดรเวอร์ และเครื่องมือเดิมได้ทันที
โรดแมปการพัฒนาในอนาคต
- ภายในไตรมาส 4 ปี 2025 จะเปิดให้ใช้งานแบบโอเพนซอร์สครบทั้ง DuckDB engine, Vector Index
- ความสามารถที่วางแผนไว้หลังปี 2026
- การปรับแต่ง DDL: instant DDL, การสร้าง B+tree แบบขนาน, non-blocking lock
- การปรับแต่ง RTO: การกู้คืนหลังแครชที่รวดเร็ว, RTO ต่ำสุด
- Replication Boost: parallel Binlog Flush, Binlog in Redo, การปรับแต่งทรานแซกชันขนาดใหญ่
ตัวอย่างการใช้งาน
- การสร้างและคิวรีตารางวิเคราะห์ด้วย DuckDB
- หลังสร้างตารางด้วยเอนจิน DuckDB การรันคิวรีสรุปยอดขายรายเดือนทำได้เร็วกว่า InnoDB ถึง 200 เท่า
- การค้นหาเวกเตอร์สำหรับงาน AI
- หลังสร้างตารางที่มีคอลัมน์เวกเตอร์ 768 มิติ สามารถทำ การค้นหาความคล้ายคลึงด้วยระยะทาง cosine ผ่าน ดัชนี HNSW ได้
โอเพนซอร์สและชุมชน
- จะเปิดเป็นโอเพนซอร์สในเดือนธันวาคม 2025 โดยทีม Alibaba Cloud Database เป็นผู้พัฒนา ดูแล และบำรุงรักษาหลัก
- เผยแพร่ภายใต้ สัญญาอนุญาต GPL-2.0 ซึ่งเป็นรูปแบบเดียวกับ MySQL
- สามารถรายงานบั๊กและเสนอฟีเจอร์ผ่าน GitHub Issues
- ให้บริการเชิงพาณิชย์บน Alibaba Cloud RDS ในรูปแบบ อินสแตนซ์วิเคราะห์ที่ใช้ DuckDB
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แนวทางที่ใช้ DuckDB เป็น storage engine น่าสนใจมาก
สามารถคงการเชื่อมต่อ MySQL, เครื่องมือ, และโครงสร้างการทำ replication เดิมไว้ได้ตามเดิม ขณะที่ส่งต่อเฉพาะ query เชิงวิเคราะห์ไปยังเอนจินแบบคอลัมน์
ในแง่การปฏิบัติการแล้วง่ายกว่าการตั้งฐานข้อมูลสำหรับงานวิเคราะห์แยกต่างหากและสร้าง pipeline สำหรับซิงก์ข้อมูลมาก
แต่ประเด็นสำคัญคือจะรักษา ความสอดคล้องของข้อมูล ระหว่าง InnoDB กับ DuckDB อย่างไร
รายละเอียดมีสรุปไว้ใน เอกสาร AliSQL DuckDB
มีการทำ optimization หลายอย่างทั้งในส่วนการส่ง binlog แบบ batch และการดำเนินการเขียน
เมื่อปิด
log_binจะ commit ธุรกรรมของ DuckDB ก่อนบันทึก GTID และเมื่อกู้คืนจากความขัดข้องจะนำกลับมาใช้ใหม่แบบ idempotentเมื่อเปิด
log_binจะใช้ binlog โดยตรง และบันทึก ตำแหน่ง Binlog ที่มีผล ไว้ใน DuckDB เพื่อให้ rollback กลับถึงตำแหน่งนั้นได้เมื่อเกิดความล้มเหลวผลลัพธ์คือถ้า
gtid_executedของ replica ตรงกับ primary ข้อมูลใน DuckDB ก็จะสอดคล้องกันด้วยมองทิศทางวิวัฒนาการของฐานข้อมูล SQL ในอีก 10 ปีข้างหน้าเป็น 3 ขั้น
การอ่านข้อมูลเก่าจะช้าลงเล็กน้อยเท่านั้น ส่วนที่เหลือจะมอบประสบการณ์ query แบบรวมเป็นหนึ่งเดียวอย่างสมบูรณ์
สงสัยว่าถ้าเทียบกับ pg_duckdb แล้วจะแตกต่างกันอย่างไร
ด้วยกลไกส่วนขยายของ Postgres ทำให้ pg_duckdb ดูค่อนข้างเรียบร้อยดี
สงสัยว่าระบบนี้จะป้อนข้อมูลงานธุรกรรมเข้า DuckDB แบบเรียลไทม์เหมือน SAP HANA หรือไม่
ถ้าใช่ งานซับซ้อนในการซิงก์ data warehouse ด้วย Kafka หรือ Debezium ก็น่าจะลดลงมาก
อยากฟังความเห็นของ apavlo ด้วย
ดูเหมือนว่ายุคของ HTAP จะมาถึงอย่างจริงจังแล้ว
น่าสนใจที่ ฐานข้อมูลไฮบริด แบบนี้ถูกนำไปใช้มากขึ้นเรื่อย ๆ
โดยเฉพาะการปรับปรุงการประมวลผลธุรกรรมที่อธิบายไว้ใน เอกสาร AliSQL DuckDB นั้นน่าประทับใจ
การรับประกันการซิงก์ระหว่างตารางหลักกับตารางสำหรับงานวิเคราะห์ได้อย่างรวดเร็วและ ในระดับธุรกรรม เป็นสิ่งที่ยอดเยี่ยม
การรับประกันความสอดคล้องก็ไม่ได้ต่างจากระบบอย่าง Materialize มากนัก
จริง ๆ แล้วความพยายามแบบนี้มีมานานแล้ว และก็มีหลายกรณีที่เพิ่ม OLAP storage engine ให้กับ MySQL/Postgres
การเพิ่ม embedded columnar engine ให้กับ DB แบบดั้งเดิมมีข้อดีมากในแง่ productivity และความเรียบง่ายในการปฏิบัติการ
ตอนนี้ใช้งานชุด PG + Tiger Data อยู่ แต่ฝั่ง MySQL ยังไม่มีทางเลือกแบบนี้
ความพยายามครั้งนี้ดูเหมือนจะช่วยเติมช่องว่างนั้นได้
ช่วงหลังยังเพิ่ม vector storage type เข้ามาด้วย จึงน่าสนใจที่จะเปรียบเทียบประสิทธิภาพกับของ Alibaba
คนมักพูดถึง Postgres บ่อย แต่ MariaDB ก็สารพัดประโยชน์ไม่น้อย
แม้จะต้องใช้การเชื่อมต่อสองชุด แต่ก็ทำงานได้ค่อนข้างดี
ต้องการแค่ count ที่เร็วแบบ ClickHouse แต่การต้องผ่านกระบวนการซิงก์ทั้งหมดนั้นยุ่งยาก
TimeSeries ถูกปรับให้เหมาะกับงานเฉพาะทาง จึงใช้งานทั่วไปได้ลำบาก
รองรับทั้ง ข้อมูลแบบ Row และแบบ Column แต่เข้ากันได้กับ MySQL เท่านั้น ไม่ได้ใช้ codebase เดียวกัน
เพราะฉะนั้นจึงไม่ใช่ส่วนขยายของ MySQL แบบสมบูรณ์
สงสัยว่าจะ deploy ฟีเจอร์นี้ร่วมกับ MySQL Operator ได้ง่ายแค่ไหน
ดูเผิน ๆ แล้วเหมือนเวอร์ชันของ FDW ใน PSQL ที่รวมกับ DuckDB และ Vector Storage แบบ แน่นแฟ้นยิ่งขึ้น
ให้ความรู้สึกคล้าย Vespa ด้วย เลยสงสัยว่าทำไมถึงเลือกส่วนขยายของ MySQL แทนแนวทาง FDW
ประวัติ commit ดูแปลก ๆ
ในปี 2022 มี 2 รายการ และในปี 2024~2026 ก็มีเพียงไม่กี่รายการ แต่ commit แรกคือ “First commit, Support DuckDB Engine”
เวอร์ชันภายในอาจซับซ้อนเพราะมีการอ้างอิง Jira, ข้อมูลผลิตภัณฑ์, คอมเมนต์ภาษาจีน ฯลฯ
เลยเหมือนสร้าง git history สำหรับเผยแพร่สาธารณะแบบสะอาดขึ้นมาใหม่
สงสัยว่าถ้า TiDB ใช้ DuckDB แทน ClickHouse จะเป็นอย่างไร