zoukankan      html  css  js  c++  java
  • 数据仓库 数据可视化 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
  • 相关阅读:
    Serverless Kubernetes入门:对kubernetes做减法
    Quick BI的宝藏工具——交叉表
    Quick BI的SQL传参建模可以用在什么场景
    Quick BI支持哪些数据源(配置操作篇)
    注册 asp.net IIS
    js Date 生成某年某月的天数
    IOC AOP 设计模式
    stuff for xml path
    使用Sencha Cmd创建脚本框架
    Extjs Ext.TreePanel
  • 原文地址:https://www.cnblogs.com/noyouth/p/13227757.html
Copyright © 2011-2022 走看看