通过jdbc读取OBIEE数据--Spark示例

浏览: 61

最近在用Spark同步数据的时候想到,是否可以直接从已有的OBIEE读取数据,OBIEE上面有完整的语义层,读取数据就比较方便了.

想到以前Rittmanmead有篇blog提到,如何使用jdbc驱动清除缓存的功能(https://www.rittmanmead.com/blog/2015/09/managing-the-obiee-bi-server-cache-from-odi-12c/),里面提到参考这个https://blogs.oracle.com/dataintegration/entry/connecting_to_oracle_bi_server

我先测试了 10.1.3.4.1的版本,

jdbc位置在$obieefolder/OracleBI/jdbc/bijdbc.jar

可以使用以下命令测试

java -classpath $obieefolder/OracleBI/jdbc/bijdbc.jar oracle.bi.jdbctestclient.JDBCCmd -u "jdbc:oraclebi://hostip:9703/catalog=edw_kpi;USER=administrator;PASSWORD=password;" -s $HOME/test/obieejdbcsrc/ -o $HOME/test/obieejdbcout

注意-s $HOME/test/obieejdbcsrc/是目录,目录下是需要执行的sql脚本,可以多个,对应输出到-o 的目录里面

这个要吐槽一下11g的jdbc,里面README文件都没有了,开始url我始终写不对,看了10的版本中的README才搞定。

然后在spark也测试了一下,类似如下写法就可以了(我在Zepplin运行)

%spark.pyspark
execsql = 'SELECT "table1"."column1" saw_0, "table2"."column1" saw_1 FROM KPI \
 WHERE "table1"."column1" >= \'2017\' ORDER BY saw_0'
 
jdbcDF_onvctrl = spark.read \
    .format("jdbc") \
    .option("driver", "oracle.bi.jdbc.AnaJdbcDriver")\
    .option("url", "jdbc:oraclebi://hostip:9703/catalog=kpi;USER=administrator;PASSWORD=password;") \
    .option("dbtable","(" + execsql + ") AS TEMP") \
    .load()
jdbcDF_onvctrl.write.saveAsTable("testdb.seng_day")

也可以在Zepplin中配置jdbc连接用于观察数据,增加obiee10g for jdbc配置如下属性

default.driver oracle.bi.jdbc.AnaJdbcDriver
default.password ***
default.url jdbc:oraclebi://ip:9703/catalog=kpi;
default.user administrator
Dependencies

注意artifact exclude下配置jar包

/pythontest/jars/bijdbc.jar

如果在已有的note要使用, 需要Interpreter binding下。

推荐 1
本文由 seng 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册