Oracle到Cassandra数据迁移的数据验证

时间:2017-06-14 12:17:26

标签: apache-spark apache-spark-sql cassandra-2.0 spark-cassandra-connector

我们每天都会将数据从Oracle迁移到Cassandra,作为ETL流程的一部分。我想在Spark作业完成后在2个数据库之间执行数据验证,以确保两个数据库同步。我们正在使用DSE 5.1。您能否提供宝贵的意见,以确保数据已正确迁移

1 个答案:

答案 0 :(得分:0)

我认为你有DSE Max支持Spark。 SparkSQL应该最适合它。 首先,您使用JDBC连接到Oracle https://spark.apache.org/docs/2.0.2/sql-programming-guide.html#jdbc-to-other-databases 我没有Oracle DB,因此未对代码进行测试,请在运行之前检查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/hr@//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