hive数据仓库建设

1、设计原生日志表

原生日志表用来存放上报的原始日志,数据经过清洗加工后会进入到各个日志表中。

1.1 创建数据库

#创建数据库
$hive>create database umeng_big11 ;

1.2 创建原生日志表

原生表使用分区表设计,分区字段为ym/d/hm,hive使用动态分区表,分区采用非严格模式,即所有分区都可以是动态分区。hive命令行终端打开显式表头设置:

#临时设置,只在当前回话有效
$hive>set hive.cli.print.header=true ;

永久配置hive-site.xml:

...
<property><name>hive.cli.print.header</name><value>true</value>
</property>
...

创建hive原生日志表raw_logs:

$hive>create table raw_logs
(servertimems  float ,servertimestr string , clientip      string ,clienttimems  bigint,status        int ,log           string
)
PARTITIONED BY (ym int, day int , hm int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '#'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

1.3 加载hdfs数据到hive原生表

$hive>use umeng_big11 ;
$hive>load data inpath '/user/centos/umeng/raw-logs/201805/24/1809' into table raw_logs partition(ym=201805 , day = 24 , hm = 1809) ;

2、自定义UDF函数完成数据清洗

2.1 介绍

将原生数据加载原生日志表后,将status码为200的记录查询出来进行清洗,将结果分别插入到5类日志子表中。供以后分析使用。

3、创建日志子表

3.1 准备sql语句

创建/home/centos/umeng/umeng_create_logs_ddl.sql文件,内容如下:

--使用指定库
use umeng_big11 ;--startuplogs
create table if not exists startuplogs
(appChannel    string ,appId         string ,appPlatform   string ,appVersion    string ,brand         string ,carrier       string ,country       string ,createdAtMs   bigint ,deviceId      string ,deviceStyle   string ,ipAddress     string ,network       string ,osType        string ,province      string ,screenSize    string ,tenantId      string
)
partitioned by (ym int ,day int , hm int)
stored as parquet ; --eventlogs
create table if not exists eventlogs
(appChannel        string ,appId             string ,appPlatform       string ,appVersion        string ,createdAtMs       bigint ,deviceId          string ,deviceStyle       string ,eventDurationSecs bigint ,eventId           string ,osType            string ,tenantId          string
)
partitioned by (ym int ,day int , hm int)
stored as parquet ; --errorlogs
create table if not exists errorlogs
(appChannel    string ,appId         string ,appPlatform   string ,appVersion    string ,createdAtMs   bigint ,deviceId      string ,deviceStyle   string ,errorBrief    string ,errorDetail   string ,osType        string ,tenantId      string
)
partitioned by (ym int ,day int , hm int)
stored as parquet ; --usagelogs
create table if not exists usgaelogs
(appChannel            string ,appId                 string ,appPlatform           string ,appVersion            string ,createdAtMs           bigint ,deviceId              string ,deviceStyle           string ,osType                string ,singleDownloadTraffic bigint ,singleUploadTraffic   bigint ,singleUseDurationSecs bigint ,tenantId              string
)
partitioned by (ym int ,day int , hm int)
stored as parquet ; --pagelogs
create table if not exists pagelogs
(appChannel            string ,appId                 string ,appPlatform           string ,appVersion            string ,createdAtMs           bigint ,deviceId              string ,deviceStyle           string ,nextPage              string ,osType                string ,pageId                string ,pageViewCntInSession  int ,stayDurationSecs      bigint ,tenantId              string ,visitIndex            int
)
partitioned by (ym int ,day int , hm int)
stored as parquet ; 

3.2 执行sql脚本

$hive>source /home/centos/umeng/umeng_create_logs_ddl.sql

转载于:https://www.cnblogs.com/xupccc/p/9545701.html

hive数据仓库建设相关推荐

  1. 6000字详解数据仓库建设

    01 前言 互联网行业,除了数据量大之外,业务时效性要求也很高,甚至很多是要求实时的.另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业 ...

  2. Workflow 在数据仓库建设中的应用与优化

    导读:随着 IT 时代步入到 DT 时代,从数据中挖掘价值已经变得越来越重要.数据仓库系统长期以来一直是企业 IT 架构的重要组成部分,并且逐步与大数据等技术相融合,已然成为建设数据文化的智慧型企业的 ...

  3. 7 Hive数据仓库

    Hive数据仓库 数据仓库简介 数据仓库的结构 数据仓库数据模型 Hive数据仓库工具简介 Hive系统架构 Hive工作原理 Hive数据类型 Hive安装模式 Hive的管理(访问)方式 Hive ...

  4. 数据仓库ods层是啥意思_一文读懂大数据仓库建设

    文章标签: 数据仓库ods层是啥意思 版权 从传统数仓到大数据平台,MPP数据集市,Hadoop集群,还有混合架构数仓,一直在不断演进,但是万变不离其宗,大框架和方法论终归是那一套.所以本文就来分享数 ...

  5. 大数据数据仓库建设流程概述

    数据仓库的逻辑分层架构: 想看懂数据仓库的逻辑分层架构,必须先弄懂以下4大概念. 数据源:数据来源,互联网公司的数据来源随着公司的规模扩张而呈递增趋势,同时自不同的业务源,比如埋点采集,客户上报,AP ...

  6. tp5.1 获取表里的所有数据_携程机票数据仓库建设之路

    一.前言 随着大数据技术的飞速发展,海量数据存储和计算的解决方案层出不穷,生产环境和大数据环境的交互日益密切.数据仓库作为海量数据落地和扭转的重要载体,承担着数据从生产环境到大数据环境.经由大数据环境 ...

  7. 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设

    应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设 导读:同程数科成立于 2015 年,是同程集团旗下的旅游产业金融服务平台.2020 年,同程数科基于 Apa ...

  8. 《数据仓库》一文读懂数据仓库建设

    数据仓库建设 一.数据仓库概念 1.数仓架构 ​ 我们在谈到数据仓库,都会提到数仓架构,那么数仓架构到底是什么呢?首先,架构就是把一个整体工作按需切分成不同部分的内容,由不同角色来完成这些分工,并通过 ...

  9. 大数据数据仓库建设方案

    大数据数据仓库建设方案 互联网行业,除了数据量大之外,业务时效性要求也很高,甚至很多是要求实时的,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸, ...

最新文章

  1. telegram 组(groups) 和 频道(channels) 简介
  2. 485有时候从机接收指令没反应_原创案例丨秒杀一辆12年爱唯欧启动无反应
  3. python turtle怎么用变量_Python Turtle绘图指定变量时出现问题
  4. 1.8 小飞的电梯调度算法
  5. 73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令
  6. LiveVideoStack成立5周年生日快乐!一路走来,感谢有你!
  7. C/C++编程笔记:数据结构二叉树的查找(前序、中序、后序、层序遍历)
  8. 最优化方法:拉格朗日乘数法(转)
  9. android 打开微信代码,微信跳转浏览器或提示手机端打开HTML代码
  10. php xml网站地图生成,PHP代码自动生成XML版网站地图
  11. Python实现离线字典+听写单词(二):字典数据写进sqlite
  12. 创意信件风格论文答辩PPT模板
  13. 大数据开发基础入门与项目实战(一)Java SE之4.方法和封装
  14. 什么是自签名证书?自签名SSL证书的优缺点?
  15. nginx 引号 x22
  16. RequestHead详解
  17. Windows鼠标右键->新建中添加内容
  18. 日语文章,每天一篇 第1章 青春 第1篇 まだまだ先(さき)があります
  19. zabbix详解之监控项自动发现(LLD)
  20. BZOJ3875-[Ahoi2014Jsoi2014]骑士游戏

热门文章

  1. 发布一个定制的webpart:R***eader
  2. html5 判断手机电脑,H5_0006:JS判断PC,平板,手机平台的方法
  3. Athentech Perfectly Clear中文版
  4. [EffectiveC++]item32:确定你的public继承模塑出is-a关系
  5. postgresql安装指南
  6. sell02 展现层编写
  7. 初识50个Linux命令
  8. js indexof用法indexOf()定义和用法
  9. 机房收费系统上机之逻辑思维
  10. 码农创业,6年80万我是这样一步一步实现的,创业朋友共勉[终结篇3年后我再来]...