sqoop如何在增量导入中导入固定数量的行?

Posted

技术标签:

【中文标题】sqoop如何在增量导入中导入固定数量的行?【英文标题】:How to import a fixed number of rows in incremental import in sqoop? 【发布时间】:2018-11-13 02:41:25 【问题描述】:

我正在自学 sqoop,并尝试使用下面提到的代码在本地测试增量导入功能

sqoop import \
--connect jdbc:mysql://localhost/employees \
--username root \
-P \
--query 'select * from employees WHERE $CONDITIONS ORDER BY emp_no LIMIT 1000' \
-m 1 \
--incremental append \
--check-column emp_no \
--target-dir sqoop/import_data/employee_db_import_incremental

上面的脚本导入了前 1000 条记录,现在我想将接下来的 1000 条记录附加到现有数据中。怎么办?

【问题讨论】:

【参考方案1】:

您必须指定最后一个值,您需要从哪个记录追加,假设您的最后一条记录是1000,那么您的命令必须如下所示:

sqoop import \
--connect jdbc:mysql://localhost/employees \
--username root \
-P \
--query 'select * from employees WHERE $CONDITIONS ORDER BY emp_no LIMIT 2000' 
\
-m 1 \
--incremental append \
--check-column emp_no \
--last-value 1000
--target-dir sqoop/import_data/employee_db_import_incremental

【讨论】:

以上是关于sqoop如何在增量导入中导入固定数量的行?的主要内容,如果未能解决你的问题,请参考以下文章

利用SQOOP将数据从数据库导入到HDFS(并行导入,增量导入)

Sqoop - 是不是可以在 HDFS 中导入平面文件

如何在EXCEL的数据中导入到我自己设定的EXCEL模板中!?

使用 --create-hive-table 直接在 hive 中导入 mysql 表 (sqoop)

如何实现交易数据到大数据平台的实时同步

如何使用 Sqoop 从 MySQL 增量导入到 Hive?