缓存与性能优化
ChatBI 在多个层面提供缓存能力,以降低数据库压力并加速问答:
查询缓存
- 应用层缓存:默认会将同一个问题的结果缓存数分钟,可在
config.json的cache.ttl中调整。 - 分词结果缓存:大语言模型生成的语义解析结果亦可缓存,避免重复推理。
建议在频繁更新的数据集上降低
ttl或在同步后调用刷新接口清理缓存。
指标缓存
对于复杂指标(如多表聚合、自定义 SQL),可以开启 cacheKey:
{
"operator": "$sum",
"pred": "amount",
"cacheKey": "sales:sum",
"cacheTtl": 3600
}
cacheKey:缓存命名空间;同名指标会共用缓存。cacheTtl:缓存有效期(秒)。
缓存刷新
- 通过管理后台的“系统维护 > 缓存管理”手动清理。
- 使用 REST API:
POST /api/cache/purge,可按schema或cacheKey精确清除。 - 在 ETL 任务完成后触发缓存刷新,确保用户看到最新结果。
监控与排查
- 结合日志中的
cache.hit指标判断命中率。 - 当问题结果明显过旧时,检查是否存在长时间运行的同步任务或缓存未刷新。
更多运维建议,参见 故障排查。