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

В РСУБД 100 таблиц, но я хочу импортировать только 50 таблиц.

Как это сделать с помощью Sqoop? Я не хочу использовать команду —exclude.

Пожалуйста, дайте мне знать процесс с примером.

1 Ответ

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

Вы можете сделать это в bash, перечислив все таблицы с Sqoop и после этого импортировав только 50 из них:

JDBC_URL=<jdbc_url>
DBNAME=<database>
USERNAME=<username>
PASSWORD=<password>
DATA_COLLECTOR=<import_dir>

sqoop list-tables \
    --connect "$JDBC_URL;databaseName=$DBNAME;username=$USERNAME;password=$PASSWORD" \
| head -n 50 \
| xargs -I {} sqoop import \
    --connect "$JDBC_URL;databaseName=$DBNAME;username=$USERNAME;password=$PASSWORD" \
    --table "{}"  --target-dir "$DATA_COLLECTOR/{}"
...