
DuckDB Quack: Giao thức máy khách/máy chủ 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 qua HTTP, cho phép nhiều phiên bản DuckDB kết nối và làm việc với cùng một cơ sở dữ liệu qua mạng. Giao thức này giới thiệu các khả năng client-server (máy khách - máy chủ) cho một cơ sở dữ liệu trước đây chủ yếu hoạt động cục bộ và nhúng.
Trang chủ InfoQ
Tin tức
DuckDB Quack: Giao thức Client/Server qua HTTP cho phân tích đa người dùng
AI, ML & Kỹ thuật dữ liệu
DuckDB Quack: Giao thức Client/Server qua HTTP cho phân tích đa người dùng
Ngày 31/5/2026
3 phút đọc
bởi
Renato Losio
Viết bài cho InfoQ
Thỏa mãn sự tò mò của bạn.
Giúp hơn 550 nghìn nhà phát triển cấp cao trên toàn cầu
mỗi tháng luôn dẫn đầu. Liên hệ
Nghe bài viết này - 0:00
Âm thanh sẵn sàng phát
Trình duyệt của bạn không hỗ trợ phần tử âm thanh.
0:00
0:00
Bình thường1.25x1.5x
Thích
Danh sách đọc
DuckDB gần đây đã công bố Quack, một giao thức từ xa mới qua HTTP cho phép nhiều phiên bản DuckDB kết nối và làm việc với cùng một cơ sở dữ liệu qua mạng. Giao thức này giới thiệu các khả năng client-server cho một cơ sở dữ liệu trước đây chủ yếu là cục bộ và nhúng.
Giữ nguyên quy trình làm việc nhẹ nhàng và khả năng tương thích SQL của DuckDB, Quack giúp dễ dàng chia sẻ tập dữ liệu, hỗ trợ người dùng đồng thời, chạy phân tích từ xa và xây dựng các dịch vụ dữ liệu theo kiểu sản xuất mà không cần chuyển sang một hệ thống cơ sở dữ liệu truyền thống, nặng 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à nhanh hơn đáng kể.
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. DuckDB cho biết phương pháp này có thể di chuyển 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.
Được phát hành theo Giấy phép MIT, DuckDB là một cơ sở dữ liệu phân tích mã nguồn mở phổ biến, được thiết kế cho 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. Giống như SQLite, đây là một cơ sở dữ liệu trong tiến trình có thể được nhúng vào 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. Giới thiệu Quack, nhóm phát triển viết:
Với Quack, DuckDB giờ đây có thể hữu ích trong nhiều trường hợp sử dụng mới, nơi việc tập trung trạng thái quan trọng hơn việc truy vấn siêu cục bộ. Chúng tôi đã phả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ự phát triển của các hồ dữ liệu (data lakes). Nói về các hồ, Quack cũng sẽ được tích hợp vào DuckLake để bản thân DuckDB có thể trở thành một máy chủ Catalog có thể truy cập từ xa.
DuckDB đã quyết định không sử dụng Arrow Flight SQL, một giao thức để tương tác với các cơ sở dữ liệu SQL bằng định dạng trong bộ nhớ Arrow và khung Flight RPC, vì họ muốn kiểm soát hoàn toàn cách dữ liệu được truyền và cách giao thức phát triển. Họ cũng tuyên bố rằng Quack hiệu quả hơn cho các truy vấn nhỏ vì nó có thể gửi một truy vấn và trả về kết quả trong một vòng truyền mạng duy nhất. Nhóm phát triển cho biết 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ể để mình bị hạn chế bởi các định dạng được kiểm soát từ bên ngoài.
Phản hồi 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 quan trọng hướng tới các quy trình phân tích dùng chung, đa người dùng trong khi vẫn giữ cho DuckDB nhẹ và dễ triển khai. Ryan Glover, giám đốc điều hành tại Lattice Engineering, nhận xét:
Điều này thật tuyệt vời. Tôi đã cân nhắc sử dụng DuckDB trong khung ứng dụng nội bộ của công ty mình và điều này vừa giải quyết được vấn đề "làm thế nào để mở rộng quy mô theo chiều ngang". Xin chúc mừng những người ở DuckDB. Tôi cũng thích cái tên "Quack" cho giao thức.
Người dùng kvlonge bổ sung trên Reddit:
Việc có thể khởi động DuckDB trên một máy chủ và cho phép mọi người tương tác 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.
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 sản xuất với DuckDB 2.0 vào cuối năm 2026. Nhóm cũng đang nghiên cứu 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 "From DeepSeek to Quack: When the Dream of Distributed DuckDB Started to Feel Real", Amir Sefati nhấn mạnh lợi thế của việc các phiên bản DuckDB giao tiếp với nhau:
Khi bạn kết hợp điều đó với lưu trữ đối tượng, DuckLake, Parquet và cơ sở dữ liệu vector, bạn sẽ có một kiến trúc rất thực dụng cho AI và kỹ thuật dữ liệu hiện đại. Không phải vì nó hợp thời. Mà vì nó loại bỏ sự phức tạp không cần thiết.
Thảo luận về các trường hợp sử dụng khác, chẳng hạn như một tab trình duyệt giao tiếp trực tiếp với máy chủ DuckDB hoặc chuyển tiếp truy vấn từ sổ ghi chép sang sổ ghi chép, Mehdi Ouazza, kỹ sư dữ liệu và nhà phát triển tại MotherDuck, một kho dữ liệu đám mây được xây dựng trên công cụ truy vấn DuckDB mã nguồn mở, kết luận:
Liệu chúng ta cuối cùng có thể loại bỏ quan điểm "DuckDB không hỗ trợ đa tác giả" không? Hiện có rất nhiều lựa chọn, chỉ tùy thuộc vào cách bạn muốn phân chia và xử lý.
Hỗ trợ cho giao thức mới hiện yêu cầu t
Tiện ích mở rộng Quack trong cả hai phiên bản DuckDB. DuckDB v1.5.3 mới phát hành hỗ trợ Quack như một tiện ích mở rộng cốt lõi có thể tự động tải và như một danh mục DuckLake.
Hannes Mühleisen, người tạo ra cơ sở dữ liệu DuckDB và Giám đốc điều hành của DuckDB Labs, trước đây đã trình bày một phiên QCon về quản lý dữ liệu phân tích trong quy trình với DuckDB.
Về tác giả
Renato Losio
Đánh giá bài viết này
Mức độ chấp nhận
Phong cách
Đã liên hệ tác giả
Nội dung này thuộc chủ đề AI, ML & Kỹ thuật dữ liệu.
Các chủ đề liên quan:
Phát triển
AI, ML & Kỹ thuật dữ liệu
SQL
D
/filters:no_upscale()/news/2026/05/duckdb-quack-protocol/en/resources/1duckdb-1779461054935.png)
Nguồn tin: InfoQ AI — Tác giả: Renato Losio. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.