我们正在使用 Cloudera CDH 4,并且能够按预期将表从 Oracle 数据库导入到我们的 HDFS 仓库中。问题是我们的数据库中有数十万张表,而 sqoop 一次只支持导入一张表。
有哪些选项可用于将多个表导入 HDFS 或 Hive?例如,一次将 200 个表从 Oracle 导入 HDFS 或 Hive 的最佳方式是什么?
到目前为止,我看到的唯一解决方案是为每个表导入创建一个 sqoop 作业,然后单独运行它们。由于 Hadoop 设计用于处理大型数据集,因此似乎应该有更好的方法。
您可以使用“import-all-tables”选项一次性将所有表加载到 HDFS 中。
sqoop import-all-tables --connect jdbc:mysql://localhost/sqoop --username root --password hadoop --target-dir '/Sqoop21/AllTables'
如果我们想排除一些表加载到 hdfs 中,我们可以使用“ --exclude-tables ”选项
Ex:
sqoop import-all-tables --connect jdbc:mysql://localhost/sqoop --username root --password hadoop --target-dir '/Sqoop21/AllTables' --exclude-tables <table1>,<tables2>
如果我们想存储在指定的目录中,那么你可以使用“ --warehouse-dir ”选项
Ex:
sqoop import-all-tables --connect jdbc:mysql://localhost/sqoop --username root --password hadoop --warehouse-dir '/Sqoop'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)