---
title: "Sqoop 笔记"
date: 2019-10-30T11:35:48+08:00
lastmod: 2019-10-30T11:35:48+08:00
tags: ["sqoop", "hive", "mysql"]
categories: ["hadoop"]
---

## 把 mysql 表数据导入 hive 中
- 命令格式
    ```bash
    sqoop import {参数列表}
    ```
- 默认在 hive 中创建指定表，如果该表已存在，则把 mysql 表数据追加到该表中，常规参数如下
    ```bash
    --connect jdbc:mysql://_mysql_server_:3306/_mysql_dbname_
    --username _mysql_user_
    --password _mysql_password_
    --table _mysql_tablename_
    --hive-import
    --hive-database _hive_dbname_
    --hive-table _hive_tablename_
    --hive-drop-import-delims
    -m 1
    ```
- 如果该表已存在，则报错退出，参数如下
    ```bash
    --create-hive-table
    ```
- 如果该表已存在，则覆盖重新导入，参数如下
    ```bash
    --hive-overwrite
    ```
- 导入增量数据，参数如下
    ```bash
    --incremental append
    --check-column _mysql_tablecolumn_
    --last-value _last_value_
    ```

## 把 hive 表数据导入 mysql 中
- 命令格式
    ```bash
    sqoop export {参数列表}
    ```
- mysql 中需提前创建好待导入的表，常规参数如下
    ```bash
    --connect jdbc:mysql://_mysql_server_:3306/_mysql_dbname_
    --username _mysql_username_
    --password _mysql_password_
    --table _mysql_tablename_
    --hcatalog-database _hive_dbname_
    --hcatalog-table _hive_tablename_
    ```
- 只导出 hive 表中的部分的指定(部分)字段，参数如下
    ```bash
    --columns "_column_name1_,_column_name2_,_column_name3_"
    ```

