美文网首页
odps 表数据同步到hive仓库

odps 表数据同步到hive仓库

作者: 起个什么呢称呢 | 来源:发表于2017-12-21 19:32 被阅读43次

1.复制建表语句。做适当修改,把字段类型换成hive支持的类型。启动hive,粘贴建表

分区表例子

CREATETABLEdw_ft_barrage_record (pstring'from os: 1,2,5,9',roomidstring'房间号',uidstring'用户id',categoryidstring'类目id',sendtime DATETIME'发言时间',isarmyint'是否水军',isrealint'是否真实用户')'弹幕事实表(基于mongo_barrage)'PARTITIONEDBY(ptstring'按日期的分区列');PARTITIONED BY (pt string)row format delimited FIELDS TERMINATED BY ','STORED AS TEXTFILE;

注意:

rowformatdelimited FIELDS TERMINATED BY','这是列分隔符,必须和hdfs-write插件一致。方可插入数据

2.创建一个文件

vim odpsToKylintoday=$(date +%Y%m%d)hive<

以上是为以后分区表目录做的准备。历史分区可以参照一下代码

vim history.shaltertabledw_ft_barrage_recordaddpartition(pt='starttime');altertabledw_ft_barrage_recordaddpartition(pt="xxx");altertabledw_ft_barrage_recordaddpartition(pt="xxx");altertabledw_ft_barrage_recordaddpartition(pt="xxx");altertabledw_ft_barrage_recordaddpartition(pt="xxx");altertabledw_ft_barrage_recordaddpartition(pt="now");

3.切换到root用户下,对2个文件授权。设置调度任务

chmod 777 fileName对odpsToKylin 设置定时调度任务为当前用户创建cron服务1.  键入 crontab  -e 编辑crontab服务文件2.输入以下内容0  0  * * * * /bin/sh /home/qmbd/odpsToKylin.sh3.启动服务一般启动服务用  /sbin/servicecrond start 若是根用户的cron服务可以用 sudoservicecrond start, 4. 查看该用户下的crontab服务是否创建成功 crontab  -l

5.编辑Hdfs-write插件 如下

{"configuration": {"reader": {"plugin":"odps","parameter": {"partition":"pt=${bdp.system.bizdate}","datasource":"odps_first","column": ["*"],"table":"dw_ft_barrage_record"}    },"writer": {"plugin":"hdfs","parameter": {"path":"/user/hive/warehouse/dw.db/dw_ft_barrage_record/pt=${bdp.system.bizdate}","fileName":"dw_ft_barrage_record","compress":"GZIP","column": [          {"name":"p","type":"string"},          {"name":"roomid","type":"string"},          {"name":"uid","type":"string"},          {"name":"categoryid","type":"string"},          {"name":"sendtime","type":"timestamp"},          {"name":"isarmy","type":"bigint"},          {"name":"isreal","type":"bigint"}        ],"defaultFS":"hdfs://10.7.20.15:8020","writeMode":"append","fieldDelimiter":",","encoding":"UTF-8","fileType":"text"}    },"setting": {"errorLimit": {"record":"0"},"speed": {"concurrent":"10","mbps":"20"}    }  },"type":"job","version":"1.0"}

6.提交任务到阿里云进行每天调度即可

说明: 以上是同步分区表的demo.非分区在上面的基础上只需要满足以下条件

1.建好表保证字段类型正确

2.指定的分割符和hdfs-write分隔符一致

3.删除hdfs-write中的pt=${bdp.system.bizdate}

4.hdfs-write中的列要和建表列一致类型匹配。

总结:

1.建表要仔细。2.配置插件要仔细3.调度任务要早于同步任务4.建调度任务命令一定要顶格5.在hive支持字段的类型基础上要调整hdfs-write插件中的字段类型

相关文章

  • odps 表数据同步到hive仓库

    1.复制建表语句。做适当修改,把字段类型换成hive支持的类型。启动hive,粘贴建表 分区表例子 CREATET...

  • sqoop创建hive表结构以及同步数据

    1.sqoop创建hive表结构以及同步数据 命令 创建hive 表结构 通过sqoop 导数据

  • HIVE

    基础命令 基本DDL 内部表与外部表的区别 Hive 创建内部表时,会将数据移动到数据仓库指向的路径; Hive ...

  • Hive使用必知必会系列

    一、Hive的几种数据模型 内部表 (Table 将数据保存到Hive 自己的数据仓库目录中:/usr/hive/...

  • Hive入门详解:包括数据模型,数据类型、常用函数等

    一、Hive的几种数据模型 内部表 (Table 将数据保存到Hive 自己的数据仓库目录中:/usr/hive/...

  • Hive详解

    Hive使用必知必会系列 一、Hive的几种数据模型 内部表 (Table 将数据保存到Hive 自己的数据仓库目...

  • ODPS中令人困惑的"\N"

    在使用ODPS上的表时,很可能这个表中的数据是采用某些同步工具从其他的数据源中同步而来的,而当你想过滤某个字段...

  • spark数据导入踩坑记

    最近公司有不少关于数据同步的业务需求,比如需要将mysql表同步到hive中或者同步为parquet等格式存放在H...

  • 电商项目(Hive实现)

    外部表的使用 基于ETL的数据加载到数据仓库 使用Hive进行统计分析*对比 MR 和 Hive 查看表: MAN...

  • 数据仓库-Hive基础(九) UDF作业实录

    分享一个今天做的题: 题目: 有原始json数据如下: 需要将数据导入到hive数据仓库中,我不管你中间用几个表,...

网友评论

      本文标题:odps 表数据同步到hive仓库

      本文链接:https://www.haomeiwen.com/subject/njfzwxtx.html