0

我們正在將數據從Oracle遷移到Cassandra,作爲每日ETL過程的一部分。一旦Spark作業完成,我想在兩個數據庫之間執行數據驗證,以確保兩個數據庫同步。我們正在使用DSE 5.1。您能否請您提供寶貴意見以確保數據已正確遷移Oracle到Cassandra數據遷移的數據驗證

回答

0

我認爲您擁有支持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