架构与设计
Provider API 或本地文件
|
v
DataSource
|
v
DataLakeManager.update
|
v
LocalDataLake
|
+--> LoadedDataset
|
+--> RetrievedPanel
|
v
下游适配器
设计哲学
- Provider 接入和研究逻辑分离。
- 本地快照是可复现读取的默认边界。
- 元数据、转换、存储和读取接口彼此独立。
- 输出保持为 pandas 和普通对象,避免向下游包产生反向依赖。
数据湖结构
本地 V1 存储使用 source/table/year/month 分区的 Parquet 快照,并维护 JSON 元数据。
lake-root/
tushare/
daily/
year=2024/
month=01/
snapshots/
读取时可以投影列并过滤日期。LocalDataLake 先使用分区元数据跳过不相关快照,再在读取后做精确日期过滤。
模块结构
datasource:provider 适配器、请求对象和注册表。lake:本地存储、快照目录、直接读取和更新编排。loader:优先读取本地 lake 的检索接口。metadata:schema、contract、identity 和 lineage。transform:无状态 DataFrame 转换流水线。cache:可选缓存策略和实现。