2016-04-07 3 views
0

Все поисковые запросы, которые я нашел, показывают, как импортировать одну таблицу или рекомендовать импортировать все таблицы. Что, если я хочу 35 из 440 таблиц из моего db. Могу ли я просто написать одну команду и разделить таблицы по запятой или мне нужно поместить ее в скрипт, скопировать и проделать команды снова и снова и каждый раз менять имя таблицы?Sqoop импортирует несколько таблиц, но не все

Что я хочу сделать:

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 
+1

Это поможет вам: http://stackoverflow.com/questions/34966626/how-to-import-the-data-from-multiple-source-thru-sqoop/34985029#34985029 –

+0

@vinayak Это именно то, что Я искал! –

+0

Хорошо. Надеюсь, он решил проблему. Пожалуйста, подтвердите свой ответ. –

ответ

1

Видимо разработчик sqoop думал, как и вы. :)

Вы можете использовать импорт-все-таблицы.
А затем добавить --exclude-tables Список исключенных из таблицы разделов, исключаемых из процесса импорта.

https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1766722

+0

Вы также можете использовать -m 1. Угадывание таблицы не имеет PK. – hrobertv

+0

Единственная проблема, с которой я вижу и использую импорт-все-таблицы, заключается в том, что вы не можете указать схему. Он хочет использовать все схемы и их таблицы. По крайней мере, я не знаю способа указать схему. Поэтому я оставил делать то, чего вы изначально пытаетесь избежать. Я должен их перечислить. – hrobertv

+0

также с ответом, который вы предоставили, это все еще будет трудоемким, поскольку я должен указать 405 таблиц, которые я хочу исключить ... Было бы неплохо иметь такой вариант, как -include-tables, а затем перечислять таблицы вы хотите включить ... –

0

Вы также можете использовать применить ту же команду для улья импорта, как:

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 

Помните, в улье вам нужно постановка области.

Смежные вопросы