数据仓库 数据可视化 Hive导出到MySql
Posted IT备忘录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库 数据可视化 Hive导出到MySql相关的知识,希望对你有一定的参考价值。
大数据开发的最后一环,将数仓中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 " " --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的主要内容,如果未能解决你的问题,请参考以下文章