在这篇文章中, 将讨论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分析软件, 省掉高端的存储.

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

  1. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

  2. 探秘Hadoop生态6:Hive技术初探与实践入门

    数据仓库_总结 一,数据类型 数据储存库将包括关系数据库.数据仓库.事务数据库.高级数据库系统.一般文件.数据流和万维网.高级数据库系统包括对象-关系数据库和面向特殊应用的数据库,如空间数据库.时间序 ...

  3. 关于webgis技术选型的一些思考

    在日常的工作过程中,会遇到webgis和传统桌面gis的选用问题.webgis基于B/S模式,适合于多终端用户.传统C/S模式,可以使用的软件比较多,国外的可选arcgis系列,开源的有qgis,还有 ...

  4. 大数据入门第五天——离线计算之hadoop(上)概述与集群安装

    一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® ...

  5. 基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议

    简介: 通过我们背后的指导思想和我们给出的技术解决方案,希望与大家能够一起探索一些新的基于云上的数据仓库构建的最佳实践,从而尽量避免走弯路.这就是我今天想跟大家分享的内容与目的. 在本文中阿里云资深产 ...

  6. 【译】前端框架技术选型 React vs. Vue (vs. Angular)

    这是该系列文章的第2部分:"Fundbox的前端技术选型".第1部分介绍了Fundbox的技术现状以及我们重新设计它的动机.第2部分介绍了选择新框架背后的考虑:是迁移到React, ...

  7. 笔记|滴滴iOS客户端的架构,组件化,技术选型

    笔记来源infoq:滴滴iOS客户端的架构演变之路 1,状态机,把订单中的阶段,例如:出租车的等待抢单.出租车的等待接驾.专车的等待抢单.专车的等待接驾,都当成一种独立的状态,每 个状态机只需要知道可 ...

  8. 基于SQL on Hadoop的数据仓库技术

    http://www.uspeed.com.cn/958.html 数据仓库是企业统一的数据管理的方式,将不同的应用中的数据汇聚,然后对这些数据加工和多维度分析,并最终展现给用户.它帮助企业将纷繁浩杂 ...

  9. 与 Hadoop 对比,如何看待 Spark 技术

    http://www.zhihu.com/question/26568496 与 Hadoop 对比,如何看待 Spark 技术? 最近公司邀请来王家林老师来做培训,其浮夸的授课方式略接受不了.其强烈 ...

最新文章

  1. 没有这 29 款插件的 Chrome 是没有灵魂的!
  2. Tools: geos 使用指南
  3. 中设置colorbar_【值得收藏】如何画出学术论文中需要的各种精美插图,看这一篇就够了!...
  4. 对象的初始状态(构造函数)
  5. jQuery Mobile动态刷新页面样式
  6. Qt工作笔记-对QXmlStreamWriter进一步的认识(写复杂的XML文件)
  7. virtualenv
  8. 为什么NaN - NaN == 0.0与英特尔C ++编译器?
  9. python分布式任务调度_Python开源任务调度框架介绍
  10. 智能客服、聊天机器人的应用和架构、算法分享和介绍
  11. 2021-2022 AI工程师薪水趋势:美国、印度、加拿大等
  12. CodeForces - 1384
  13. SPSS——连续变量的描述统计
  14. 790. 数的三次方根 Java题解 (二分)
  15. java大数求三角形外心_JAVA求两直线交点和三角形内外心的方法
  16. cpu爆了怎么排查和处理_怎么清理cpu,怎样可以证明cpu坏没坏-
  17. USB总线-Linux内核USB3.0控制器初始化代码分析(三)
  18. treeoj 1206~1208 1212
  19. 在线画树,如何快速画一棵树-Bitree Painter
  20. 超级牛的网站同步工具软件—端端Clouduolc

热门文章

  1. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java民族地区文化调研与数字化保护技术研究---青海平弦乐库的建设及播放平台开发l3479
  2. 基于“新浪乐库”的音乐搜索API接口,返回JSON数据
  3. 多媒体文件格式全解说(上)--音视频
  4. 将小写金额转换为中文大写
  5. Java高并发书籍推荐
  6. uni-app提供开箱即用的SSR支持
  7. KBL406-ASEMI电脑适配器等高品质产品桥堆
  8. 《后端架构师技术图谱》(转)
  9. 离散Hopfield神经网络的分类——高校科研能力评价
  10. 谈谈我对微服务的理解