davinci默认的数据源驱动配置文件中,只配置了mysql和oracle。但是jar只有mysql的驱动jar包,所以默认davinci只支持连接mysql数据源。
一、修改数据源驱动配置文件
(1)进入davinci安装目录中的config文件夹
cd $DAVINCI3_HOME/config
(2)修改数据源驱动配置模板
mv datasource_driver.yml.example datasource_driver.yml
(3)编辑数据源驱动,并追加内容(支持kylin和impala数据源)
vi datasource_driver.yml
#kylin:
# name: kylin
# desc: kylin
# driver: org.apache.kylin.jdbc.Driver
# keyword_prefix: \"
# keyword_suffix: \"
# alias_prefix: \"
# alias_suffix: \"
#impala:
# name: impala
# desc: impala
# driver: com.cloudera.impala.jdbc41.Driver
# keyword_prefix: \"
# keyword_suffix: \"
# alias_prefix: \"
# alias_suffix: \"
二、上传对应的驱动jar包到 $DAVINCI3_HOME/lib 目录
oracle、kylin、impala的驱动jar包,我已上传到网盘中。网盘的地址,在本套文章的第1章结尾处。
三、重启davinci
sh $DAVINCI3_HOME/bin/stop-server.sh
sh $DAVINCI3_HOME/bin/start-server.sh
至此你的davinci就支持4种数据源了
四、在davinci中配置数据源的连接字符串
(1)mysql格式
jdbc:mysql://IP:端口/库名
(2)oracle格式
jdbc:oracle:thin:@IP:端口:实例名
(3)kylin格式
jdbc:kylin://IP:端口/project名称
(4)impala格式
jdbc:impala://IP:端口/库名
附:连接oracle时
错误1:
2020-01-19 18:04:05.865 WARN 28651 --- [http-nio-192.168.8.102-8080-exec-7] c.a.druid.pool.DruidAbstractDataSource : oracle.jdbc.driver.OracleDriver is deprecated.Having use oracle.jdbc.OracleDriver.
2020-01-19 18:04:05.933 INFO 28651 --- [http-nio-192.168.8.102-8080-exec-7] com.alibaba.druid.pool.DruidDataSource : {dataSource-7} inited
licationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z
at com.alibaba.druid.pool.DruidPooledConnection.isValid(DruidPooledConnection.java:1043)
at edp.core.utils.SourceUtils.getConnection(SourceUtils.java:96)
at edp.core.utils.SqlUtils.testConnection(SqlUtils.java:673)
at edp.davinci.service.impl.SourceServiceImpl.testSource(SourceServiceImpl.java:404)
解决办法:
驱动包版本的问题 把ojdbc14换成ojdbc6即可