gpt4 book ai didi

mysql - Sqoop:增量导入问题

转载 作者:可可西里 更新时间:2023-11-01 15:15:08 26 4
gpt4 key购买 nike

我有一个要求,其中我需要从 mysql 中导入一个表以增量方式配置单元,并且在这样做时遇到了问题。到目前为止,这是我尝试过的:

  1. 我已经创建了一个作业来使用下面提到的查询导入表。

/sqoop 作业

--create test2 -- import 
--connect jdbc:mysql://URL
--username username
--password password
--table mysqlTablename
--hive-import
--hive-overwrite
--direct
--incremental lastmodified
--check-column last_modified_time
--last-value 0

第一次执行:按预期导入所有内容,最小边界为“0”,最大边界为当前时间。第二次执行:获取上次运行的所有更改,但旧行将被覆盖,仅留下上次运行以来已更改的行。

  1. 我删除了 --hive-overwrite 和 --hive-import 选项并使用了“--target-dir”选项。第一次执行:按预期获取所有内容,最小边界为“0”,最大边界为当前时间,但不会显示在 Hive 中,因为 Metastore 未更新。第二次执行:它抛出一个错误,指出作为参数提到的 directoty --target-dir 选项已经存在。这在从 HDFS 中删除目录后执行,但没有解决目的。

我发现这是一个问题,除了将新值放入辅助目录并在数据上运行 sqoop merge 以将其展平之外,还没有找到其他解决方案。我想在 shell 脚本中自动执行此操作,想知道是否有更好的处理此增量更新的方法。

想要检查什么是满足要求的最佳选择,其中我需要导入一个 mysql 表并根据具有最后修改时间戳的列增量更新更改到配置单元中。即根据 mysql 中的更改创建、更新或删除 Hive 表中的行以保持它们同步。

非常感谢对此的任何帮助。

问候罗希特

最佳答案

基于 Hive 的系统很难处理涉及更新记录的增量负载。这link会给出很多可行的解决方案。

关于mysql - Sqoop:增量导入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793524/

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