25 điểm bởi darjeeling 2025-06-04 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Đây là nội dung bài trình bày tại PyCon US 2025.

Khoa học dữ liệu với DuckDB: Thuần hóa môi trường tệp phức tạp - Alex Monahan

Trong video bài trình bày của Alex Monahan, anh giải thích cách DuckDB, một thư viện cơ sở dữ liệu phân tích mã nguồn mở, có thể giúp các nhà khoa học dữ liệu quản lý và phân tích nhiều tệp dữ liệu đa dạng, thiếu tổ chức.

Nội dung chính:

  • Vấn đề “vườn thú tệp”: Các nhà khoa học dữ liệu phải xử lý vô số tệp ở nhiều định dạng như CSV, Parquet, bảng tính..., và chúng có thể nằm rải rác ở nhiều vị trí cũng như trên nhiều nền tảng đám mây. Những tệp này có thể rất lớn, số lượng nhiều, thiếu tổ chức hoặc dễ bị hỏng.
  • Tổng quan về DuckDB: DuckDB được giới thiệu là “SQLite cho phân tích”. Đây là mã nguồn mở (giấy phép MIT) và là cơ sở dữ liệu in-process (nhúng) được thiết kế cho khối lượng công việc phân tích. Có thể cài đặt dễ dàng bằng pip install duckdb mà không cần phụ thuộc, và sử dụng trực tiếp trong script Python hoặc notebook.
  • Đọc nhiều loại tệp khác nhau: DuckDB có thể đọc rất nhiều định dạng tệp, bao gồm cả các tệp trong kho lưu trữ đám mây như S3. Đặc biệt, trình đọc CSV mạnh mẽ của DuckDB rất giỏi trong việc xử lý các tệp CSV lộn xộn ngoài thực tế, vượt trội hơn nhiều công cụ khác ở khả năng phân tích thành công các tệp có vấn đề.
  • SQL quen thuộc và API quan hệ: DuckDB cung cấp giao diện SQL thân thiện với người dùng (ví dụ: SELECT * là tùy chọn) và API quan hệ theo phong cách Python. Bạn có thể truy vấn tệp trực tiếp như thể đó là bảng, và nó hoạt động theo kiểu trì hoãn (lazy), chỉ đọc dữ liệu khi cần.
  • Khả năng tương tác: Tích hợp liền mạch với các thư viện khoa học dữ liệu phổ biến như Pandas và Polars, và vì chạy trong cùng một tiến trình nên có thể trao đổi dữ liệu zero-copy.
  • Định dạng tệp DuckDB: Định dạng tệp DuckDB mặc định là một tệp nén dạng cột đơn, có thể lưu nhiều bảng, view, hàm SQL và quan hệ. Định dạng này có thể chỉnh sửa, hỗ trợ thuộc tính ACID, và được thiết kế cho tốc độ cùng hiệu quả.
  • Thuộc tính ACID: DuckDB mang đến độ vững chắc của cơ sở dữ liệu cho quy trình khoa học dữ liệu thông qua tính nguyên tử (thay đổi hoặc là toàn bộ hoặc là không có gì), tính nhất quán (ngăn ngừa vấn đề chất lượng dữ liệu bằng khóa), tính cô lập (các truy vấn đồng thời không can thiệp lẫn nhau), và tính bền vững (dữ liệu đã commit an toàn trước hỏng hóc).
  • Trường hợp sử dụng: Hữu ích để “thuần hóa vườn thú tệp” bằng cách hợp nhất dữ liệu vào một định dạng duy nhất, hiệu quả và có thể truy vấn. Nó cũng giúp ngăn việc tạo ra những “vườn thú tệp” mới trong các công việc khoa học dữ liệu lặp đi lặp lại.
  • Cộng đồng và khả năng mở rộng: DuckDB có thể mở rộng, và thông qua đóng góp từ cộng đồng, hỗ trợ cho các định dạng như tệp gói thống kê và Google Sheets đang được bổ sung.

Alex Monahan, hiện làm việc tại DuckDB Labs và MotherDuck (kho dữ liệu đám mây dựa trên DuckDB), nhấn mạnh rằng DuckDB hướng tới việc đơn giản hóa xử lý dữ liệu cho các nhà khoa học dữ liệu bằng cách kết hợp sức mạnh của cơ sở dữ liệu với tính linh hoạt cần thiết cho khoa học dữ liệu.

Chưa có bình luận nào.

Chưa có bình luận nào.