title: saiku+kettle整合(十)缓存控制 tags:
- olap categories: saiku date: 2016-08-25 18:18:54
缓存控制
正常来说,当数据源发生变化我们需要自动清除缓存数据,对于使用ui来说,在admin画面点击
但是在开发阶段不需要cache,可以使用WEB-INF/classes/mondrian.properties
mondrian.rolap.star.disableCaching=true
复制代码
对于生产环境下,如果需要更新数据源可以使用etl工具定时更新
#!/bin/bash
curl -D ./cookie.txt -d "language=zh&password=admin&username=admin" http://localhost:8080/saiku/rest/saiku/session
curl -b ./cookie.txt "http://localhost:8080/saiku/rest/saiku/admin/datasources/XXXXXXXX/refresh"
复制代码
其中XXXX为datasource的名称
/**
* Refresh a Saiku data source.
* @summary Refresh data source
* @param id The data source id.
* @return A response containing the data source definition.
*/
@GET
@Produces( {"application/json"})
@Path("/datasources/{id}/refresh")
@ReturnType("java.util.List<SaikuConnection>")
public Response refreshDatasource(@PathParam("id") String id) {
if(!userService.isAdmin()){
return Response.status(Response.Status.FORBIDDEN).build();
}
try {
olapDiscoverService.refreshConnection(id);
return Response.ok().entity(olapDiscoverService.getConnection(id)).type("application/json").build();
} catch (Exception e) {
log.error(this.getClass().getName(), e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getLocalizedMessage())
.type("text/plain").build();
}
}
复制代码