使用排除表进行sqoop导入

问题描述 投票:0回答:1

我在MySQL数据库中有100个表,使用sqoop import-all-tables我想只导入50个表到hdfs,使用exclude命令我们必须指定50个表或者还有其他选项吗?

sqoop
1个回答
0
投票

是的你是对的你可以使用Sqoop "import-all-tables"和另一个参数--exclude-tables,你可以用它来排除你不想在数据库中导入的一些表。您可以尝试的另一个选项是shell脚本,如下所示:

1)准备一个包含DBNAME.TABLENAME列表的输入文件

2)shell脚本将此文件作为输入,逐行迭代并为每一行执行sqoop语句

while read line;
do

    DBNAME=`echo $line | cut -d'.' -f1` 
    tableName=`echo $line | cut -d'.' -f2`


    sqoop import -Dmapreduce.job.queuename=$QUEUE_NAME --connect '$JDBC_URL;databaseName=$DBNAME;username=$USERNAME;password=$PASSWORD' --table $tableName  --target-dir $DATA_COLLECTOR/$tableName  --fields-terminated-by '\001'  -m 1 

done<inputFile
© www.soinside.com 2019 - 2024. All rights reserved.