Я использую Sqoop для импорта таблиц MySQL в HDFS. Для этого я использую импорт запросов свободной формы.Установить постоянный граничный запрос
--query "SELECT $query_select FROM $table where \$CONDITIONS"
Этот запрос довольно медленный из-за минимального (id) и максимального (id) поиска. Чтобы улучшить производительность, я решил использовать --граничный запрос и указать вручную нижнюю и верхнюю границу. (https://www.safaribooksonline.com/library/view/apache-sqoop-cookbook/9781449364618/ch04.html):
--boundary-query "select 176862848, 172862848"
Однако sqoop не заботится о заданном значении и снова пытается найти минимальный и максимальное значение «идентификатор» самого по себе.
16/06/13 14:24:44 INFO tool.ImportTool: Lower bound value: 170581647
16/06/13 14:24:44 INFO tool.ImportTool: Upper bound value: 172909234
Полная команда sqoop:
sqoop-import -fs hdfs://xxxxxxxxx/ -D mapreduce.map.java.opts=" -Duser.timezone=Europe/Paris" -m $nodes_number\
--connect jdbc:mysql://$server:$port/$database --username $username --password $password\
--target-dir $destination_dir --boundary-query "select 176862848, 172862848"\
--incremental append --check-column $id_column_name --last-value $last_value\
--split-by $id_column_name --query "SELECT $query_select FROM $table where \$CONDITIONS"\
--fields-terminated-by , --escaped-by \\ --enclosed-by '\"'
Кто-нибудь уже встречался/решить эту проблему? Благодаря
Не отвечайте на свой вопрос как на редактирование, но ставьте его как ответ. Тогда вы можете принять это. – Rob