Vnstock Logo

Hiệu năng và tối ưu hóa

Cập nhật lần cuối:

Thảo luận

Mục lục

Hiệu năng và tối ưu hóa

Tăng tốc bằng xử lý song song

vnstock_pipeline tự động kích hoạt tính năng xử lý song song khi số lượng mã chứng khoán yêu cầu quá lớn. Khác với cách dùng vòng lặp thông thường khiến quá trình tải bị nghẽn tại một mã cụ thể, hệ thống phân chia các tiến trình tải dữ liệu vào các luồng độc lập. Nhờ đó, việc tải toàn bộ dữ liệu của rổ VN100 chỉ mất chưa đến vài giây.

Khi bạn chạy lệnh sau:

Shell
python -m vnstock_pipeline.cli run ohlcv --group VN100 --mode daily

Bộ điều phối sẽ tự động chia đều 100 tác vụ này thành nhiều luồng chạy cùng lúc dưới nền.

Tự động ghi nhận và chạy bù khi lỗi

Trước đây, khi tải một tập hợp 1.000 mã cổ phiếu, nếu mã thứ 999 gặp lỗi đứt kết nối mạng, người dùng thường phải bực bội chạy lại từ đầu. Hiện nay, hệ thống giải quyết triệt để vấn đề này:

  1. Cô lập rủi ro: Lỗi ở mã nào sẽ chỉ bị bỏ qua ở mã đó, hoàn toàn không làm gián đoạn các mã còn lại.
  2. Ghi nhật ký lỗi tự động: Các mã không tải được sẽ được ghi tên vào tệp error_log.csv nằm trong thư mục dữ liệu của bạn.
  3. Tiếp tục thông minh: Bạn chỉ cần thêm tham số --retry-errors vào lệnh chạy, hệ thống sẽ đọc danh sách lỗi và chỉ tải bù đúng những mã bị thiếu, giúp tiết kiệm đáng kể thời gian và băng thông.
Shell
# Phục hồi nhanh chóng sau sự cố mạng hoặc khi bị giới hạn tần suất tải
python -m vnstock_pipeline.cli run ohlcv --retry-errors

Tối ưu hóa bằng định dạng siêu nhẹ (Parquet)

Khi cần xử lý hàng chục ngàn dòng dữ liệu khớp lệnh trong phiên hằng ngày, định dạng CSV truyền thống tỏ ra quá nặng nề và chậm chạp. Do đó, vnstock_pipeline sử dụng định dạng lưu trữ Parquet làm tiêu chuẩn mặc định:

  1. Tốc độ đọc/ghi siêu tốc: Nhờ khả năng tương thích cao, tốc độ xử lý dữ liệu Parquet nhanh hơn CSV từ 10 đến 50 lần.
  2. Tiết kiệm dung lượng ổ cứng: Parquet lưu trữ dữ liệu theo cột và được nén tự động. Kích thước của một tệp Parquet thông thường chỉ bằng khoảng 25% so với tệp CSV tương đương.

Tự động hoá quản lý đường dẫn

Trong quá khứ, việc khai báo đường dẫn thư mục theo cách thủ công thường dẫn đến lỗi "không tìm thấy tệp" khi hệ thống được đưa lên máy chủ hoặc chạy qua các công cụ lập lịch tự động.

Phiên bản hiện tại tích hợp lớp cấu hình thông minh giúp tự động quét và định vị chính xác vị trí thư mục lưu trữ gốc. Dù bạn thực thi mã lệnh từ bất kỳ vị trí nào trên máy tính cá nhân hay máy chủ đám mây, hệ thống vẫn đảm bảo tỷ lệ đọc/ghi dữ liệu thành công tuyệt đối.

Thảo luận

Đang tải bình luận...