saiku缓存整理
使用saiku的人,肯定都有这么一个经历,查询了一次多维分析数据表,第二次之后就特别快,因为它缓存了结果,可问题是过了一天,甚至几天,来源数据早都更换了,可还是这个缓存结果。问题来了,缓存不失效!
那么如何解决这个问题呐?我总结了两个办法:
一、不使用缓存
这个方案修改起来特别简单:修改mandrian配置文件tomcat/webapps/saiku/WEB-INF/classes/mondrian.properties,设置失效即可。mondrian.rolap.star.disableCaching=true。
可是这种方案基本不能应用到生产环境,因为数据太大,且是全局属性,在特定的开发环境或许可以用一用
二、定时更新缓存
这个方案略复杂,需要自己写curl命令,模拟管理员点击刷新缓存。
在saiku的管理页面,有一个刷新缓存的按钮,点击之后,会找到这个ajax请求:/saiku/rest/saiku/admin/datasources/mini_com_order_detail/refresh 其中mini_com_order_detail是立方体的名称,更换即可。
这个方法,模拟管理员登录是核心,需要下载cookie,然后访问这个链接,我把代码粘贴上来,大家参考:
#!/bin/bash #获取时间参数 curl -c ./cookie.txt -d "language=zh&password=admin&username=admin" http://***.qunar.com:8080/saiku/rest/saiku/session curl -b ./cookie.txt "http://***.qunar.com:8080/saiku/rest/saiku/admin/datasources/%E4%B8%80%E6%97%A5%E6%B8%B8/refresh"
那么这个任务我会在etl执行之后,刷新缓存
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2014-06-13 这两天使用JSP开发程序,记录一些基本方法