Oracle表增量导入到HDFS

时间:2018-04-23 06:57:13

标签: hadoop hive hdfs sqoop

我有520 GB的Oracle表,在此表中插入,频繁执行更新和删除操作。此表在ID列上分区,但没有定义主键,也没有时间戳列可用。

请告诉我在这张桌子上执行HDFS增量导入的最佳方式。

2 个答案:

答案 0 :(得分:0)

这完全取决于你的“id”列。如果它是由有序序列生成的,那很简单,只需使用--incremental append --check-column ID加载表。 如果使用无序序列生成ID列,则允许一些重叠并在hadoop侧过滤它。 如果ID不是唯一的,那么您唯一的选择就是CDC工具。 Oracle GG,Informatica PWX等。我没有知道的开源/免费解决方案。

同样不需要任何索引来使用sqoop执行增量加载,但索引肯定会有所帮助,因为它的缺失将导致对源(可能非常大)表的全扫描。

答案 1 :(得分:0)

你的问题并不难解决,只需在你的db中寻找一些关键的东西。 1.你是由条件运行的列id"不是NULL和1 = 1",如果是,那么使用sqoop为你执行任务 使用以下sqoop工具 --incremental append / lastmodified -check-column [column id] --split-by [column id] //如果没有主键也允许你在没有主键的情况下运行多个映射器,这很有用,你必须只为一个映射器指定-m 1。

首选方法是使用--create工具使用sqoop作业完成此任务。 有关更多信息,请查看https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_purpose_6 希望这有帮助!