Sqoop常见问题

本文汇总了Sqoop使用时的常见问题。

导入RDS数据至EMR时,时间字段显示提前8小时如何处理?

  • 问题描述:

    1. 例如,在云数据库RDS数据源中,数据表test_table中包含时间戳(TIMESTAMP)字段。image

    2. 您可以执行以下命令,导入test_table中的数据至HDFS。

      sqoop import \
      --connect jdbc:mysql://rm-2ze****341.mysql.rds.aliyuncs.com:3306/s***o_sqoop_db \
      --username s***o \
      --password ****** \
      --table test_table \
      --target-dir /user/hadoop/output \
      --delete-target-dir \
      --direct \
      --split-by id \
      --fields-terminated-by '|' \
      -m 1
    3. 查询导入结果。

      查询结果显示,HDFS中导入数据的时间字段显示提前8小时。image

  • 解决方法:在使用TIMESTAMP字段导入数据至HDFS时,请删除--direct参数。

    sqoop import \
    --connect jdbc:mysql://rm-2ze****341.mysql.rds.aliyuncs.com:3306/s***o_sqoop_db \
    --username s***o \
    --password ****** \
    --table test_table \
    --target-dir /user/hadoop/output \
    --delete-target-dir \
    --split-by id \
    --fields-terminated-by '|' \
    -m 1

    查询结果显示正常。image