Apache spark Oracle到Cassandra数据迁移的数据验证
我们每天都在将数据从Oracle迁移到Cassandra,这是ETL过程的一部分。我想在Spark作业完成后在两个数据库之间执行数据验证,以确保两个数据库同步。我们正在使用DSE 5.1。请您提供有价值的输入,以确保数据已正确迁移我假设您有带Spark支持的DSE Max。 SparkSQL应该最适合它。 首先,使用JDBC连接到Oracle 我没有Oracle DB,因此以下代码未经测试,请在运行之前检查JDBC URL和驱动程序:Apache spark Oracle到Cassandra数据迁移的数据验证,apache-spark,apache-spark-sql,cassandra-2.0,spark-cassandra-connector,Apache Spark,Apache Spark Sql,Cassandra 2.0,Spark Cassandra Connector,我们每天都在将数据从Oracle迁移到Cassandra,这是ETL过程的一部分。我想在Spark作业完成后在两个数据库之间执行数据验证,以确保两个数据库同步。我们正在使用DSE 5.1。请您提供有价值的输入,以确保数据已正确迁移我假设您有带Spark支持的DSE Max。 SparkSQL应该最适合它。 首先,使用JDBC连接到Oracle 我没有Oracle DB,因此以下代码未经测试,请在运行之前检查JDBC URL和驱动程序: dse spark --driver-class-path
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