• [Sqoop]将Hive数据表导出到Mysql


    业务背景

    mysql表YHD_CATEG_PRIOR的结构例如以下:

    -- Table "YHD_CATEG_PRIOR" DDL
    
    CREATE TABLE `YHD_CATEG_PRIOR` (
      `category_id`                     int(11) NOT NULL COMMENT '类目ID',
      `category_name`                   varchar(250) DEFAULT NULL COMMENT '类目名称',
      `category_level`                  int(11) DEFAULT '0' COMMENT '类目级别',
      `default_import_categ_prior`      int(11) DEFAULT '0' COMMENT '默认引入优先级',
      `user_import_categ_prior`         int(11) DEFAULT NULL COMMENT '用户引入优先级',
      `default_eliminate_categ_prior`   int(11) DEFAULT NULL COMMENT '默认淘汰优先级',
      `user_eliminate_categ_prior`      int(11) DEFAULT NULL COMMENT '用户淘汰优先级',
      `UPDATE_TIME`                     timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '数据刷新时间',
      PRIMARY KEY (`category_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=61125 DEFAULT CHARSET=utf8;

    hive表pms.yhd_categ_prior的表结构例如以下:

    -- col_name                     data_type 
    category_id                     bigint
    category_name                   string
    category_level                  int      
    default_import_categ_prior      int
    user_import_categ_prior         int
    default_eliminate_categ_prior   int
    user_eliminate_categ_prior      int
    update_time                     string

    hive表的字段之间以01分隔。行以 分隔。空字段以N填充

    如今须要将hive表pms.yhd_categ_prior导出到mysql表YHD_CATEG_PRIOR中。

    业务实现

    脚本例如以下:

    ####################################
    #
    # 将Hive表同步到Mysql
    #
    ####################################
    rm -rf ./YHD_CATEG_PRIOR.java
    
    sqoop-export 
    -Dmapred.job.queue.name=pms 
    --connect jdbc:mysql://127.0.0.1:3306/market 
    --username admin 
    --password 123456 
    --table YHD_CATEG_PRIOR 
    --export-dir /user/hive/pms/yhd_categ_prior 
    --columns category_id,category_name,category_level,default_import_categ_prior,user_import_categ_prior,default_eliminate_categ_prior,user_eliminate_categ_prior 
    --update-mode allowinsert 
    --update-key category_id 
    --fields-terminated-by '01' 
    --lines-terminated-by '
    ' 
    --input-null-string '\N' 
    --input-null-non-string '\N'

    上述脚本解析例如以下:

    • 将hive表pms.yhd_categ_prior导出到mysql的YHD_CATEG_PRIOR表中
    • hive表导出的字段为:
    category_id,
    category_name,
    category_level,
    default_import_categ_prior,
    user_import_categ_prior,
    default_eliminate_categ_prior,
    user_eliminate_categ_prior
  • 相关阅读:
    js阶段循环(for,while,do-while,for-in),判断(if,switch),练习题
    翻牌器
    用 VSCode 调试网页的 JS 代码
    图形化设置数据库规则
    js中ES6数据结构Map 、Set 、WeakMap 、 WeakSet
    css的filter方法,给图片添加滤镜
    使用<a-select>时,placeholder不起作用,提示语不显示
    Vue数据更新但页面没有更新的多种情况
    react事件处理-函数绑定
    在css中使用js定义的变量
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5409361.html
Copyright © 2020-2023  润新知