這篇主要有兩個目的:
幫ROracle澄清其實沒那麼難用,只是要把table name跟column name都轉成大寫,就不會有double quote了
在scala用sparkSQL連ojdbc7,把Oracle資料拉出來,再透過spark-cassandra-connector把資料倒進Cassandra
ROracle安裝部分請參考這篇
在server使用$ORACLE_HOME/bin/sqlplus system/password@oracleServer:1521/orcl
登入
透過sqlplus在Oracle server上創新的user,其SQL如下:
1 | CREATE TABLESPACE testuser |
我們再透過R去塞一個夠大的資料到Oracle上去,其R code如下:
1 | library(rpace) # my package (there is a big data.frame) |
在server上query看看結果:
接下來就是用scala寫一個程式去拉資料
build.sbt
的部分:
1 | name := "oracle2cassandra_sparksql" |
scala code:
1 | import java.net.InetAddress |
然後在Intellij用Application執行,記得Program arguments要給參數,本地端就可以運行成功了
如果要在遠端伺服器跑的話,master
跟spark.sql.warehouse.dir
記得修改成相對應的位置
然後把ojdbc7.jar放進server,用
1 | cp ~/ojdbc7.jar $SPARK_HOME/extraClass |
重開spark,再用spark-submit
:
1 | spark-submit --class ora2cass oracle2cassandra_sparksql_2.11-1.0.jar C##TESTUSER VDDATA testuser vddata |