增量附加到文件

时间:2017-03-17 19:21:01

标签: hive hdfs increment sqoop

我在MySQL中有表格我想使用sqoop导入数据。我导入了数据并将其存储在HDFSfile。现在我想对此进行增量更新 文件在hdfs。

假设我在MYSQL表中有100行。 HDFS中的文件包含前50行的数据。如何增量更新此文件。

I am talking about files not Hive tables

  

我希望增量数据作为单独的文件而不是合并文件。例如,第一部分文件包含50条记录,然后我需要一个包含接下来50条记录的零件文件。我的意思是说我们可以对文件进行增量更新吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您无法更新HDFS文件。

但这是一个常见的用例。 sqoop-merge 工具可以解决此问题。您需要在不同的hdfs文件中执行sqoop增量导入并保存输出。

根据documentation

  

合并工具允许您组合两个数据集,其中一个数据集中的条目应覆盖旧数据集的条目。例如,在最后修改模式下的增量导入运行将在HDFS中生成多个数据集,其中每个数据集中会连续出现更新的数据。合并工具将“变平”"将两个数据集合并为一个,获取每个主键的最新可用记录。

示例命令:

sqoop merge --new-data newer --onto older --target-dir merged \
--jar-file datatypes.jar --class-name Foo --merge-key id