我有一张table MySQL
我想使用导入数据 sqoop
. 我导入数据并存储在 HDFS
作为一个 file
. 现在我想在hdfs中对这个文件运行增量更新。
假设mysql表中有100行。hdfs中的文件包含前50行的数据。如何增量更新此文件。 I am talking about files not Hive tables
.
我希望增量数据作为一个单独的文件,而不是合并文件。例如,第一个零件文件包含50条记录,然后我需要一个零件文件包含下50条记录。我的意思是我们能对文件进行增量更新吗?
1条答案
按热度按时间cgvd09ve1#
在这种情况下,您不能更新hdfs文件。
但这是一个常见的用例。
sqoop-merge
工具可以解决这个问题。您需要执行sqoop增量导入,并将输出保存在不同的hdfs文件中。根据文件,
合并工具允许您合并两个数据集,其中一个数据集中的条目应覆盖旧数据集的条目。例如,以上次修改模式运行的增量导入将在hdfs中生成多个数据集,其中每个数据集中依次出现较新的数据。合并工具将把两个数据集“展平”为一个,为每个主键获取最新的可用记录。
示例命令: