文档章节

关注HadoopDB,一个分布式并行数据库系统

张劳模
 张劳模
发布于 2016/05/10 10:50
字数 2266
阅读 53
收藏 0

研究云计算的两个多月之后,脑子确实‘晕’了。云计算在我看来就是用mapReduce思想实践于大量廉价的Linux机器上的解决方案,主要涉及存储和处理两方面,当然以上观点都是我固执的偏见罢了。

传统的基于行的关系型数据库里名声最大的要数Oracle了,其分布式集群的RAC解决方案在负载均衡等方面做的也不错。但是它的处理速度确实有限,还没听说过哪个集群解决方案应用到了上百个节点,因为不管集群中有多少个节点,数据却只保存了一份,引用在greenplum文档中提到的观点,这种架构叫‘shared-everything’,多个节点同时读写数据就会抢占磁盘IO,成了瓶颈,限制了处理速度(写到这里想多说一句,看似Oracle多复杂,只不过为弥补自身设计弊端而不断地patching罢了)。当然了,在OLTP系统当中,Oracle还是很吊的。而在与之相对的OLAP领域以及说白了的数据仓库方面,就是别的数据库占据在那里了,我听说比较不错的有Teradata,这都是传闻,还传闻Teradata很贵呢~

提到了基于行的数据库库,不得不说一下基于列的数据库,在OLAP领域,之前研究vertica时才稍明白点这种基于列的数据库有什么好处(其他可基于列存储的数据库还有hypertable、greenplum等等,他们都是‘新秀’数据库),尤其是在海量数据分析中,要是用到了group by、join或sort之类的操作,那处理速度与基于行的可就是不可同日而语了。原因主要有两点,一是在于基于列的数据库的数据就是按列连续存储的,说白了节省的就是磁盘IO扫描的时间(补充:在含聚集函数的查询中能减少磁盘磁头寻道次数),二是在按列存储的基础上进行了很多优化,比如压缩。

上面提到了传统的关系型数据库,不得不再说一下非关系型数据库。在数据库发展的这些年里,非关系型数据库一直处在非主流的地位,但是web2.0对其起到了推进作用。没有严格的行列二维映射关系(上学时好像学过,和第几范式有关系),用key和value来描述插入的数据,比如MongoDB等。

最近云计算很火,hadoop、mapreduce、bigtable都是关键词。现在就有了这么一个问题,对于传统的基于行的关系型数据库,在OLAP领域如何能延续生命?如何存储以及处理,这样就引入了文章标题提到的内容——分布式并行数据库,将数据分布在多个节点存储,执行查询时多个节点进行并行计算,数据汇总并返回结果,用空间换取时间,时间复杂度=执行最慢的那个节点花费的时间+数据汇总的时间。这么好的东西为什么没有早早普及呢,原因很多,比如设计就很复杂,细节问题包括多表做join、添加删除节点等等。greenplum就是一个基于PostgreSQL数据库的分布式并行数据库的商业应用,不去理它,我们主要说说开源的,‘free’的~ 提几个类似的开源项目,比如pgpool、bizgres、pl/proxy、gridsql等,都是基于PostgreSQL数据库的,这个数据库还是很不错的,比如说它是基于BSD协议的开源项目~

下面该提到文章标题的另一个关键词啦——HadoopDB,它是mapReduce和SQL的结合,利用Hadoop系统和PostgreSQL实现的分布式并行数据库系统,它是美国耶鲁大学出来的一个开源项目,基于Apache2.0协议,用java写的。它用hadoop进行数据处理,用PostgreSQL进行数据存储,在处理查询时,执行的是SQL to mapReduce to SQL操作过程(SMS planner)。这是个新鲜玩意,有兴趣可以一同研究下!

研究云计算的两个多月之后,脑子确实‘晕’了。云计算在我看来就是用mapReduce思想实践于大量廉价的Linux机器上的解决方案,主要涉及存储和处理两方面,当然以上观点都是我固执的偏见罢了。

传统的基于行的关系型数据库里名声最大的要数Oracle了,其分布式集群的RAC解决方案在负载均衡等方面做的也不错。但是它的处理速度确实有限,还没听说过哪个集群解决方案应用到了上百个节点,因为不管集群中有多少个节点,数据却只保存了一份,引用在greenplum文档中提到的观点,这种架构叫‘shared-everything’,多个节点同时读写数据就会抢占磁盘IO,成了瓶颈,限制了处理速度(写到这里想多说一句,看似Oracle多复杂,只不过为弥补自身设计弊端而不断地patching罢了)。当然了,在OLTP系统当中,Oracle还是很吊的。而在与之相对的OLAP领域以及说白了的数据仓库方面,就是别的数据库占据在那里了,我听说比较不错的有Teradata,这都是传闻,还传闻Teradata很贵呢~

