2.11sqoop导入所有表的数据

Apache Sqoop Cookbook 英文版-翻译学习!!
更多信息https://blue-shadow.top/

2.11导入所有表的数据

问题

将数据库中的所有表一次性导入只通过一个命令,而不是一个个的导入

解决方案

使用命令 --import-all-tables 进行导入所有表,举例来说,从示例数据库中导出所有表可以使用以下的命令

sqoop import-all-tables \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop

讨论

当使用工具--import-all-tables,sqoop使用目录查询获取所有表的列表,随后sqoop将在内部调用import将每张表导入到hadoop中。
表将会顺序的导入,以避免同时导入多张表对数据库服务器造成负载影响,通过这个命令,sqoop将会把数据库的所有内容导入带到hadoop。
如果想导入除少许表外的所有表,可以使用参数 --excludetables,这个参数接受一个以逗号分割的表队列,这个列表中的表将会从导入操作中排除。
举例来说,如果需要导入除表cities和counties外的所有表,可以使用下述命令。

sqoop import-all-tables \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--exclude-tables cities,countries

导入所有表操作中将会在内部使用import工具将每张表进行传输,你将会发现对于import的很多参数很无法在命令--import-all-tables中连接使用。
如,无法使用--target-dir--命令,由于这个参数将会指令sqoop将所有表导入到同一个目录下,使用参数--warehouse-dir可以被用于导入所有表。你也可以利用--exclude-tables**参数来跳过一些需要特别参数的表,随后使用import命令,这样就可以允许使用特殊命令。

转载于:https://www.jianshu.com/p/37978994e415

猜你喜欢

转载自blog.csdn.net/weixin_34090643/article/details/91186125