码迷,mamicode.com
首页 > 数据库 > 详细

数据仓库 数据可视化 Hive导出到MySql

时间:2020-07-02 23:16:56      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:strong   多个   nec   inpu   table   module   bash   数据仓库   class   

大数据开发的最后一环,将数仓中ADS层的数据,导出到MySql,剩下就是Java工程师的事了。

1 在MySql中创建对应的ADS表,字段和类型与数仓中的表一致,略。

2 数据导出脚本。

①--update-mode

  updateonly:只更新,无法插入新数据。

  allowinsert:允许新增 

②--update-key:允许更新的情况下,指定哪些字段匹配视为同一条数据,进行更新而不增加。多个字段用逗号分隔。

③--input-null-string和--input-null-non-string,分别表示,将字符串列和非字符串列的空串和“null”转换成‘\\N‘。Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。

#!/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

 

数据仓库 数据可视化 Hive导出到MySql

标签:strong   多个   nec   inpu   table   module   bash   数据仓库   class   

原文地址:https://www.cnblogs.com/noyouth/p/13227757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!