Kylin设置JDBC配置greenplum数据源
kylin最开始的时候支持hive和kafka作为数据源,从2.3.0版本之后开始支持JDBC作为第第三种数据源。用户可以自定义的数据库或者数据仓库到自己的kylin集群。比如,mysql,postgresql,greenplum等。
- 支持原理
需要了解到的是,kylin设置完jdbc作为数据源,是通过sqoop来实现的,他并不是摒弃了底层的hive,而是使用sqoop将你配置的数据源的数据抽取到hive中,kylin通过在hive中生成的表来做cube的预计算。计算完之后,再将导入的临时数据删除。 - 配置JDBC数据源
首先,在kylin集群安装完之后,自行安装sqoop。注意sqoop的1.0和2.0版本相去甚远,一般在生产环境中不会使用2.0版本,同时需要注意sqoop和hbase的版本兼容问题,一般是sqoop1.x+hbase0.x。
第二步,准备jdbc driver。需要将你要配置的数据库的JDBC Driver配置搭配kylin和sqoop中,路径$KYLIN_HOME/ext和$SQOOP_HOME/lib。注意:mysql的驱动可以不加载,kylin2.3.1已经集成。
第三步,配置kylin.properties文件。
Mysql样例:
MYSQL
kylin.source.default=8
kylin.source.jdbc.connection-url=jdbc:mysql://10.4.6.226:3306/test
kylin.source.jdbc.driver=com.mysql.jdbc.Driver
kylin.source.jdbc.dialect=mysql
kylin.source.jdbc.user=root
kylin.source.jdbc.pass=326936
kylin.source.jdbc.sqoop-home=/home/zhouwang/sqoop-1.4.6/bin
kylin.source.jdbc.filed-delimiter=|
kylin.source.jdbc.sqoop-mapper-num=4
Greenplum样例:
GP
kylin.source.default=8
kylin.source.jdbc.connection-url=jdbc:postgresql://192.168.71.11:5432/testdb
kylin.source.jdbc.driver=org.postgresql.Driver
kylin.source.jdbc.dialect=default
kylin.source.jdbc.user=zhouwang
kylin.source.jdbc.pass=326936
kylin.source.jdbc.sqoop-home=/home/zhouwang/sqoop-1.4.6/bin
kylin.source.jdbc.filed-delimiter=|
kylin.source.jdbc.sqoop-mapper-num=4
注意:kylin.source.jdbc.sqoop-mapper-num这个参数是用来指定sqoop有多少个map数的。kylin.source.default这个参数是用来指定数据源类型的,默认是0,代表的是hive,8代表的是自己配置的数据源,也就是只能有一种数据源,如果想要有多种数据源需要再project的级别配置这些参数(2.4.0之后版本才有此功能)。
- 加载Greenplum数据
重启 Kylin 让改变生效。您现在可以从 JDBC 数据源加载表。访问 Kylin web 然后导航到数据源面板。点击 Load table 按钮然后输入表名,或点击 “Load Table From Tree” 按钮然后选择要加载的表。不检查 Calculate column cardinality 因为对于 JDBC 数据源这个功能并不支持。点击 “Sync”,Kylin 通过 JDBC 接口加载表定义。当表加载成功后您可以查看表和列,和 Hive 相似。
注意:需要再greenplum的date/master/gpseg-1/pg_hba.conf里面配置你要访问gp的机器的ip授权。
- Model和cube的使用
唯一与hive作为数据源不一样的地方就是cube在build的时候,第一步是从greenplum把数据导入到hive,后续的build步骤就与greenplum无关,与之前并无差别。