hive是一个数据仓库基础架构_数据仓库ods层和dw层的区别
一个 区别 hive 数据仓库 DW 基础架构 ods
2023-06-13 09:14:58 时间
大家好,又见面了,我是你们的朋友全栈君。
- 软件环境
Hadoop 2.6.0-cdh5.9.0 Hive 1.1.0-cdh5.9.0 Zookeeper 3.4.5-cdh5.9.0
- 需求背景
数据
来源是将8台服务器日志各自压缩成*.gz(8个gz文件)后,按天和小时分区传入到HDFS上,然后通过创建Hive ODS外部表加载到表对应分区,这样一天下来会生产192个gz文件,gz文件是不能进行切分所以查询一天则会产生192个Map数,导致后结数据处理性能与资源占用都比较大。需要进行优化>如下几点:
- 存储后数据可切分
- 数据存储压缩率高
- 数据加载速度要快
- 技术方案
- 通过创建TTexfFile存储格式ODS临时表外部表,将HDFS上的文件目录映射到外部表
create table temp.TempTableName(
col1 string comment 'col1'
,col2 string comment 'col2'
) partitioned by (p_dt string, p_hours string)
row format serde 'org.openx.data.jsonserde.JsonSerDe'
with serdeproperties ("ignore.malformed.json"="true")
stored as textfile
;
Alter table temp.TempTableName add partition (p_dt='20141101',p_hours='00') location '/ods/TempTableName/20141101/00';
- 在ODS层创建ORC存储格式相应的表,将临时外部表数据插入到ODS表
create table ods.TableName(
col1 string comment 'col1'
,col2 string comment 'col2'
) partitioned by (p_dt string, p_hours string)
stored as orc
;
insert overwrite table TableName partition(p_dt='20141101',p_hours='00')
select * from TempTableName where p_dt='20141101' and p_hours='00'
- 数据导入完闭,后续基本ODS进行操作即可
ss
- 方案优点
- 数据可分割
- 数据压缩率90%左右
- 方案缺点
- 性能比以前慢(如是ODS只操作一次建议不采用此方案)
- 维护成本提高
- 文章参考 https://cwiki.apache.org/confluence/display/Hive/CompressedStorage
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188948.html原文链接:https://javaforall.cn
相关文章
- 关于 WebSocket 和 HTTP 区别的思考以及一个最简单的 WebSocket 的客户端和服务器实现
- 在java的方法中定义一个常量_c语言中常量和常量表达式的区别
- 【WPF】Toolkit(一个项目)的要点总结
- 我想监控微信的一个文件夹,能不能自动每天把一些重复文件给删除掉,留几个最新的就可以?
- 拆解一个居家隔离监测的无线门磁
- “喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?
- 2023-03-11:给定一个N*M的二维矩阵,只由字符‘O‘、‘X‘、‘S‘、‘E‘组成, ‘O‘表示这个地方是可通行的平地, ‘X‘表示这个地方是不可通行的
- 你和 Linux 高手只差了一个 LFS
- Oracle新建表:快速操作指南(oracle新建一个表)
- ddgr:一个从终端搜索 DuckDuckGo 的命令行工具
- Redis 和 Memcached 的区别大吗?只选一个做缓存我们该选哪个?
- 企业开源指南:创建一个开源项目
- 将一个集合存入Redis中(往redis写入一个集合)
- 攒出一个AIoT帝国
- 推荐一个小巧的JS日历
- 计算一个字符串在另一字符串中出现的次数函数
- 在CoreOS上搭建一个WordPress程序操作实例