0
我們正在將數據從Oracle遷移到Cassandra,作爲每日ETL過程的一部分。一旦Spark作業完成,我想在兩個數據庫之間執行數據驗證,以確保兩個數據庫同步。我們正在使用DSE 5.1。您能否請您提供寶貴意見以確保數據已正確遷移Oracle到Cassandra數據遷移的數據驗證
我們正在將數據從Oracle遷移到Cassandra,作爲每日ETL過程的一部分。一旦Spark作業完成,我想在兩個數據庫之間執行數據驗證,以確保兩個數據庫同步。我們正在使用DSE 5.1。您能否請您提供寶貴意見以確保數據已正確遷移Oracle到Cassandra數據遷移的數據驗證
我認爲您擁有支持Spark的DSE Max。 SparkSQL應該是最適合它的組件。 首先你連接到Oracle與JDBC https://spark.apache.org/docs/2.0.2/sql-programming-guide.html#jdbc-to-other-databases 我沒有Oracle數據庫,以便下面的代碼沒有進行測試,檢查JDBC URL和驅動程序之前運行:
dse spark --driver-class-path ojdbc7.jar --jars ojdbc7.jar
scala> val oData = spark.read
.format("jdbc")
.option("url", "jdbc:oracle:thin:hr/[email protected]//localhost:1521/pdborcl")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.load()
C *數據已被映射到SparkSQL表。因此:
scala> cData = spark.sql("select * from keyspace.table");
您需要檢查兩者的數據模式和數據轉換的詳細信息,才能正確比較這些表。簡單的集成檢查:所有數據格式Oracle存在於C *中:
scala> cData.except(oData).count
0: Long