hadoopDB 数据仓库 简介

读了两篇关于hadoopDB数据仓库的论文之后,写一点关于hadoopDB的简介:

 

hadoopDB是耶鲁大学的一个大学项目, 目的是为了构建一个数据仓库的工具。

HadoopDB 结合了hadoop 和paralled RDBMS,结合两个技术的优点。

HadoopDB is to connect multiple single_node database systemusing Hadoop as the task coordinator and network communication layer.

Hadoop的优点:fault  toleranceand ability to operate in a heterogeneous environment properties.

                缺点: performance,特别是对于join和aggregation操作。

Paralled RDBMS的优点: performance, 特别是对于join和aggregation的优化 处理。

                缺点:就是hadoop的优点。

 

原来hadoop + hive就是一套完整数据仓库工具,hive的作用是把用户输入的类SQL语句翻译成hadoop能够执行一些操作-mapreduce的任务tree(包含多个mapreduce的操作),只有由hadoop去执行。但是这些操作都是基于google自己的HDFS,所以在performance上并不是理想。同类的产品还有yahoo的pig, Microsoft的SCOPE。

扫描二维码关注公众号,回复: 632891 查看本文章

 

HadoopDB的最终想法就是在map阶段把SQL语句尽量的让paralledRDBMS 去执行,尽量发挥并行数据库系统的优势,之后把每个node的输出序列化到temp文件中,在reduce阶段把结果从temp文件中读出即可。

 

如果实在不能让paralled RDBMS去执行,那么只能依靠mapReduce的功能。

上面是HadooopDB的一个结构图,在原来的hadoop+ hive的基础上,增加了一些组件:

1.      SMS Planner.

不清楚是SMS Planner是独立于hive,还是依赖于hive.现在暂且认为SMSPlanner的作用是在hive解析SQL语句生成mapreduce任务tree之后,对mapreduce任务tree进行优化,尽量指导hadoop去paralledDatabase中执行SQL。

2.      Catalog。

里面存储了paralled database的一些信息。

3.      Data loader。

负责把原始数据load到paralleddatabase中,需要完成的工作是对原始数据的partition.

4.      Database Connector

该类继承自hadoop的inputformat类,用于向各个node传递信息,Databaseconnector里面包含了node里面database的链接信息和需要执行的SQL语句。

5.      Paralled DataBase.

用于代替HDBS在各个node上存储数据。

 

 

以下面SQL语句为例:

SELECT YEAR(saleDate),SUM(revenue)

FROM sales GROUP BY YEAR(saleDate);

1.    对于hive来说,他会把他翻译成如下步骤:

2. 而通过SMS planner对上面plan的修改,如果在partition的时候,所有的表格是以year为attribute做的partition,那么每个database里面的数据是独立的,也就是可以把上述SQL语句直接给node中的database做查询。那么修改之后的plan如下:

只需要Map阶段把SQL语句传递给每个node,每个node只需要返回查询结果即可,不需要在reduce阶段做什么操作。

 

3. 但是如果在partition的时候,所有的表格没有以year为attribute做partition, 那么各个database里面的数据不是独立,是需要全部从各个数据库中读出相关表格,之后让mapreduce以year为attribute做map操作,之后对于各个map操作,做reduce操作。

 

 

两篇论文:

Abadi - HadoopDB An Architectural Hybrid of MapReduce and DBMS Technologies for Analytical Workloads

Abadi - Efficient Processing of Data Warehousing Queries in a Split Execution Environment

 

http://blog.csdn.net/suwei19870312/article/details/7242995

猜你喜欢

转载自m635674608.iteye.com/blog/2301181