使用lastmodified的sqoop增量导入

91zkwejq  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(354)

我试图理解sqoop-使用“lastmodified”选项的增量导入。既然hdfs并不意味着文件更新,那么如何在内部处理它呢?是通过创建一个单独的文件并指向这个新文件吗?如果是追加-用新记录创建新文件??可能是??
但上次修改的标志如何更新hdfs数据。。。这背后的逻辑?

7cjasjjr

7cjasjjr1#

--附加模式

您只是在添加新数据。每个sqoop增量导入操作都会在hdfs目录中添加部件文件。例如- part-m-00000 , part-m-00001 ###--上次修改模式
除了新添加的数据,还有更新。当您第二次尝试运行此命令时,它将给您带来错误(因为目标目录相同):
导入期间出错:使用--incremental lastmodified时需要--merge key或--append,并且输出目录存在。
现在如果你加上 --append ,它只需将新文件添加到同一目录。现在您必须使用sqoop merge手动合并两个文件中的数据。
根据文件,
合并工具允许您合并两个数据集,其中一个数据集中的条目应覆盖旧数据集的条目。例如,以上次修改模式运行的增量导入将在hdfs中生成多个数据集,其中每个数据集中依次出现较新的数据。合并工具将把两个数据集“展平”为一个,为每个主键获取最新的可用记录。
否则,你可以选择 --merge-key ,它将负责自动合并。

相关问题