sqoop导入数据脚本

sqoop export \
        -D mapred.job.queue.name=hive_user \
        --connect jdbc:mysql://${host}:${port}/${db} \
        --username ${username} \
        --password ${password} \
        --table ${table_name} \
        --export-dir ${hdfsdir}/dt=${dt}  \
        --update-key STUDENT_ID \
        --columns STUDENT_ID,STUDENT_NAME,ADDRESS,CREATE_DATETIME,UPDATE_DATETIME    \
        --update-mode allowinsert \
        -m 1 \
        --verbose \
        --fields-terminated-by '\t'

以上脚本实现了从Hive中往MySQL对于一张学生信息表的更新。

  1. 由于MySQL表里有自增列ID,而Hive中没有,所以需要在输入参数columns指定所有的列。
  2. 由于MySQL表里有唯一键,所以在输入参数update-key指定更新键名称STUDENT_ID
  3. Hive和MySQL列名类型和名称应当一致或者符合对应关系,比如Hive的timestamp对应datetime。
  4. 更新模式使用--update-mode allowinsert。默认为onlyupdate

猜你喜欢

转载自aeolus1983.iteye.com/blog/2431597