импорт sqoop с использованием таблиц исключений - PullRequest
0 голосов
/ 17 марта 2019

У меня есть 100 таблиц в базе данных MySQL, используя sqoop import-all-tables Я хочу импортировать только 50 таблиц в hdfs, используя команду exclude, мы должны указать 50 таблиц, или есть какой-либо другой вариант?

1 Ответ

0 голосов
/ 19 марта 2019

Да. Вы правы. Вы можете использовать Sqoop "import-all-tables" вместе с другим параметром --exclude-tables, с помощью которого вы можете исключить некоторые таблицы, которые вы не хотите импортировать в базу данных.Другой вариант, который вы можете попробовать - это скрипт оболочки, как показано ниже:

1) Подготовьте входной файл со списком DBNAME.TABLENAME

2) Сценарий оболочки будет иметь этот файл в качестве входных данных, итерировать строкустрока и выполнение оператора 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
...