sqoop导入多个表,但不是全部

xmakbtuz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(438)

我找到的所有搜索都显示了如何导入一个表或建议导入所有表。如果我想从数据库中得到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
6tdlim6h

6tdlim6h1#

使用 --exclude-tables "table1,table2" 选项忽略表1和表2。
不要在表名(aka。 "table1, table2" )

f45qwnt8

f45qwnt82#

您还可以将相同的命令应用于配置单元导入,如下所示:

sqoop import-all-tables --connect jdbc:mysql://your_ip_address:3306/database_name --driver com.mysql.jdbc.Driver --username root --warehouse-dir temp_dir_for_staging --hive-import --hive-overwrite --hive-database hive_db --exclude-tables list_of_tables_to_be_excluded -m 1

记住,在 hive 里你需要临时区域。

b4lqfgs4

b4lqfgs43#

很明显,一个sqoop开发人员的想法和你一样
可以使用“导入所有表”。
然后添加--exclude tables以逗号分隔的要从导入过程中排除的表列表。
https://sqoop.apache.org/docs/1.4.0-incubating/sqoopuserguide.html#id1766722

相关问题