Tăng tốc I/O: Sàn gỗ và Feather

Nov 27 2022
Một số vấn đề của chúng tôi bao gồm dữ liệu chúng tôi đọc từ bộ nhớ cục bộ. Các thao tác đọc-xử lý-ghi có thể thoải mái với các tập dữ liệu tương đối nhỏ, nhưng những thao tác đó đối với các tập dữ liệu lớn.

Một số vấn đề của chúng tôi bao gồm dữ liệu chúng tôi đọc từ bộ nhớ cục bộ. Các thao tác đọc-xử lý-ghi có thể thoải mái với các tập dữ liệu tương đối nhỏ, nhưng những thao tác đó đối với các tệp .csv lớn lại khá cồng kềnh đối với chúng tôi. Họ có thể rất khắt khe về thời gian và nguồn lực.

Tôi sẽ giới thiệu hai loại tệp sẽ tăng tốc độ đọc ghi dữ liệu của bạn và nén kích thước của dữ liệu được lưu trữ trên đĩa:

  • Sàn gỗ
  • Lông vũ
  • Có thể truy cập theo mặc định với Python-Pandas. Nhưng bạn có thể phải cài đặt thêm pyarrow và một số tiện ích mở rộng thuộc loại này tùy thuộc vào loại dữ liệu của bạn.
  • Hỗ trợ quản lý I/O dựa trên cột. Bằng cách này, bạn có thể ngăn tạm thời sử dụng thêm RAM trong khi đọc tất cả dữ liệu và sau đó loại bỏ các cột không cần thiết.
  • Lưu trữ dữ liệu ở định dạng nhị phân theo loại của riêng chúng thay vì ở dạng thô, bạn có thể tiết kiệm tới 50% dung lượng lưu trữ và có thể tăng tốc lên tới x100 trong các thao tác đọc-ghi.

Sàn gỗ

Lông vũ

Phần kết luận

Nó là dễ dàng! Tôi chắc chắn khuyên bạn nên sử dụng các phương pháp này khi bạn không phải lưu trữ dữ liệu của mình ở định dạng thô và mọi người dùng không cần phải mở dữ liệu đó bằng Excel bất kỳ lúc nào! Đối với trường hợp đặc biệt đó, sẽ hợp lý hơn khi đọc và ghi dữ liệu song song thay vì thay đổi định dạng dữ liệu. Tôi cũng đang nghĩ về việc giải quyết tình huống đó trong tương lai. Tôi hy vọng nội dung này hữu ích cho bạn, tôi nghĩ nó đơn giản nhưng khá hiệu quả.

Tôi đang sử dụng các phương pháp này trong các cuộc thi Kaggle và tăng tốc khá tốt. Bạn có thể xem lại mã ví dụ của tôi tại đây !