提到了基于行的数据库库,不得不说一下基于列的数据库,在OLAP领域,之前研究vertica时才稍明白点这种基于列的数据库有什么好处(其他可基于列存储的数据库还有hypertable、greenplum等等,他们都是‘新秀’数据库),尤其是在海量数据分析中,要是用到了group by、join或sort之类的操作,那处理速度与基于行的可就是不可同日而语了。原因主要有两点,一是在于基于列的数据库的数据就是按列连续存储的,说白了节省的就是磁盘IO扫描的时间(补充:在含聚集函数的查询中能减少磁盘磁头寻道次数),二是在按列存储的基础上进行了很多优化,比如压缩。

上面提到了传统的关系型数据库,不得不再说一下非关系型数据库。在数据库发展的这些年里,非关系型数据库一直处在非主流的地位,但是web2.0对其起到了推进作用。没有严格的行列二维映射关系(上学时好像学过,和第几范式有关系),用key和value来描述插入的数据,比如MongoDB等。

最近云计算很火,hadoop、mapreduce、bigtable都是关键词。现在就有了这么一个问题,对于传统的基于行的关系型数据库,在OLAP领域如何能延续生命?如何存储以及处理,这样就引入了文章标题提到的内容——分布式并行数据库,将数据分布在多个节点存储,执行查询时多个节点进行并行计算,数据汇总并返回结果,用空间换取时间,时间复杂度=执行最慢的那个节点花费的时间+数据汇总的时间。这么好的东西为什么没有早早普及呢,原因很多,比如设计就很复杂,细节问题包括多表做join、添加删除节点等等。greenplum就是一个基于PostgreSQL数据库的分布式并行数据库的商业应用,不去理它,我们主要说说开源的,‘free’的~ 提几个类似的开源项目,比如pgpool、bizgres、pl/proxy、gridsql等,都是基于PostgreSQL数据库的,这个数据库还是很不错的,比如说它是基于BSD协议的开源项目~

下面该提到文章标题的另一个关键词啦——HadoopDB,它是mapReduce和SQL的结合,利用Hadoop系统和PostgreSQL实现的分布式并行数据库系统,它是美国耶鲁大学出来的一个开源项目,基于Apache2.0协议,用java写的。它用hadoop进行数据处理,用PostgreSQL进行数据存储,在处理查询时,执行的是SQL to mapReduce to SQL操作过程(SMS planner)。这是个新鲜玩意,有兴趣可以一同研究下!

本文转载自:http://www.cnblogs.com/lihaozy/archive/2013/02/20/2918051.html

张劳模
粉丝 0
博文 3
码字总数 394
作品 0
郑州
私信 提问
分布式大规模数据库系统--HadoopDB

HadoopDB是Abadi领导的开发团队利用不同的组件,包括开源数据库、PostgreSQL、Apache Hadoop数据分类技术和Hive(Facebook公司开发的内部Hadoop项目)开发出的新型数据库。 HadoopDB的查询是...

匿名
2012/01/29
4K
0
干货:大数据处理技术的总结与分析

一 数据分析处理需求分类 1 事务型处理 在我们实际生活中,事务型数据处理 需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。 这类...

加米谷
2018/07/18
0
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
2018/11/15
0
0
史上最全的“大数据”学习资源

资源列表: 关系数据库管理系统(RDBMS) 框架 分布式编程 分布式文件系统 文件数据模型 Key -Map 数据模型 键-值数据模型 图形数据模型 NewSQL数据库 列式数据库 时间序列数据库 类SQL处理 ...

不语者
2016/11/10
65
0
大数据的关键技术与综述

在大数据时代,传统的数据处理方法还适用吗? 大数据环境下的数据处理需求 大数据环境下数据来源非常丰富且数据类型多样,存储和分析挖掘的数据量庞大,对数据展现的要求较高,并且很看重数据...

English0523
2015/09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
12分钟前
0
0
GIL 已经被杀死了么?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q 花下猫语: Python 中最广为人诟病的一点,大概就是它的 GIL 了。...

豌豆花下猫
20分钟前
0
0
git commit message form

commit message一般包括3部分:Header、Body、Footer。 <type>(<scope>):<subject>blank line<body>blank line<footer> header是必需的,body、footer可以省略。 header中type、subject......

ninjaFrog
32分钟前
0
0
聊聊Elasticsearch的CircuitBreakerService

序 本文主要研究一下Elasticsearch的CircuitBreakerService CircuitBreakerService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/indices/breaker/CircuitBreakerService.ja......

go4it
37分钟前
3
0
Spring系列教程六:AOP详细讲解

AOP 概述 什么是 AOP AOP:全称是 Aspect Oriented Programming 即:面向切面编程。 AOP技术是对OOP技术的一种延伸,AOP是面向纵向,OOP是面向横向。简单的说它就是把我们程序重复的代码抽取...

我叫小糖主
50分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部