การเปิดตัว DuckDB 0.10.0 ซึ่งเป็นตัวแปร SQLite สำหรับการสืบค้นเชิงวิเคราะห์

มีการนำเสนอการเปิดตัว DuckDB 0.10.0 DBMS โดยผสมผสานคุณสมบัติของ SQLite เช่นความกะทัดรัดความสามารถในการเชื่อมต่อในรูปแบบของไลบรารีแบบฝังการจัดเก็บฐานข้อมูลในไฟล์เดียวและอินเทอร์เฟซ CLI ที่สะดวกสบายพร้อมเครื่องมือและการเพิ่มประสิทธิภาพสำหรับการดำเนินการ แบบสอบถามเชิงวิเคราะห์ที่ครอบคลุมส่วนสำคัญของข้อมูลที่เก็บไว้ เช่น ที่รวบรวมเนื้อหาทั้งหมดของตารางหรือรวมตารางขนาดใหญ่หลายตารางเข้าด้วยกัน รหัสโครงการเผยแพร่ภายใต้ใบอนุญาต MIT การพัฒนายังอยู่ในขั้นตอนของการเปิดตัวรุ่นทดลอง เนื่องจากรูปแบบการจัดเก็บข้อมูลยังไม่เสถียรและมีการเปลี่ยนแปลงจากเวอร์ชันหนึ่งไปอีกเวอร์ชันหนึ่ง

DuckDB จัดเตรียมภาษา SQL ขั้นสูงที่มีความสามารถเพิ่มเติมสำหรับการจัดการคำสั่งที่ซับซ้อนและใช้เวลานาน รองรับการใช้ประเภทที่ซับซ้อน (อาร์เรย์ โครงสร้าง สหภาพ) และความสามารถในการดำเนินการแบบสอบถามย่อยที่สัมพันธ์กันแบบซ้อนและแบบซ้อนได้รับการสนับสนุน รองรับการเรียกใช้คิวรีหลายรายการพร้อมกัน โดยเรียกใช้คิวรีโดยตรงจากไฟล์ CSV และ Parquet สามารถนำเข้าจาก PostgreSQL DBMS ได้

นอกเหนือจากโค้ดเชลล์จาก SQLite แล้ว โครงการยังใช้ตัวแยกวิเคราะห์จาก PostgreSQL ในไลบรารีที่แยกต่างหาก ส่วนประกอบ Date Math จาก MonetDB การใช้ฟังก์ชันหน้าต่างของตัวเอง (ขึ้นอยู่กับอัลกอริธึม Segment Tree Aggregation) ซึ่งเป็นตัวประมวลผลนิพจน์ทั่วไปที่ใช้ ไลบรารี RE2 เครื่องมือเพิ่มประสิทธิภาพการสืบค้นของตัวเอง และกลไกการควบคุม MVCC ที่ดำเนินงานพร้อมกัน (การควบคุมการทำงานพร้อมกันแบบหลายเวอร์ชัน) รวมถึงกลไกการดำเนินการสืบค้นแบบเวกเตอร์ตามอัลกอริทึม Hyper-Pipelining Query Execution ซึ่งอนุญาตชุดค่าจำนวนมาก ​​เพื่อดำเนินการในคราวเดียวในการดำเนินการเดียว

ท่ามกลางการเปลี่ยนแปลงในรุ่นใหม่:

  • ประสิทธิภาพของการแยกวิเคราะห์ข้อมูลในรูปแบบ CSV ได้รับการปรับปรุงอย่างมาก ตัวอย่างเช่น การอ่านไฟล์ CSV ที่มี 11 ล้านแถวในเวอร์ชันใหม่ลดลงจาก 2.6 วินาที สูงสุด 1.15 วินาที และดำเนินการ “SELECT COUNT(*)” ที่ด้านบนของไฟล์ CSV จาก 1.8 วินาที สูงสุด 0.3 วินาที
  • เพิ่มการรองรับอาร์เรย์ที่มีขนาดคงที่ ซึ่งมีลักษณะคล้ายกับรายการที่มีองค์ประกอบจำนวนคงที่ (“CREATE TABLE vector(v DOUBLE[3]);”)
  • เพิ่มการรองรับการเชื่อมต่อกับ MySQL, PostgreSQL และ SQLite DBMS ซึ่งช่วยให้คุณสามารถโหลดข้อมูลจาก DBMS ภายนอกไปยัง DuckDB และย้ายข้อมูลระหว่างระบบต่างๆ เข้าถึงฐานข้อมูลภายนอกได้โดยใช้ตารางมาตรฐาน แนบ 'postgres:dbname=postgresscanner' เป็น postgres; เลือกชื่อ release_year ความยาวจาก postgres.film LIMIT 5;
  • เพิ่มการสนับสนุนสำหรับนิพจน์ "COMMENT ON" สำหรับบันทึกความคิดเห็นเกี่ยวกับวัตถุในฐานข้อมูล
  • เพิ่มการรองรับนิพจน์ "COPY FROM DATABASE" สำหรับการคัดลอกเนื้อหาทั้งหมดจากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่ง
  • เพิ่มการสนับสนุนสำหรับตัวแก้ไข "ทั้งหมด" ในนิพจน์ EXCEPT และ INTERSECT
  • ประเภทที่นำไปใช้ »

    ที่มา: opennet.ru

เพิ่มความคิดเห็น