Truy vấn SQL trực tiếp với DuckDB
Cập nhật lần cuối:
Thảo luậnMục lục
Tổng quan
SQL là ngôn ngữ phổ biến để thực hiện các phép lọc, kết nối (JOIN) 1 và tổng hợp dữ liệu. Thay vì phải cài đặt các hệ quản trị cơ sở dữ liệu như PostgreSQL, MySQL hoặc chuyển dữ liệu vào Jupyter Notebook để dùng thư viện phân tích, Smart Data Viewer hỗ trợ sử dụng SQL trực tiếp trong VS Code thông qua DuckDB WebAssembly.
DuckDB WebAssembly
DuckDB là một hệ quản trị cơ sở dữ liệu phân tích nhúng. Việc tích hợp DuckDB WebAssembly vào Smart Data Viewer mang lại các lợi ích:
- Truy vấn SQL được thực thi trực tiếp trên trình duyệt nội bộ của VS Code.
- Không cần thiết lập máy chủ cơ sở dữ liệu bên ngoài.
- Dữ liệu được xử lý cục bộ, không gửi qua máy chủ trung gian, giúp đảm bảo an toàn thông tin.
Khi mở một file .csv, .tsv, .parquet hoặc .duckdb, bạn có thể chuyển sang tab SQL trên Toolbar. Tại đây, nút Initialize Engine sẽ tải thư viện WebAssembly vào môi trường làm việc.
Viết truy vấn (SQL Query Panel)
Sau khi DuckDB khởi tạo, giao diện SQL Query Panel sẽ hiển thị trình soạn thảo SQL.
- Tham chiếu bảng: File đang mở (CSV, Parquet) tự động được ánh xạ thành một bảng ảo tên là
datatrong DuckDB. Bạn có thể truy vấn trực tiếp, ví dụ:SELECT * FROM data LIMIT 10;. - Thực thi truy vấn: Hỗ trợ các câu truy vấn phức tạp với
GROUP BY,HAVING, hay hàm cửa sổ (Window functions) 2. Khi nhấn Run Query, kết quả sẽ được kết xuất dưới dạng bảng lưới ở nửa dưới màn hình. - Trích xuất dữ liệu cho AI: Nếu kết quả truy vấn cho thấy điểm dữ liệu bất thường (outlier) 3, bạn có thể bôi đen kết quả đó và chọn Send to AI Context. Thao tác này giúp trích xuất và gửi phần dữ liệu cần thiết cho AI phân tích, thay vì gửi toàn bộ file gốc.
Hỗ trợ DuckDB và SQLite cục bộ
Smart Data Viewer cũng hoạt động như một trình duyệt cơ sở dữ liệu nhẹ cho các định dạng .duckdb và họ .sqlite (.sqlite, .sqlite3, .db).
- Với file
.duckdb: Mở file trực tiếp, hệ thống sẽ tự động quét (scan) tất cả các bảng có trong cơ sở dữ liệu. Bạn có thể xem trước tối đa 1.000 dòng của bất kỳ bảng nào, hoặc chuyển sang tab SQL để viết truy vấn kết nối giữa các bảng. - Với file
.sqlite: Tiện ích sử dụng thư việnsql.jsđể mở file cơ sở dữ liệu ở chế độ chỉ đọc trên bộ nhớ RAM (Read-only in-memory snapshot) 4. Bạn có thể duyệt qua các bảng và View, thực hiện phân trang, lọc, và phân tích dữ liệu tương tự như thao tác với file CSV.
[!WARNING] Lưu ý khi dùng SQLite: Vì cơ sở dữ liệu SQLite được tải toàn bộ vào RAM dưới dạng bản sao chép, lượng RAM tiêu thụ sẽ tương đương với kích thước file
.db. Ngoài ra, nếu có kết nối khác đang ghi dữ liệu vào file.db-walnhưng chưa đồng bộ (checkpoint), Smart Data Viewer có thể không hiển thị phần dữ liệu mới đó. Điểm lợi là file gốc của bạn không bị khoá hoặc bị chỉnh sửa ngoài ý muốn.
Footnotes
-
JOIN: Phép toán trong SQL dùng để kết hợp các hàng từ hai hay nhiều bảng dựa trên cột chung. ↩
-
Window functions: Hàm trong SQL thực hiện tính toán trên một tập hợp các hàng có liên quan đến hàng hiện tại. ↩
-
Outlier: Giá trị ngoại lai, khác biệt đáng kể so với các quan sát còn lại trong tập dữ liệu. ↩
-
Snapshot: Bản sao trạng thái của một hệ thống hoặc cơ sở dữ liệu tại một thời điểm nhất định. ↩
Thảo luận