動作
Task #35
進行中是由 Eric Pan 於 約 2 個月 前更新
- 狀態 從 需求確認 變更為 設計中
3.3 InfluxDB時序資料庫 (src/database/influxdb/)¶
分層架構設計
influxdb/
├── exceptions.py # 統一異常定義
├── query_builder.py # Flux查詢構建器
├── base_repository.py # 基礎InfluxDB操作
├── layer_router.py # 智慧查詢路由
├── layered_repository.py # 分層repository
├── factory.py # 工廠方法
└── aggregation/ # 聚合功能模組
├── manager.py # 聚合管理器
├── tasks.py # 聚合任務邏輯
└── scheduler.py # 定時調度器
多層數據保留策略
- Raw層: 原始數據,30天保留
- 5分鐘層: 聚合數據,6個月保留
- 1小時層: 中期趨勢,2年保留
- 1天層: 長期歷史,永久保留
智慧查詢路由
- 根據查詢時間範圍自動選擇最佳數據層
- 支援跨層查詢,無縫長時間範圍數據存取
- 查詢性能優化:短期用原始數據,長期用聚合數據
自動聚合管理
- 定時任務:5分鐘、1小時、1天聚合
- 可配置聚合函數:mean, max, min, sum, count, median
- 數據清理:過期數據自動清理
- 錯誤恢復:聚合任務失敗自動重試
動作