由于从RDBMS(oracle / teradata)到HDFS(HIVE)的数据迁移,要求是将RDBMS的完整数据集与HIVE数据集进行比较,我知道从RDBMS / HIVE中获取大量数据是一个很大的网络开销但是这就是要求,我在eclipse中开发了一个基本的java框架,它将采用源和目标查询(有限的行)并通过获取RDBMS和HIVE结果进行并排比较,然后使其成为一个更全面的验证我必须比较两个系统的密钥并检查系统中的重复项,这是我到目前为止尝试的事情:
为RDBMS初始化了两个HashMaps,为HIVE初始化了一个HashMaps,然后将PK作为arraylist中的关键和非关键属性作为值。现在有两个hashmaps试图比较它之间的键/值。但是在RAM中加载两个结果集和哈希映射会降低性能。
尝试使用REDIS内存数据库存储键/值对,但是当我尝试通过Java程序访问REDIS时,不确定如何使用REDIS hashmaps / hashsets,就像我们在JAVA中使用的那样。
- 将结果集写入两个不同的文本文件,但编写文件和读取/处理非常耗时。
醇>
对于从RDBMS获取数据的部分,我做了here和here提到的事情。 我想这个工作可能有一些工具,但我正在尝试在opensource中开发一些东西。
答案 0 :(得分:0)
您的数据是否具有可用于订购数据的时间戳或任何增加的值,或者来自一个数据源的一个重复元素是否可以在另一个源中的任何位置?如果有任何可以订购数据的内容(如时间戳),您可以使用任何类型的流媒体系统,“简单”执行不同的选择。但是,需要有关您正在使用的数据类型的更多信息。