Tùy chỉnh Pipeline
Cập nhật lần cuối:
Thảo luậnMục lục
Tùy chỉnh pipeline
Kiến trúc mới của vnstock_pipeline (từ v2.3.1) cho phép bạn linh hoạt tùy biến bằng 3 cách:
- Tùy chỉnh qua giao diện dòng lệnh (CLI)
- Tùy chỉnh qua file cấu hình
pipeline.toml - Mở rộng các lớp cơ sở bằng mã Python
1. Tùy chỉnh qua giao diện dòng lệnh (CLI)
Giao diện CLI cung cấp các cờ (flag) để bạn can thiệp trực tiếp vào luồng xử lý mà không cần viết code:
# Thay đổi nguồn cung cấp dữ liệu ưu tiên
python -m vnstock_pipeline.cli run ohlcv --sources VCI,KBS,VND
# Thay đổi khung thời gian cho dữ liệu lịch sử
python -m vnstock_pipeline.cli run ohlcv --interval 1H
# Tuỳ chỉnh khoảng thời gian lấy dữ liệu
python -m vnstock_pipeline.cli run ohlcv --start "2024-01-01" --end "2024-12-31"2. Tùy chỉnh qua file cấu hình pipeline.toml
Hệ thống cho phép bạn cấu hình ghi đè định dạng lưu trữ theo từng thư mục.
Ví dụ: Bạn muốn lưu tất cả mọi thứ dạng Parquet để tiết kiệm dung lượng, nhưng riêng thư mục Báo cáo tài chính (financial) bạn muốn xuất thẳng ra Excel để nhân viên kế toán đọc được.
Chỉ cần sửa file pipeline.toml:
# ~/.vnstock/config/pipeline.toml
base_path = "/Users/admin/vnstock_db"
layout_mode = "flat"
default_format = "parquet"
[format_overrides]
financial = "excel" # Ghi đè: Riêng BCTC xuất Excel
trades = "csv" # Ghi đè: Riêng khớp lệnh xuất CSV3. Đọc dữ liệu đã xuất
Trong phiên bản mới, khi bạn viết mã lấy dữ liệu để huấn luyện mô hình, tuyệt đối không viết cứng đường dẫn (./data). Hãy dùng lớp StorageConfig:
import pandas as pd
from vnstock_pipeline.core.storage.config import StorageConfig
# Load cấu hình từ file pipeline.toml hiện tại
config = StorageConfig.load()
# Tự động giải quyết đường dẫn tuyệt đối dù bạn chạy script ở bất kỳ đâu
base_path = config.resolve_base_path()
# Ví dụ đọc dữ liệu Parquet
file_path = base_path / "ohlcv" / "ACB.parquet"
df = pd.read_parquet(file_path)4. Tự tạo Exporter tùy chỉnh
Nếu bạn muốn tạo một điểm kết nối đẩy dữ liệu trực tiếp lên các dịch vụ đám mây (như AWS S3) thay vì lưu tại máy tính, bạn có thể kế thừa lớp Exporter.
from vnstock_pipeline.core.exporter import Exporter
from vnstock_pipeline.core.storage.config import StorageConfig
class AWSS3Exporter(Exporter):
def __init__(self):
# Lấy cấu hình lưu trữ
self.config = StorageConfig.load()
def export(self, data, ticker: str, category: str, **kwargs):
# 1. Tuân thủ cấu trúc lưu trữ do người dùng chọn (phẳng hoặc phân cấp)
# Sử dụng API nội bộ để tạo đường dẫn S3 chuẩn
# 2. Đẩy file lên bucket
pass
Thảo luận