DuckDB nổi lên như một jq mới
- Dự án DuckDB là một cơ sở dữ liệu kiểu như SQLite dành cho các ứng dụng dữ liệu, bao gồm khả năng nhập nhiều định dạng dữ liệu khác nhau mà không cần phụ thuộc bổ sung.
- Có thể đọc và phân tích trực tiếp tệp JSON thành bảng trong cơ sở dữ liệu, và điều này cũng áp dụng cho nhiều định dạng khác.
- Khi làm việc với JSON, thông thường người ta dùng
jq, nhưng vì quen với SQL hơn là cú pháp jq phức tạp, nên dùng DuckDB sẽ thuận tiện hơn.
- Ví dụ, có thể dùng GitHub API để lấy dữ liệu JSON về thông tin kho lưu trữ của tổ chức golang, sau đó dễ dàng thực hiện bằng SQL để lấy thống kê về các loại giấy phép mã nguồn mở.
- Việc viết câu lệnh SQL bằng DuckDB có thể thực hiện dễ dàng ngay cả khi không cần tra tài liệu, và nó sử dụng cú pháp tương tự các hàm JSON của PostgreSQL.
- DuckDB cũng hỗ trợ xuất JSON, và nếu cần thì có thể dùng
jq để định dạng đẹp kết quả.
- DuckDB không chỉ nhập được JSON mà còn hỗ trợ nhiều định dạng dữ liệu như CSV, parquet, tệp Excel, v.v.
- Nếu không cần lưu trữ dữ liệu lâu dài, có thể truy vấn dữ liệu mà không cần tạo bảng.
- DuckDB có thể đọc JSON trực tiếp không chỉ từ tệp cục bộ mà còn từ URL.
Ý kiến của GN⁺
- DuckDB có thể là một công cụ thú vị đối với những người thường xuyên làm các công việc liên quan đến phân tích dữ liệu. Đặc biệt, với những ai quen dùng SQL, đây có thể là một lựa chọn thay thế mạnh mẽ để xử lý dữ liệu JSON dễ dàng.
- Việc DuckDB có thể đọc trực tiếp dữ liệu JSON giúp đơn giản hóa quá trình tiền xử lý dữ liệu và mang lại lợi thế là giảm bớt các bước chuyển đổi dữ liệu riêng biệt khi xây dựng pipeline dữ liệu.
- Nếu việc sử dụng DuckDB trở nên phổ biến hơn, so với các công cụ phức tạp hiện có cho phân tích và xử lý dữ liệu, nó có thể giúp giảm độ dốc học tập và nâng cao năng suất.
- Tuy nhiên, nếu DuckDB vẫn chưa được biết đến rộng rãi hoặc chưa có đủ hỗ trợ từ cộng đồng, người dùng có thể gặp khó khăn trong việc tìm giải pháp khi đối mặt với vấn đề.
- Các dự án mã nguồn mở khác cung cấp tính năng tương tự DuckDB gồm có Apache Drill hoặc PrestoDB, và chúng cũng hỗ trợ truy vấn SQL trên các tập dữ liệu lớn.
1 bình luận
Ý kiến trên Hacker News
Sự kết hợp giữa jq và các công cụ shell cơ bản
curl ... | jq '.[].license.key' | sort | uniq -c.Babashka và Clojure
ClickHouse local CLI
Việc sử dụng jq, DuckDB và SQL
Truy vấn Google Sheets
Structured logging bằng cơ sở dữ liệu SQLite
Benthos
Nushell
pq (prql-query)
JSON và việc sử dụng ngôn ngữ lập trình