最近在用Spark同步数据的时候想到,是否可以直接从已有的OBIEE读取数据,OBIEE上面有完整的语义层,读取数据就比较方便了.
我先测试了 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下。