example 案例

import

常用

  1. sqoop import
  2. --connect "jdbc:mysql://${mysql_host}:3306/${mysql_database}?useUnicode=true&tinyInt1isBit=false&characterEncoding=utf-8" \
  3. --username '${mysql_user}' \
  4. --password '${mysql_password}' \
  5. --table '${mysql_table}' \
  6. --hive-table '${hive_database}.${hive_table}' \
  7. --hive-import \
  8. --hive-delims-replacement '%n&' \
  9. --fields-terminated-by '\001' \
  10. --lines-terminated-by '\n' \
  11. --input-null-string '\\N' \
  12. --input-null-non-string '\\N' \
  13. --null-string '\\N' \
  14. --null-non-string '\\N' \
  15. --outdir /home/dwadmin/test/jason/uba/scripts/shell/tool/../.tmp \
  16. --target-dir /umr-jdlg4d/temp/sqoop-target/agent_team \
  17. --delete-target-dir \
  18. --num-mappers 1;

1、按照最大 id 之后的数据抽取

  1. sqoop import \
  2. --connect "jdbc:mysql://192.168.160.54:3306/angejia?useUnicode=true&tinyInt1isBit=false&characterEncoding=utf-8" \
  3. --username angejia \
  4. --password angejia123 \
  5. \
  6. #导入执行参数
  7. --target-dir /user/temp/sqoop-target/user_msg \
  8. --num-mappers 4 \
  9. --table user_msg \
  10. --hive-table jason_test.user_msg \
  11. --hive-import \
  12. --hive-delims-replacement '%n&' \
  13. \
  14. #列行分隔符
  15. --fields-terminated-by '\t' \
  16. --lines-terminated-by '\n' \
  17. \
  18. --input-null-string '\\N' \
  19. --input-null-non-string '\\N' \
  20. --null-string '\\N'
  21. --null-non-string '\\N'
  22. --outdir /home/hadoop/test/jason/uba/scripts/shell/tool/../.tmp \
  23. \
  24. #抽取主键
  25. --check-column 'msg_id' \
  26. --incremental 'append' \
  27. --last-value '10' \
  28. \
  29. #分区字段
  30. --hive-partition-key 'p_dt' \
  31. --hive-partition-value '2015-07-16'

2、按照 id 范围抽取

  1. 把查询结果写入到 mysql 中,格式如下
  2. table_name | primary_id | min_num | max_num | p_dt
  3. 每次导入前,查询上一天的 max_num 数量,作为当天 min_num 的值,查询当天 max_num 写入到数据库
  4. 当天 拼接 min_num max_num 作为查询条件,去 mysql 查询这个边界的数据,写入到 hive
  5. sqoop import \
  6. --connect "jdbc:mysql://192.168.160.54:3306/angejia?useUnicode=true&tinyInt1isBit=false&characterEncoding=utf-8" \
  7. --username angejia \
  8. --password angejia123 \
  9. \
  10. --target-dir /user/temp/sqoop-target/user_msg \
  11. --delete-target-dir \
  12. --num-mappers 1 \
  13. --table user_msg \
  14. --hive-table jason_test.user_msg \
  15. --hive-import \
  16. --hive-delims-replacement '%n&' \
  17. --split-by 'msg_id' \
  18. #获取最小最大 ID
  19. --boundary-query "select 11, 30" \
  20. \
  21. --fields-terminated-by '\001' \
  22. --lines-terminated-by '\n' \
  23. \
  24. --input-null-string '\\N' \
  25. --input-null-non-string '\\N' \
  26. --null-string '\\N'
  27. --null-non-string '\\N'
  28. --outdir /home/hadoop/test/jason/uba/scripts/shell/tool/../.tmp \
  29. \
  30. --hive-partition-key 'p_dt' \
  31. --hive-partition-value '2015-07-17'