前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据仓库—增量更新

大数据仓库—增量更新

作者头像
大数据和云计算技术
发布2018-03-08 11:20:59
1.8K0
发布2018-03-08 11:20:59
举报

现在是国内凌晨3点,为了抵挡睡意,还是写写技术博客。今天和大家讨论下大数据仓库中的更新技术。

当前很多大数据技术,如HDFS最早设定的是数据不更新,只增量叠加。传统数据仓库(Greenplum,treadata,oracle RAC)通常碰到两个问题:

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采用两段更新的策略。更新数据按版本号实时写入,每十个版本自动合并,每天又全量合并一遍,合并成一个基础版本。

好了,今天主要就介绍Mesa的数据模型。Mesa的论文中举了一个例子更方便理解,大家去看看吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据和云计算技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档