EDW on Hadoop(Hadoop上的数据仓库)技术选型和实践思考

article/2025/8/25 10:33:23

在这篇文章中, 将讨论EDW on Hadoop 有哪些备选方案, 以及我个人的倾向性, 最后是建构方法.  欢迎转载, 但必须注明原贴(刘忠武,  http://www.cnblogs.com/harrychinese/p/edw_on_hadoop.html).

数据仓库发展已经有二十多年了, 我们先看看数据仓库发展的趋势:

在数据规模小的时候, 采用单节点RDBMS作为存储和执行引擎, 比如Oracle/PostgreSQL/MySQL都行;

当数据规模大了后, 或者时间窗口很紧时, 多采用MPP的解决方案, 比如Teradata/Exedata, 这些MPP多是一体机, 实施成本比较高, 满配后如要做扩容, 哪怕是很小的扩容, 都需投入大量资金, 显得非常不划算. 现在有的互联网企业的数据量非常之大, 即使是采用顶配的一体机, 往往也撑不住.

最近几年, SQL on Hadoop技术发展很快, 尤其是Hive被大量采用之后, 开源社区和商业数据仓库厂商都意识到EDW on Hadoop是未来的方向. 下图是一些现在比较活跃的方案,

在开源方案中, 我比较看好Impala和Spark SQL, 尤其是Spark SQL.  原因有:

1.使用Spark SQL建构EDW相对容易些: 数据仓库项目中, ETL是非常重要的一环, Spark作为一个高效的计算框架, 借助RDD算子或者SQL写法很胜任ETL的Transform, Extract可以借助Sqoop.

2. Spark SQL性能不错: 在最近1.3版Spark SQL性能已经很不错.

3. Spark, one stack to rule them all:  对于企业而言, spark会给你更多, 将来MLlib应该能替代SAS. 对于开发者而言, 只需要学一门, 就能做好多方面的事情.这有点像Java语言当初的口号,一次编译,到处运行。

4. 社区活跃, 版本迭代快(版本这事, 是优点也是缺点)

Spark SQL数据仓库架构设计

两张架构图, 第一张是展现EDW的位置, Input有哪些, Output有哪些. Input展现的已经很明显了, 对于EDW输出, 目前传统的BI工具还不支持Spark SQL, 所以我们设计一个外部RDBMS数据集市, Spark数据仓库负责推数据到该数据集市, BI工具直接访问这个数据集市.

和传统的数据仓库一样, 为了治理需要, 也需要对于Spark EDW分层, 一般三层就足够了.

另外, 我们可考虑设计一个active archive区,  专门归档OLTP数据.

ETL设计思想

每个EDW, ETL工作量都很大, 而且直接影响EDW使用效果.

从大的设计架构看, 推荐采用ELT, 而不是ETL模式. 为什么? 传统ETL最大的好处是, 可以减轻EDW的压力. 对于Hadoop基础上的数据仓库, 但采用ETL的这个好处, 就不明显了, EDW压力可以通过横向扩展, 很容易解决.

对于Extract, 可用Sqoop完成卸载, 推荐采用Parquet格式, 这样Spark SQL可以直接mount这些数据, 也就完整了Load.

Transform在Spark上完成, Spark编程接口非常丰富, 支持Scala/Python/Java编程语言.

至于到底采用哪种开发语言, 我的看法是, 优先采用Python, 无它, Python代码最易读了. 但我们需要清楚的是, Scala API总是最全的, Java 版API次之, Python版的API最少, 另外, API若有bug的话, Python版修复的进度也是最晚的.  但好在Python API现在已经很完善了.  在Spark 1.3版中, Python 的dataFrame缺少createJDBCTable() 编程接口.

简单总结一下

Spark数据仓库的能承担的作用有:

1. 产生BI报表数据

2. 做数据挖掘

3. 作为Active archive

另外, 还能节省不少开销: 省掉了一体机, 省掉了ETL工具, 省掉了SAS分析软件, 省掉高端的存储.


http://chatgpt.dhexx.cn/article/pCX9cvw3.shtml

相关文章

(转载)浅析ODS与EDW 关系

浅析ODS与EDW 关系 刘智琼 (中国电信集团广州研究院广州510630) 摘要 本文重点介绍了企业运营数据仓储(ODS)和企业数据仓库(EDW )的概念,并对ODS与EDW 之间的关系,包括两者相同点与不同点进行了详尽的对比与阐述,文章还对业界公认的ODS和E…

ETL(一):(详细步骤)使用ETL将源数据抽取到EDW层

1、ETL中4大常用客户端 R客户端主要用于创建文件夹,不同的项目主题,应该放在不同的文件夹中; 2、ETL开发流程 ①~③在D客户端中完成;④和⑤在W客户端中完成;⑥在M客户端中完成; 3、需求 需求一&#xff…

浅析ODS与EDW关系(转载)

背景知识:在当今这样一个信息技术发展迅速的时代,数据量也在不断的增长,面临这样的压力,总是会有大神提出一些解决方案。比如高层管理人员希望能查看整个公司的发展业绩,数据仓库(Data Warehouse, DW)正是解决该问题的…

ODS和EDW

企业运营数据仓储(ODS)和企业数据仓库(EDW ) 企业数据架构 EDW主要为企业提供分析决策服务。ODS主要实现企业数据整合、共享和准实时运营监控等功能,ODS是EDW的一个有益的补充和扩展 其中.ADB为应用数据库;A、B、C表示不同类型的数据流动&am…

浅析ODS与EDW 关系(转载)

摘要 本文重点介绍了企业运营数据仓储(ODS)和企业数据仓库(EDW )的概念,并对ODS与EDW 之间的关系,包括两者相同点与不同点进行了详尽的对比与阐述,文章还对业界公认的ODS和EDW 两种不同建设方法也分别进行了说明,并给出了作者认为…

ODS与EDW的区别

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 根据自己的理解与实际项目经验,说说ODS与EDW的异同。如果有不对的地方,欢迎大家批评指正。 维基百科对于ODS的…

传统数据仓库 DW/EDW/BI/ODS/DM/ETL

DW 数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智…

范式理解(0范式,1范式,2范式)

https://www.zhihu.com/question/20473040 可以从函数、几何与矩阵的角度去理解范数。 我们都知道,函数与几何图形往往是有对应关系的,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是…

数据库(四):函数依赖和数据库异常,第一范式,第二范式,第三范式,第四范式

文章目录 前言一、函数依赖二、异常三、第一范式四、第二范式五、第三范式六、BC范式 前言 本文转载于:https://zhuanlan.zhihu.com/p/20028672 在阅读本文时,可以把“关系”理解为数据表。此外还有一个“关系模式”的概念。“关系”和“关系模式”的区…

数据库4范式

范式与公理系统 前言一、函数依赖1.部分函数依赖2.完全函数依赖3.传递函数依赖4.码 二、范式1.第一范式(1nf)2.第二范式(2nf)判断是否是第二范式 3.第三范式(3nf)4.BCNF范式6.第四范式多值依赖 总结 前言 …

数据库的第一范式,第二范式,第三范式,BCNF范式理解

第一范式 属性的原子性 所谓的第一范式就是数据库中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,如果出现重复的属性则需要重新构建实体,新的实体由重复的属性构…

第四范式冲刺IPO:4年亏13亿收入逐年翻番,研发工资人均2万

边策 梦晨 发自 凹非寺量子位 | 公众号 QbitAI 知名AI独角兽第四范式,内部详情今天有了完整公开。 中国首个ACM世界冠军戴文渊创办、腾讯红杉加持,股东和客户集齐五大国有银行,创办7年累计吸金66亿,主打的是技术包括“黑魔法”Aut…

数据库六大范式详解

候选码 某一属性组的值能唯一标识一个元组,而其子集不能,则称该属性组为候选码。若一个关系中有多个候选码,则选定其中一个为主码。 例如下图所示的学生表中,学号和姓名都可以唯一标识一个元组,故该表的候选码为学号和…

[数据库] 第一范式、第二范式、第三范式、BC范式

要搞清楚常见范式,需得先了解以下概念 数据描述术语对应表 关键码 1) 超键:在关系中能唯一标识元组的属性或属性集称为关键模式的超键。 2) 候选键:不含有多余属性的超键称为候选键。也就是在候选键中在删除属性就不是键了。 3) 主键…

