MySQL 表导入到 HDFS
导入 loudacre 数据库中的 account 表到 HDFS
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --table accounts \
- --target-dir /loudacre/accounts \
- --null-non-string '\\N'
增量更新导入到 HDFS
--check-column <column name> 检查的增量更新的列
--last-value <largest_column_num> 检查的列中的上一个导入的值
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --incremental append \
- --null-non-string '\\N' \
- --table accounts \
- --target-dir /loudacre/accounts \
- --check-column acct_num \
- --last-value <largest_acct_num>
指定的字段分隔符导入到 HDFS
--fields-terminated-by <char> 表示要进行设置的字段分隔符, 默认是 ",", 这里我们可以用制表符 "\t"
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --table webpage \
- --target-dir /loudacre/webpage \
- --fields-terminated-by "\t"
特定条件的数据导入到 HDFS
可用 --where <where clause> 来指定要导入的条件
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --table accounts \
- --where "state ='CA'and acct_close_dt IS NULL" \
- --target-dir /loudacre/accounts-active \
- --null-non-string '\\N'
将 MySQL 数据导入到 Hive 中
使用 --hive-import 可将表导入到 Hive 中
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --fields-terminated-by '\t' \
- --table device \
- --hive-import
使用 avro 的格式导入到 HDFS
使用 --as-avrodatafile 可将导入数据格式化成 avro
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --table accounts \
- --target-dir /loudacre/accounts-avro \
- --null-non-string '\N' \
- --as-avrodatafile
使用 parquet 的格式导入到 HDFS
使用 --as-parquetfile 可将导入数据格式化成 parquet
- sqoop import \
- --connect jdbc:MySQL://localhost/loudacre \
- --username training --password training \
- --table accounts \
- --target-dir /loudacre/accounts-parquet \
- --null-non-string '\N' \
- --as-parquetfile
来源: https://www.qcloud.com/developer/article/1351086