当前数据仓库的主流架构:分为两个方向一个是 hadoop 体系,一个是 MPP 数据库
Hive是建立在Hadoop HDFS基础之上的数据仓库基础框架,数据是保存在HDFS上的,它可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。它将SQL语句转化成 MapReduce 的 Job,然后在 Hadoop上执行,把执行的结果最终反映给用户。因为 Hadoop 可以部署在一批家用或服务器级别的硬件机器上,因此硬件成本较低,并能提高水平扩的能力。
**优点:**
**缺点:**
**hadoop + hive 在实际的使用过程中,为了提高查询的速度,往往会构建大宽表。而构建这个大宽表,需要从其它表或者NoSql 中获取数据,在形成一个大宽表。曾经我见过团队,为了让一条 Sql 语句就能出报表,形成了一个2千多个列的大款表,光是维护这个大宽表都需要一个团队。**
Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。提供一种既可以极大批量地处理分布式的数据,又有足够的容错能力,且上手容易,速度快,可以让人实现实时交互分析的解决方案。既支持作业任务处理,又支持流处理(SparkStreaming)和SQL(SparkSQL),以及机器学习(SparkMLlib)和图处理(SparkGraphX)。
Hadoop MapReduce 由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多 并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存 在诸多计算效率等问题。所以 Spark 应运而生,Spark 就是在传统的 MapReduce 计算框 架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的 RDD 计算模型。
Spark 是一个分布式数据快速分析项目。它的核心技术是弹性分布式数据集(Resilient Distributed Datasets),提供了比 MapReduce 丰富的模型,可以快速在内存中对数据集进行多次迭代,来支持复杂的数据挖掘算法和图形计算算法。
Spark 和 Hadoop 的根本差异是多个作业之间的数据通信问题 : Spark 多个作业之间数据通信是基于内存,而 Hadoop 是基于磁盘。Spark只有在shuffle的时候将数据写入磁盘,而Hadoop中多个MR作业之间的数据交互都要依赖于磁盘交互。
**优点:**
**缺点:**
MPP 指处于不同部分的多个处理器对程序进行协同处理的过程,每个处理器使用自己的操作系统、内存、总线 和磁盘等,通常 MPP 处理器使用某些消息传递接口进行通信。MPP 数据库通常具有无共享架构,因为每个系统都有自己的CPU、内存和磁盘。这种架构的数据库特征是任务并行执行、数据分布式存储( 本 地 化 )、分布式计算 、资源私有、可横向扩展等。
Greenplum 为例:它主要由Master节点、Segment节点、interconnect三大部分组成
**优点:**
**缺点:**
DawnSql 是一款同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、
它不仅完全支持标准 SQL语句,还支持 NoSql 这种类似 json 的数据格式,因此可以读写比较复杂的数据类型。此外它还拥有一种全新的脚本语言,用该语言可以简化业务代码,并生成自定义的 sql 方法。
DawnSql 是基于 JVM 体系的,所以它拥有良好的扩展性,用户可以自己扩展 SQL 的方法,让 DawnSql 兼容各种系统。
**优点**
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。