gpt4 book ai didi

hive - 使用 Lastmodified 的 SQOOP 增量导入

转载 作者:行者123 更新时间:2023-12-04 03:19:14 25 4
gpt4 key购买 nike

我正在尝试了解 SQOOP- 带有“LastModified”选项的增量导入。由于 HDFS 并不意味着文件更新,这是如何在内部处理的?是通过创建一个单独的文件并将原始文件指向这个新文件吗?在追加的情况下 - 创建一个包含新记录的新文件??也许??

但是 last modified 标志是如何更新 HDFS 数据的……这背后的逻辑是什么?

最佳答案

--追加模式

您只是在添加新数据。每次Sqoop增量导入操作都会在hdfs目录下添加part文件。例如 - part-m-00000 , part-m-00001

--lastmodified 模式

除了新增数据外,还有更新。当你第二次尝试运行这个命令时,它会给你错误(因为目标目录是相同的):

Error during import: --merge-key or --append is required when using --incremental lastmodified and the output directory exists.

现在,如果您添加 --append,它只会将新文件添加到同一目录。现在您必须使用 Sqoop Merge 手动合并两个文件中的数据.

根据文档,

The merge tool allows you to combine two datasets where entries in one dataset should overwrite entries of an older dataset. For example, an incremental import run in last-modified mode will generate multiple datasets in HDFS where successively newer data appears in each dataset. The merge tool will "flatten" two datasets into one, taking the newest available records for each primary key.

否则,您可以选择--merge-key,它会自动合并。

关于hive - 使用 Lastmodified 的 SQOOP 增量导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39437537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com