大数据仓库—增量更新

现在是国内凌晨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的论文中举了一个例子更方便理解,大家去看看吧。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2015-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

容器环境下 go 服务性能诊断方案设计与实现

业务上量以后,对程序进行 profiling 性能诊断对很多后端程序员来说就是家常便饭。一个趁手的工具往往能让这个事情做起来事半功倍。

845
来自专栏数据和云

云服务真的靠谱吗? AWS 用户中断31小时仅恢复6周数据

网络剪报服务商 - Instapaper 遭受了超过31小时的服务中断,而且他们声明还需要一个星期的数据库恢复时间。 Instapaper 是一个网络内容收藏站...

31112
来自专栏个人分享

HBASE解析

Hbase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式,并从Hadoop的...

641
来自专栏美团技术团队

美团外卖iOS多端复用的推动、支撑与思考

美团外卖2013年11月开始起步,随后高速发展,不断刷新多项行业记录。截止至2018年5月19日,日订单量峰值已超过2000万,是全球规模最大的外卖平台。业务的...

773
来自专栏云计算

用于增强数据治理能力与法规遵从性的容器

审计人员是如何评估当前分散存储基础设施的企业数据的使用情况的?简而言之,这其中困难重重!

1838
来自专栏Elasticsearch实验室

基于Elastic Stack搭建日志分析平台

(本次课程是通过小程序对外推广的,所以PPT是竖版的。电脑端浏览体验可能不太好,望大家见谅)

1796
来自专栏携程技术中心

干货 | 如何利用Xcode实现线上代码覆盖率的检查

1502
来自专栏铭毅天下

Elasticsearch全文检索实战小结——复盘我带的第二个项目

一、项目概述 这是一个被我称之为“没有枪、没有炮,硬着头皮自己造”的项目。项目是和其它公司合作的三个核心模块开发。 使用ES的目的是: 1)、采集数据、网站...

3789
来自专栏织云平台团队的专栏

H5前端监控实践

为了便捷的衡量 H5 页面的速度、质量,高效定位问题,给用户提供更优质的服务。我们建设了自己的 H5 前端监控——天网云 ilook。

8381
来自专栏云计算D1net

如何为Hadoop选择最佳弹性MapReduce框架

亚马逊Web服务的弹性MapReduce是一项基于Hadoop的实施,它可允许你运行大型的预处理工作,如格式转换和数据聚合等。虽然我们可以选择很多的编程语言来对...

3426

扫码关注云+社区