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") 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(); } }复制代码