第一范式,第二范式,第三范式,BCNF范式理解

第一范式、第二范式、第三范式 参考了https://www.zhihu.com/question/24696366 https://www.cnblogs.com/lca1826/p/6601395.html 基础知识 实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“…

数据库|第一范式、第二范式、第三范式、BC范式、第四范式简单理解

数据库|第一范式、第二范式、第三范式、BC范式、第四范式简单理解 在设计数据库的时候,虽说将我们要的数据正确完整导入数据库是很关键的,但是对于数据库的设计者来说,如何将大量数据合理有效正确地导入数据库中也是极其关键的,好…

简单了解第一,二,三范式(图文详细)

简单了解第一,二,三范式 什么是范式第一范式第二范式第三范式 什么是范式 范式:范式是符合某一种级别的关系模式的集合,表示一个关系内部属性之间的联系何合理化程度 粗略理解:就是一张数据表的表结构所符合的某种设…

第一范式、第二范式、第三范式、BCNF范式详解

文章目录 0. 范式(NF)1. 第一范式(1NF)2. 第二范式(2NF)2.1 函数依赖2.1.1完全函数依赖2.1.2 部分函数依赖2.1.3 传递函数依赖 2.2 码2.3 非主属性 3. 第三范式(3NF)4. BCNF范式5. 小结6. 参考文献 0. 范式…

详解第一范式、第二范式、第三范式、BCNF范式

GITHUB: https://github.com/wenkechen 文章目录 什么是”范式(NF)”1. 第一范式(1NF)2. 第二范式(2NF)2.1 函数依赖2.1.1完全函数依赖2.1.2 部分函数依赖 2.2 码2.3 非主属性 3. 第三范式(3NF)4. 小结 什么…

范式说明:第四范式

4NF取决于多值依赖的概念。 FD函数依赖(X→Y表示:X函数决定Y,或Y函数依赖于X),主要解决了关系R中属性值之间的“多对一”联系,即属性X与属性Y是“多对一”。而多值依赖主要是解决属性值之间的“一对多”联系…