hadoop - Sqoop 导入多个表但不是全部

标签 hadoop sqoop data-ingestion

我发现的所有搜索都显示了如何导入一个表或推荐导入所有表。如果我想要数据库中 440 个表中的 35 个怎么办?我可以只编写一个命令并用逗号分隔表,还是必须将其放入脚本中并一遍又一遍地复制和粘贴命令并每次更改表名称?

我想做的事:

echo "Sqoop Import"
--options-file ${path} 
--table tbl1,tbl2,tbl3\
--target-dir ${path}
--m 1\  

我担心我可能必须做的事情:

echo "Sqoop Import"
--options-file ${path} 
--table tbl1\
--target-dir ${path}
--m 1

wait 

echo "Sqoop Import"
--options-file ${path} 
--table tbl2\
--target-dir ${path}
--m 1

最佳答案

显然 sqoop 开发人员的想法和你一样。 :)

您可以使用导入所有表。
然后添加 --exclude-tables 以逗号分隔的要从导入过程中排除的表列表。

https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1766722

关于hadoop - Sqoop 导入多个表但不是全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485242/

相关文章:

apache-spark - 什么决定了 Parquet 文件缓冲区的大小

hadoop - HBase 表的大小

hadoop - 从sqoop远程访问mySql

hadoop - 单个sqoop作业是否可以用于多个表并同时运行

java - 运行 Hadoop MapReduce 作业时如何获取文件名/文件内容作为 MAP 的键/值输入?

hadoop - 如何更改hadoop中分区的reducer输出名称

hadoop - 使用自由格式查询的Sqoop作业增量导入

shell - 比较DB2和Hive的行数

python - Pandas :合并两个数据框并保留来自单个数据框的非交叉数据

hadoop - 将特定来源摄取到特定机架中