200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【sqoop】导入数据到orc格式hive指定分区表中

【sqoop】导入数据到orc格式hive指定分区表中

时间:2019-03-10 12:54:40

相关推荐

【sqoop】导入数据到orc格式hive指定分区表中

以下文章是mysql表导入到hiveORC存储格式的分区表中

mysql表导入到hiveTEXTfile存储格式的分区表 请点此跳转

Sqoop需要依赖HCatalog的lib,所以需要配置环境变量$HCAT_HOME,一般从hive目录下即可找到hcatalog的相关路径

hive/lib中将hive-hcatalog-core-1.2.2.jar复制到sqoop/lib下cp $HIVE_HOME/lib/hive-shims* $SQOOP_HOME/lib/在/etc/profile文件中添加

export HCATALOG_HOME=${HIVE_HOME}/hcatalog

下面的脚本中需要赋值的变量

${IP} mysql所在的服务器IP

${USERNAME} mysql用户名

${PWD} mysql密码

$MYSQLTABLE mysql表

${date_field} 表中的时间字段

${partition_name} hive中需要加入的分区字段名

${partition_value} hive分区值

1、sqoop创建并导入数据到hive orc表

sqoop import \--connect jdbc:mysql://$IP:3306/$MYSQLDB \--username $USERNAME \--password $PWD \--table $MYSQLTABLE \--driver com.mysql.jdbc.Driver \--hcatalog-database intelligentCoal \--create-hcatalog-table \--hcatalog-table t_user_orc \--where "date_format(${date_field},'%Y-%m-%d')='${partition_value}' and \$CONDITIONS" \--hcatalog-partition-keys ${partition_name} \--hcatalog-partition-values ${partition_value} \--hcatalog-storage-stanza 'stored as orc tblproperties ("press"="SNAPPY")' \-m 1

where选项根据需求自行添加或者不加,不加where的效果和 --where "1=1 and \$CONDITIONS" \ 一样

2、sqoop导入数据到已存在的hive orc表

sqoop import \--connect jdbc:mysql://$IP:3306/$MYSQLDB \--username $USERNAME \--password $PWD \--table $MYSQLTABLE \--driver com.mysql.jdbc.Driver \--hcatalog-database intelligentCoal \--hcatalog-table t_user_orc \--where "date_format(${date_field},'%Y-%m-%d')='${partition_value}' and \$CONDITIONS" \--hcatalog-partition-keys ${partition_name} \--hcatalog-partition-values ${partition_value} \--hcatalog-storage-stanza 'stored as orc tblproperties ("press"="SNAPPY")' \-m 1

若不指定字段类型,MySQL中的varchar数据抽取至hive中也会是varchar类型,但是varchar类型在hive中操作会出现各种问题

1.抽取时长文本、含有特殊字符的文本抽取不全

2.hive操作orc表varchar类型的字段造成乱码

解决:抽取数据时指定字段类型(xxx是你要改成String类型的column)

-map-column-hive xxx=String,xxxx=String

-------------------------------------------------------------------------------------------------------------------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。