大数据仓库—增量更新

现在是国内凌晨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 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

思博伦OpenFlow性能测试白皮书上篇

OpenFlow性能测试目前依然处于起步阶段,虽然有少数的开源工具用于测试OpenFlow性能,但是比较OpenFlow产品的性能还没有一个标准。思博伦测试仪提...

3426
来自专栏CSDN技术头条

服务端接口自动化测试工具大全及适配环境解析

在互联网时代,服务端测试已经成为一个重要的产品保障手段,各对此公司实施的方法和技术也不同,本文我们就来讨论一下。 互联网服务端接口自动化是各个公司都需要一部分业...

3616
来自专栏大数据智能实战

千万级别以上的地图兴趣点(POI)的快速查找测试

近期,终于有点时间,将之前的地图兴趣点爬虫程序(http://blog.csdn.net/sparkexpert/article/details/5155481...

1808
来自专栏杨建荣的学习笔记

system表空间不足的问题分析(r6笔记第66天)

很多事情见多了也就有了麻木的感觉,报警短信就是如此,每天总能收到不少的报警短信,可能很多时候就扫一眼,如果没有严重的问题自己是不会情愿打开电脑处理的。 对于此,...

2444
来自专栏SDNLAB

OpenStack网络基础

OpenStack在这几年风生水起。随着核心模块稳定性的提高,OpenStack已经有了很多大规模商用的案例,所有与云相关的,无论是商用软件还是开源平台都在积极...

2915
来自专栏睿哥杂货铺

SDN 技术指南(二):OpenFlow

OpenFlow 最早由斯坦福大学提出,目前知识产权由开放网络基金会(Open Networking Foundation,ONF)持有。

2349
来自专栏生信技能树

lncRNA实战项目-第三步-了解参考基因组及注释文件

下载原始测序数据: 在GEO数据库搜索GSE87182, 这里没有直接给出ftp地址,需要先从BioProject找到SRA号,可以得到RNA-Seq的SRA的...

2895
来自专栏我是攻城师

如何在kylin中构建一个cube

2697
来自专栏北京马哥教育

Linux下的CPU使用率与服务器负载的关系与区别

当我们使用top命令查看系统的资源使用情况时会看到load average,如下图所示,它表示系统在1,5,15分钟的平均工作负载。 那么什么是负载(l...

3067
来自专栏Hadoop数据仓库

HAWQ取代传统数仓实践(二)——搭建示例模型(MySQL、HAWQ)

一、业务场景         本系列实验将应用HAWQ数据库,为一个销售订单系统建立数据仓库。本篇说明示例的业务场景、数据仓库架构、实验环境、源和目标库的建立过...

2018

扫描关注云+社区