使用排除表进行sqoop导入

时间:2019-03-17 02:50:56

标签: sqoop

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

1 个答案:

答案 0 :(得分: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