มารู้จัก DuckDB กัน 🦆 ฐานข้อมูล สำหรับการวิเคราะห์บนเครื่อง Local

เจ้าเป็ด DuckDB ฐานข้อมูลน่ารักๆ ใช้งานง่าย และมีประสิทธิภาพสูง :duck: :muscle:

ทำไมต้อง DuckDB?

  1. ง่าย! เค้าได้ไอเดียมาจาก SQLite ที่เป็นฐานข้อมูลที่ไม่ว่าใครก็ตามจะทำ app หรือจะวิเคราะห์ข้อมูล สามารถใช้งานมันได้ง่ายมาก โดยที่เราไม่จำเป็นต้องไปตั้ง server เอง (ซึ่งถ้ามี server อยู่แล้วก็ไปใช้ server ดีกว่านะ) และเค้าก็บอกว่าเราไม่จำเป็นต้องไปติดตั้ง external dependencies เพิ่มอีกด้วย :star_struck: ตัวมันเองแฝงตัวอยู่ใน host process อยู่แล้ว ไม่ได้รันแยกออกไปอีก process (นึกภาพง่ายๆ คือ เราไม่ได้ลงโปรแกรมเพิ่ม)
  2. มี ACID เราสามารถใช้ SQL แบบซับซ้อนได้ ต่อกับไฟล์ CSV หรือ Parquet ได้ตรงๆ
  3. เร็ว! เนื่องจากว่าเค้าออกแบบให้เป็น Online analytical processing (OLAP) ซึ่งจะเหมาะมากสำหรับการ query ข้อมูลเพื่อไปวิเคราะห์ และมีการทำ parallel query processing ด้วย :fire:
  4. ฟรี~ เพราะเป็น open source

DuckDB นี้ใช้ Apache Arrow ด้วย ฉะนั้นการเก็บข้อมูล และการ convert ไฟล์ format ไปมาระหว่างไลบรารี่มันจะไวมาก

ส่วนวิธีติดตั้งนั้น…

เนื่องจากว่าเราไม่ต้องลงโปรแกรมอะไรเพิ่ม เราติดตั้งแบบติดตั้งแพคเกจใน app ของเราได้เลย ประมาณนี้ สามารถเลือกได้ว่าจะเป็น Python, R, Java, node.js, C++ หรือแบบ CLI แยกไปเลย

อ่ะ ถ้าอยากลองเล่น เค้ามี DuckDB Shell ให้ลองนะ

https://shell.duckdb.org/

อย่างไรก็ตามนะครับ เนื่องจากว่า DuckDB เราใช้รันบนเครื่อง local ดังนั้นถ้าเรามีข้อมูลที่มันใหญ่มากๆ ก็ควรจะไปใช้ server หรือ cluster แทนเด้อ~

1 Like