Граничный запрос нуждается в незначительной модификации.По умолчанию Sqoop
будет использовать следующий запрос, чтобы найти границы для создания разбиений:
SELECT MIN(department_id), MAX(department_id) FROM departments
Чтобы импортировать подмножество данных, вы можете использовать этот запрос границы, чтобынижняя и верхняя границы:
SELECT 3,6 FROM departments
На следующем рисунке приведена более подробная информация:
1) Создание таблицы и заполнение данными
mysql> create database retail_db;
mysql> use retail_db;
mysql> create table departments (department_id int primary key, department_name varchar(255));
mysql> insert into departments values(2, 'Fitness');
mysql> insert into departments values(3, 'Footwear');
mysql> insert into departments values(4, 'Apparel');
mysql> insert into departments values(5, 'Golf');
mysql> insert into departments values(6, 'Outdoors');
mysql> insert into departments values(7, 'Fan Shop');
2) Проверить данные
mysql> select * from departments;
+---------------+-----------------+
| department_id | department_name |
+---------------+-----------------+
| 2 | Fitness |
| 3 | Footwear |
| 4 | Apparel |
| 5 | Golf |
| 6 | Outdoors |
| 7 | Fan Shop |
+---------------+-----------------+
6 rows in set (0.00 sec)
3) Выполнить задание Sqoop
$ sqoop import --connect jdbc:mysql://localhost:3306/retail_db --username user --password password --table departments --target-dir /test/run --boundary-query 'SELECT 3,6 FROM departments'
4) Результат проверки
$ hadoop fs -cat /test/run/part-*
3,Footwear
4,Apparel
5,Golf
6,Outdoors