
KDB+/Q: ngôn ngữ của cơ sở dữ liệu tick
Cách Wall Street lưu trữ và truy vấn hàng tỷ điểm dữ liệu thị trường
KDB+ và Q trong một phút
KDB+ là một cơ sở dữ liệu chuỗi thời gian hướng cột (column-oriented); Q là ngôn ngữ vector của nó. Các công ty sell-side và buy-side đã áp dụng nó cho lưu trữ tick, join, và phân tích cuộn (rolling analytics) nơi việc quét theo cột thắng các vòng lặp theo từng dòng.
Hiệu năng đến từ bố cục theo cột, việc sử dụng mạnh tay memory mapping, và các nguyên hàm vector được triển khai gần với phần cứng. Đây không phải là một sự thay thế OLTP tổng quát; nó được điều chỉnh cho các chuỗi thời gian chủ yếu là ghi thêm (append-heavy).
Kiến thức cơ bản về Q
Q ngắn gọn và tính toán từ phải sang trái. Vector là kiểu dữ liệu gốc; các vòng lặp vẫn tồn tại nhưng các đường dẫn nóng tránh dùng chúng. Bảng là các từ điển (dictionary) của các cột, điều này khớp với cách dữ liệu tick được lưu trữ.
prices: 100.5 101.2 99.8
avg prices
deltas prices
Q dễ đọc đến từ các hàm nhỏ và các bình luận (comment) — riêng mật độ code không phải là một đức tính tốt trong các codebase chia sẻ.
Tickerplant, RDB, HDB
Một mô hình phổ biến: một tickerplant nạp các luồng dữ liệu và phân phát cho các subscriber; một cơ sở dữ liệu thời gian thực (RDB) giữ phiên hiện tại; một cơ sở dữ liệu lịch sử (HDB) lưu trữ lịch sử được phân vùng trên đĩa. Các quy trình cuối ngày sẽ cuộn RT vào các phân vùng HDB.
select last price by sym from trades where time > .z.t - 00:05
Crypto không bao giờ đóng cửa, vì vậy ranh giới "phiên" là các lựa chọn vận hành, không phải hồi chuông mở/đóng của sàn giao dịch.
Nơi nó xuất hiện
Các công ty sử dụng KDB+ cho các dashboard giám sát, phân tích báo giá, và các tập dữ liệu nghiên cứu. Tên gọi và cách triển khai khác nhau; mô hình chung là cắt lát và phân tích nhanh trên tick và lệnh.
Các nền tảng crypto tạo ra dữ liệu liên tục — hãy lên kế hoạch lưu trữ, chơi lại (replay), và xuất dữ liệu tuân thủ từ trước.
Chi phí cấp phép và các lựa chọn thay thế
Cấp phép thương mại và tuyển dụng chuyên biệt là những chi phí thực tế. Các lựa chọn mở (ClickHouse, Timescale, QuestDB, DuckDB trên Parquet) đánh đổi sự phù hợp hệ sinh thái để lấy giá thành. Hãy benchmark trên tổ hợp truy vấn của riêng bạn, không phải theo các slide của nhà cung cấp.
Các stack dữ liệu tick trong crypto
Nhiều nhóm kết hợp Kafka hoặc Redpanda với lưu trữ theo cột và các engine SQL. Nguyên tắc bất biến từ KDB+ vẫn áp dụng: phân vùng theo thời gian, giữ schema chặt chẽ, và đo độ trễ đầu-cuối từ dấu thời gian của sàn giao dịch đến kết quả truy vấn.
Người dùng API của GaiaEx nên ghi lại dấu thời gian server và các định danh trình tự nếu được cung cấp — sự tương quan tốt hơn việc đoán.


