Hiệu năng và tối ưu hóa
Cập nhật lần cuối:
Thảo luậnMụ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:
python -m vnstock_pipeline.cli run ohlcv --group VN100 --mode dailyBộ đ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:
- 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.
- 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.csvnằm trong thư mục dữ liệu của bạn. - Tiếp tục thông minh: Bạn chỉ cần thêm tham số
--retry-errorsvà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.
# 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-errorsTố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:
- 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.
- 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