第1关:Sqoop数据导入语法学习
时间: 2025-02-09 09:15:33 浏览: 63
Sqoop是一种用于在关系型数据库和Hadoop之间高效传输大量数据的工具。Sqoop的主要功能之一是将数据从关系型数据库导入到Hadoop分布式文件系统(HDFS)中。以下是Sqoop数据导入的基本语法和示例:
### 基本语法
```bash
sqoop import \
--connect <jdbc-url> \
--username <username> \
--password <password> \
--table <table-name> \
--target-dir <hdfs-directory> \
--num-mappers <number-of-mappers>
```
### 参数说明
- `--connect`:指定数据库的JDBC URL。
- `--username`:数据库用户名。
- `--password`:数据库密码。
- `--table`:要导入的表名。
- `--target-dir`:HDFS中存储数据的目录。
- `--num-mappers`:使用的Map任务数。
### 示例
假设我们要将MySQL数据库中的`employees`表导入到HDFS的`/user/hadoop/imported_data`目录中,可以使用以下命令:
```bash
sqoop import \
--connect jdbc:mysql://localhost:3306/company \
--username root \
--password password123 \
--num-mappers 4
```
### 其他常用参数
- `--columns`:指定要导入的列。
- `--where`:指定导入数据的条件。
- `--query`:使用自定义SQL查询导入数据。
- `--incremental`:启用增量导入。
- `--check-column`:指定用于增量导入的列。
- `--last-value`:指定上次导入的最后一个值。
### 示例:使用条件导入
假设我们要只导入`employees`表中`salary`大于5000的员工数据,可以使用以下命令:
```bash
sqoop import \
--connect jdbc:mysql://localhost:3306/company \
--username root \
--password password123 \
--table employees \
--target-dir /user/hadoop/imported_data \
--num-mappers 4 \
--where "salary > 5000"
```
### 示例:使用增量导入
假设我们要增量导入`employees`表中`id`大于上次导入的最大值的记录,可以使用以下命令:
```bash
sqoop import \
--connect jdbc:mysql://localhost:3306/company \
--username root \
--password password123 \
--table employees \
--target-dir /user/hadoop/imported_data \
--num-mappers 4 \
--incremental append \
--check-column id \
--last-value 1000
```
阅读全文
相关推荐



















