公司的olap用的cubes+mysql,性能有点落后了,所以最近研究一下kylin
参考有赞的这篇文章:
https://tech.youzan.com/kylin-mondrian-saiku/
原理看一下上面的文章,主要记录一下整合的步骤
搭建
首先部署好kylin,具体步骤后续补充。
下载saiku最新版,解压。
github上已经有一个整合Kylin,Mondrian以及Saiku的项目(作者mustangore):
https://github.com/mustangore/kylin-mondrian-interaction
项目中有步骤,不过是英文的,解释一下:
1. 进入saiku下目录: $SAIKU_HOME/tomcat/webapps/saiku/WEB-INF/lib/
2. 在当前目录加入kylin-jdbc.jar(在kylin的路径下,/lib里面),
加入Mondrian 4.4 jar with Kylin dialect(在刚才github项目中/mondrian下),
加入新的Commons HTTPClient jar(在刚才的github项目中/saiku/commons-httpclient-3.1.jar),
删除旧的Mondrian jar和Commons HTTPClient jar
3. 启动Saiku (_sh start-saiku.sh_)
4. 访问 http://saiku-server:8080/
* 用户名: admin
* 密码: admin
5. 第一次登录之前需要license认证,认证具体过程:
1、https://licensing.meteorite.bi/login 注册账号登录。
2、创建公司记录。
3、创建license。
4、将license下载到本地。
5、 http://saiku-server:8080/upload.html 将 下载的license文件上传。上传完毕之后即可登录。
如图:
使用:
STEP1:编写Mondrian Schema文件
<?xml version="1.0"?>
<Schema name="ad_schema">
<Cube name="lxw1234_ad_cube2">
<!-- 事实表(fact table) -->
<Table name="AD_REPORT" />
<Dimension name="地域">
<Hierarchy hasAll="false">
<Table name="AD_REPORT"></Table>
<Level name="省份" column="PROVINCE" table="AD_REPORT"></Level>
<Level name="城市" column="CITY" table="AD_REPORT"/>
</Hierarchy>
</Dimension>
<Measure name="曝光数" column="IMP_PV" aggregator="sum" datatype="Integer" />
<Measure name="唯一曝光数" column="COOKIEID_IMP" aggregator="distinct-count" datatype="Integer" />
<Measure name="点击数" column="CLK_PV" aggregator="sum" datatype="Integer" />
<Measure name="唯一点击数" column="COOKIEID_CLK" aggregator="distinct-count" datatype="Integer" />
</Cube>
</Schema>
STEP2:添加Kylin数据源
进入Saiku管理控制台,点击”Add Schema”,将编写好Schema文件上传。
接着点击”Add Data Source”,添加数据源:
- Name: Kylin Data Source
- Connection Type: Mondrian
- URL: jdbc:kylin://{your_kylin_url}:7070/{your_project_name}
- Schema: {your_mondrian_schema}
- JDBC:org.apache.kylin.jdbc.Driver
- Username: {your_kylin_username} (缺省: admin)
- Password: {your_kylin_password} (缺省: KYLIN)
STEP3:创建查询
回到Saiku Home主页,点击”Create a new query”,创建查询:
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/191073.html