DuckDB Quack: Giao thức Client/Server qua HTTP cho Phân tích Đa người dùng
DuckDB vừa công bố Quack, một giao thức từ xa qua HTTP cho phép nhiều phiên bản DuckDB kết nối và làm việc trên cùng một cơ sở dữ liệu qua mạng. Giao thức này mang khả năng client-server đến với một hệ cơ sở dữ liệu vốn chủ yếu hoạt động cục bộ và nhúng.

DuckDB Quack: Giao thức Client/Server qua HTTP cho Phân tích Đa người dùng
DuckDB vừa công bố Quack, một giao thức từ xa mới dựa trên HTTP, cho phép nhiều phiên bản DuckDB kết nối và thao tác trên cùng một cơ sở dữ liệu thông qua mạng. Giao thức này lần đầu tiên giới thiệu khả năng client-server cho một hệ cơ sở dữ liệu vốn trước đây chủ yếu hoạt động ở dạng cục bộ (local) và nhúng (embedded).
DuckDB Quack Protocol
Giữ nguyên quy trình làm việc nhẹ nhàng và tính tương thích SQL của DuckDB, Quack giúp việc chia sẻ tập dữ liệu, hỗ trợ người dùng đồng thời, chạy phân tích dữ liệu từ xa và xây dựng các dịch vụ dữ liệu kiểu sản xuất trở nên dễ dàng hơn mà không cần chuyển sang các hệ cơ sở dữ liệu truyền thống nặng nề hơn. So với các phương pháp hiện có, Quack được thiết kế để đơn giản hơn trong việc sử dụng và có tốc độ xử lý nhanh hơn đáng kể.
Hiệu suất và Khả năng mở rộng
Quack cho phép nhiều ứng dụng truy cập cùng một cơ sở dữ liệu DuckDB đồng thời thông qua các kết nối HTTP tiêu chuẩn, sử dụng định dạng dữ liệu gốc của DuckDB. Theo DuckDB, phương pháp này có thể truyền tải các tập dữ liệu lớn nhanh hơn khoảng 3,5 lần so với Arrow Flight và nhanh hơn đáng kể so với PostgreSQL.
DuckDB là một cơ sở dữ liệu phân tích mã nguồn mở phổ biến được phát hành theo giấy phép MIT, được thiết kế để thực hiện các truy vấn SQL nhanh trên các tập dữ liệu lớn trực tiếp từ các tệp cục bộ, ứng dụng hoặc sổ ghi chép (notebooks). Giống như SQLite, đây là cơ sở dữ liệu trong tiến trình (in-process) có thể được nhúng vào trong một ứng dụng mà không yêu cầu một máy chủ cơ sở dữ liệu riêng biệt.
Với sự ra mắt của Quack, nhóm phát triển DuckDB chia sẻ:
"Với Quack, DuckDB giờ đây có thể hữu ích trong một loạt các trường hợp sử dụng mới, nơi việc tập trung hóa trạng thái (state) quan trọng hơn việc truy vấn siêu cục bộ. Chúng tôi đã nhận ra rằng dữ liệu không phải lúc nào cũng ở cục bộ với sự trỗi dậy của các hồ dữ liệu (data lakes). Nói về các hồ dữ liệu, Quack cũng sẽ được tích hợp vào DuckLake để DuckDB có thể đóng vai trò là một máy chủ Catalog có thể truy cập từ xa."
Tại sao không sử dụng Arrow Flight SQL?
DuckDB quyết định không sử dụng Arrow Flight SQL — một giao thức để tương tác với cơ sở dữ liệu SQL sử dụng định dạng trong bộ nhớ Arrow và khung RPC Flight — vì họ muốn kiểm soát hoàn toàn việc dữ liệu được truyền tải như thế nào cũng như sự phát triển của giao thức. Họ cũng khẳng định rằng Quack hiệu quả hơn đối với các truy vấn nhỏ vì nó có thể gửi một truy vấn và trả về kết quả chỉ trong một vòng lặp mạng duy nhất (single network round trip).
Nhóm phát triển thêm:
"Chúng tôi cảm thấy rằng để có thể tiếp tục đổi mới trong các hệ thống dữ liệu, chúng tôi không thể cho phép mình bị hạn chế bởi các định dạng do bên ngoài kiểm soát."
Phản hồi từ cộng đồng
Phản ứng trên Hacker News phần lớn là tích cực, với các nhà phát triển coi đây là một bước tiến quan trọng hướng tới các quy trình làm việc phân tích đa người dùng được chia sẻ, đồng thời giữ cho DuckDB nhẹ nhàng và dễ triển khai. Ryan Glover, quản lý chính tại Lattice Engineering, bình luận:
"Thật tuyệt vời. Tôi đã để mắt đến việc sử dụng DuckDB trong khung ứng dụng nội bộ của công ty và điều này vừa giải quyết vấn đề 'nhưng làm thế nào để mở rộng theo chiều ngang (horizontal scale) cái này'. Chúc mừng đội ngũ DuckDB. Cũng rất thích cái tên 'Quack' cho giao thức này."
Người dùng kvlonge trên Reddit cũng chia sẻ:
"Việc có thể khởi chạy DuckDB trên một máy chủ và để mọi người nói chuyện với nó từ xa như một cơ sở dữ liệu 'bình thường' sẽ là một bước đột phá lớn."
Tương lai của Quack và DuckDB
DuckDB có kế hoạch tích hợp Quack với DuckLake, cải thiện hiệu suất và phát hành phiên bản sẵn sàng cho sản xuất cùng với DuckDB 2.0 vào cuối năm 2026. Đội ngũ cũng đang làm việc để hỗ trợ tốt hơn cho các cơ sở dữ liệu từ xa, thông lượng giao dịch cao hơn, các tiện ích mở rộng giao thức có thể tùy chỉnh và các tính năng sao chép.
Trong bài viết "Từ DeepSeek đến Quack: Khi Giấc mơ về DuckDB Phân tán bắt đầu trở nên hiện thực", Amir Sefati nhấn mạnh lợi ích của việc các phiên bản DuckDB nói chuyện với nhau:
"Khi bạn kết hợp điều đó với lưu trữ đối tượng (object storage), DuckLake, Parquet và cơ sở dữ liệu vector, bạn sẽ có một kiến trúc rất thực tế cho AI và kỹ thuật dữ liệu hiện đại. Không phải vì nó là xu hướng. Vì nó loại bỏ sự phức tạp không cần thiết."
Bàn luận thêm về các trường hợp sử dụng, chẳng hạn như một tab trình duyệt nói chuyện trực tiếp với máy chủ DuckDB hoặc chuyển tiếp truy vấn từ sổ ghi chép này sang sổ ghi chép khác, Mehdi Ouazza, kỹ sư dữ liệu và người ủng hộ nhà phát triển tại MotherDuck, kết luận:
"Chúng ta có thể finally 'nghỉ hưu' quan điểm 'DuckDB không hỗ trợ đa người ghi' chưa? Giờ đã có rất nhiều lựa chọn, chỉ phụ thuộc vào cách bạn muốn xử lý."
Hiện tại, hỗ trợ cho giao thức mới này yêu cầu tiện ích mở rộng Quack trong cả hai phiên bản DuckDB. Phiên bản DuckDB v1.5.3 vừa phát hành đã hỗ trợ Quack dưới dạng tiện ích mở rộng lõi có thể tự động tải (autoloadable core extension) và dưới dạng danh mục DuckLake.
Bài viết liên quan

Phần mềm
Tấn công chuỗi cung ứng WordPress: Kẻ tấn công mua 30 plugin trên Flippa và cài cửa sau
06 tháng 5, 2026

Công nghệ
CEO Palantir: 10% thế giới "ghét chúng tôi một cách chuyên nghiệp"
05 tháng 5, 2026

Phần mềm
MySQL 9.7: Bản LTS lớn đầu tiên kể từ 8.4 mang tính năng Enterprise xuống phiên bản Community
10 tháng 5, 2026
