数据仓库之-历史数据存储方案
现状:隔一段时间去数据中心获取一次数据,每次获取数据时只有极少部分数据会发生变更,但是系统需要溯源数据变更的情况。
方案:
现状表+历史表结合的方式:
现状表:即数据的当前、最新状态的表;基本上可以认为是目前的数据不变;
历史表:即保存数据的历史变更记录,通过这个记录可以还原出数据的所有变更情况;
根据业务情况,可以查询现状表或者历史表。
技术实现:
将全量数据存储在Hbase中,现状数据另存一份到Hive中。
查询历史数据有两种方案,一种是 Hbase 表通过外表的方式映射成对应的Hive表,应用层通过类sql的方式查询对应的Hbase库。另一种搭建 Phoenix 环境,应用层通过类sql方式访问Phoenix 关联的Hbase数据库。目前笔者采用的是第一种方式。主要原因是目前该数据仓库对外提供数据是以Hive Jdbc方式,缺点是效率不高。
历史拉链表原理简述:
样例数据如下:
存储成历史拉链表的方式如下:
1、结束时间为9999-12-31为当前有效数据
2、查询2017-6-2时机构情况: select * from tableName where start_date <= ‘2017-6-2’ and end_date >= ‘2017-6-2’
由上述样例可以发现当数据更新时只有发生变更的数据会被保存,也就是说该方式数据的冗余量比较小。
具体样例如下:
表说明:
t_hbase_person_his10 源数据存储在Hbase,t_hbase_person_his10 为源数据映射成的Hive表,数据量1000万;
如下当前的数据(通过Hive查询):
sql : SELECT ID,NAME, SALARY, MOBILE, START_DATE, END_DATE FROM t_hbase_person_his10 where end_date = ‘9999-12-31’ LIMIT 30;
查询 ‘2017-09-18’ 的数据(通过Hive查询):
SELECT ID,NAME, SALARY, MOBILE, START_DATE, END_DATE FROM t_hbase_person_his10 where start_date <= ‘2017-09-18’ and end_date >= ‘2017-09-18’ LIMIT 30;
数据仓库之-历史数据存储方案相关推荐
- 日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比
盖娅广告匹配系统(GaeaAD)用于支撑盖娅互娱全平台实时广告投放系统,需要将广告数据和游戏 SDK 上报的信息进行近实时匹配,本质上来说需要实时的根据各个渠道的广告投放与相应渠道带来的游戏玩家数据进 ...
- 谷歌卫星影像存储方案
Bigemap GIS大数据 数据处理与开发应用一站式解决方案 技术服务:数据中心 + 桌面端 + 移动端(APP) + WEB端 关 键 词:地图 导航 定位 编辑 开发 分析 智慧 ...
- 服务端指南 数据存储篇 | 选择合适的数据存储方案
在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 E ...
- 基于BCOS的历史数据查询方案
基于BCOS的历史数据查询方案 目标 完成类fabric里gethistoryfromkey的功能,即可以根据key查询key对应数据的表更记录. 方案探究 智能合约新增逻辑 在智能合约里编写逻辑: ...
- 选择合适的数据存储方案
在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 E ...
- 美多商城之购物车(购物车存储方案)
一.购物车存储方案 用户登录与未登录状态下,都可以保存购物车数据. 用户对购物车数据的操作包括:增.删.改.查.全选等等 每个用户的购物车数据都要做唯一性的标识. 1.1. 登录用户购物车存储方案 1 ...
- DAS、NAS、SAN、iSCSI 存储方案概述
目前服务器所使用的专业存储方案有DAS.NAS.SAN.iSCSI几种.存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储: (1)封闭系统主要指大型机. (2)开放系统指基于包括Window ...
- MySQL数据库Raid存储方案
作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了.但是很多DBA却容易忽略了这一点,我就是其中一个.之前对raid了解的并不多,本文就记录下学习的raid相关知识. 一.RAID的基 ...
- 从spring-session存储结构探讨session存储方案的演变
我们知道Spring Session 主要解决了分布式场景下 Session 的共享问题,本文将从 Spring Session 的源码出发,来讨论一些 Session 设计的细节. 一.Spring ...
- HTML5数据库建模,HTML5的五种客户端离线存储方案
最近折腾HTML5游戏需要离线存储功能,便把目前可用的几种HTML5存储方式研究了下,基于HT for Web写了个综合的实例,分别利用了Cookie.WebStorage.IndexedDB以及Fi ...
最新文章
- iMeta:已被谷歌学术(Google Scholar)收录
- 小程序上传图片到七牛云(支持多张上传,预览,删除)
- 计算日期时间间隔,可计算情侣计算在一起的。精确到,天,时,分,秒(输入的日期距离现在有:819天19670小时1180221分钟70813262秒)
- Jeewx 捷微管家操作配置文档(开源版本)
- 新手学跨域之iframe
- Angular 父子组件之间的通讯,自定义组件实现星星评分功能
- Security+ 学习笔记8 渗透测试和安全练习
- markdown html 注释,在 Markdown 注释
- c#Winform程序CPU占用高的原因和解决方法(转载)
- 使用matlab生成高斯滤波模板_matlab实现图像高斯滤波
- 基于色彩直方图匹配的颜色传递算法
- 利用代码实现山脊线、山谷线的提取(arcpy版)
- pad 锁定屏幕显示方向为竖屏正方向
- GlassFish主配置文件domain.xml介绍
- 一种求周期二元线性序列的极小多项式的方法
- 区块链知识系列 - App 与 DApp 的区别
- 淘云互动机器人_淘云互动app机器人
- CTF(信息安全夺旗赛)学习网址
- 一个基于pycuda的矩阵乘法实现,它使用CUDA核心来加速计算。
- QT 秒/毫秒 转 时分秒