大数据仓库-增量更新
2015-12-20 16:39
316 查看
现在是国内凌晨3点,为了抵挡睡意,还是写写技术博客。今天和大家讨论下大数据仓库中的更新技术。
当前很多大数据技术,如HDFS最早设定的是数据不更新,只增量叠加。传统数据仓库(Greenplum,treadata,oracle RAC)通常碰到两个问题:
伦理片 http://www.dotdy.com/
1、更新的throughput不高。主要影响原因有两点,锁的原因,还有更新通常是随机IO,很难充分利用硬盘高吞吐的优势。 2、更新影响查询。更新把IO占住,查询的体验急剧下降。
为了解决这个问题,Google的Mesa系统设计了一个MVCC的数据模型,通过增量更新和合并技术。将离散的更新IO转变成批量IO,平衡了查询和更新的冲突,提高了更新的吞吐量。
Mesa设计了一个多版本管理技术来解决更新的问题:
1、使用二维表来管理数据,每个表要制定schma,类似传统数据库。
2、每个字段用KeyValue来管理。Schema就是是key的集合,指向value的集合。
3、每个字段指定一个聚合函数F。(最常见的是SUM)
4、数据更新进来的时候,按照MVCC增量更新,并给增量更新指定一个版本号N,和谓词P。
5、查询进来的时候,自动识别聚合函数,把所有版本的更新按照聚合函数自动计算出来。
6、多版本如果永远不合并,存储的代价会非常大,而且因为每次查询需要遍历所有版本号,所以版本过多会影响查询,因此定期的合并是自然而然的。
7、Mesa采用两段更新的策略。更新数据按版本号实时写入,每十个版本自动合并,每天又全量合并一遍,合并成一个基础版本。
影音先锋电影 http://www.iskdy.com/
好了,今天主要就介绍Mesa的数据模型。Mesa的论文中举了一个例子更方便理解,大家去看看吧。
相关文章推荐
- ssh、scp、split 、tar、tail
- Daily Scrum 12.20
- Boot Repair-能一键修复ubuntu启动/引导项的软件(告别命令行)
- HDOJ 2124 Repair the Wall
- Lintcode - Naive Fibonacci
- 解决"is marked as crashed and should be repaired"方法
- 菜鸟学习大数据技术的过程
- Xcode Block retain cycle警告解决办法
- 6大Container OS介绍
- 70. Climbing Stairs
- 从大数据菜鸟走上大师的历程
- 探寻main函数的标准写法,以及获取main函数的参数、返回值
- strlen和sizeof有什么区别?http://zhidao.baidu.com/link?url=G42pKaVdJNJXS5pTgv0tzrKUr6uQ4qsEI-yFy3pvIa0g6NNd
- 从大数据菜鸟走上大师的历程
- 深入分析JavaWeb Item29 -- 使用JDBC处理大数据(MySql + Oracle)
- C++的运算符重载http://blog.csdn.net/zgl_dm/article/details/1767201
- 为大数据处理实验准备虚拟机局域网
- Daily Scrumming* 2015.12.19(Day 11)
- whu oj 1551 Pairs (莫队算法)
- Develop--Training(五)Getting Started--Saving Data