sqoop的几个注意参数

vim sqoop_export.sh
sqoop导出脚本:

#!/bin/bash

db_name=gmall

export_data() {

/opt/module/sqoop/bin/sqoop export \

--connect "jdbc:mysql://hadoop102:3306/${db_name}?useUnicode=true&characterEncoding=utf-8" \

--username root \

--password 000000 \

--table $1 \

--num-mappers 1 \

--export-dir /warehouse/$db_name/ads/$1 \

--input-fields-terminated-by "\t" \

--update-mode allowinsert \

--update-key "tm_id,category1_id,stat_mn,stat_date" \

--input-null-string '\\N' \

--input-null-non-string '\\N'

}

case $1 in

 "ads_uv_count")

 export_data "ads_uv_count"

;;

 "ads_user_action_convert_day")

 export_data "ads_user_action_convert_day"

;;

 "ads_gmv_sum_day")

 export_data "ads_gmv_sum_day"

;;

 "all")

 export_data "ads_uv_count"

 export_data "ads_user_action_convert_day"

 export_data "ads_gmv_sum_day"

;;

esac

  • --update-key 修改 不指定这个参数就是插入

如:
--update-key "tm_id,category1_id,stat_mn,stat_date" \就是根据tm_id,category1_id,stat_mn,stat_date来判断是否执行更新操作

  • --update-mode allowinsert
    updateonly 只更新,无法插入新数据
    allowinsert 允许新增
    允许插入,如果不允许则只存在更新操作,不存在插入新数据。

  • --input-null-string '\N' \

  • --input-null-non-string '\N'

hive里面的空字段\N,到mysql里面变成null

--input-null-string '\N' 字符串类型的空数据转成null

--input-null-non-string '\N' 非字符串类型的空数据转成null

你可能感兴趣的:(sqoop的几个注意参数)