超越传统数据仓库

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 数据仓库的架构当前数据仓库的主流架构:分为两个方向一个是 hadoop 体系,一个是 MPP 数据库

数据仓库的架构

当前数据仓库的主流架构:分为两个方向一个是 hadoop 体系,一个是 MPP 数据库

1、hadoop + hive

Hive是建立在Hadoop HDFS基础之上的数据仓库基础框架,数据是保存在HDFS上的,它可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。它将SQL语句转化成 MapReduce 的 Job,然后在 Hadoop上执行,把执行的结果最终反映给用户。因为 Hadoop 可以部署在一批家用或服务器级别的硬件机器上,因此硬件成本较低,并能提高水平扩的能力。

优点:

1. 提供 sql 语法避免了去写 MapReduce,减少开发人员的学习成本。

2. Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

3. 经过多年发展,成熟度高,应用广泛

缺点:

1. 不支持事务,一般用于读多写少的情况,最好不改动数据,因为数据存储在HDFS中,而HDFS的文件不支持修改;

2. Hive 调优比较困难,粒度较粗

3. 不支持索引效率低

4. HQL 表达能力有限:迭代式算法无法表达。数据挖掘方面不擅长,由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现。

5. 不支持非结构化查询。

hadoop + hive 在实际的使用过程中,为了提高查询的速度,往往会构建大宽表。而构建这个大宽表,需要从其它表或者NoSql 中获取数据,在形成一个大宽表。曾经我见过团队,为了让一条 Sql 语句就能出报表,形成了一个2千多个列的大款表,光是维护这个大宽表都需要一个团队。

2、hadoop + spark

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作业之间的数据交互都要依赖于磁盘交互。

优点:

1. 相对于 Hive,Spark性能优异

2. Spark 提供 SQL、Spark Streaming、MLlib、GraphX 生态比 Hive 要强,节约了开发的人力和时间

缺点:

1. 稳定性,Spark 中大量的数据在内存中计算,对程序员的要求很高不然很容易出现 OutOfMemoryError

2. 受内存大小的限制,无法处理海量数据,因为它要在内存中生成 RDD,如果业务

3. Spark sql 能力有限:迭代式算法无法表达。数据挖掘方面不擅长,由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现。

3、MPP (greenplum, doris )

MPP 指处于不同部分的多个处理器对程序进行协同处理的过程,每个处理器使用自己的操作系统、内存、总线 和磁盘等,通常 MPP 处理器使用某些消息传递接口进行通信。MPP 数据库通常具有无共享架构,因为每个系统都有自己的CPU、内存和磁盘。这种架构的数据库特征是任务并行执行、数据分布式存储( 本 地 化 )、分布式计算 、资源私有、可横向扩展等。 Greenplum 为例:它主要由Master节点、Segment节点、interconnect三大部分组成 1. 专职的Master 节点: 它的主要功能是作为系统访问入口,对存储在系统中的元数据进行管理,以及实 现 SQL Parser,生成执行计划和任务调度等。Master 有两 个节点,会进行数据同步,在出现故障时可切换。 2. interconnect负责不同PostgreSQL实例之间的通信 3. segment是独立的PostgreSQL数据库,每个segment存储一部分数据。读写数据的时候通过Master

优点:

1. 支持标准的 sql 语法

2. 支持 PKG

3. 支持事务

4. 性能优秀,远超 hadoop, hive, spark

缺点:

1. 对硬件的要求高,远超 hadoop, hive, spark

2. 不支持 NoSql

3. 不能根据具体业务来设置相应的 key ,让相同的 key 落在同一台机器上,在实际应用中可能导致大量数据跨节点传输, 性能会有所下降。

4. 系统并发能力受单节点处理能力影响,因为它任何一个任务都要发到每个节点并行执行

5. 需要一支专业的运维团队,因为 greenplum 的应用不是那么普及,所以这部分往往需要厂商支持。

4、DawnSql 构建数仓

DawnSql 是一款同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、 它不仅完全支持标准 SQL语句,还支持 NoSql 这种类似 json 的数据格式,因此可以读写比较复杂的数据类型。此外它还拥有一种全新的脚本语言,用该语言可以简化业务代码,并生成自定义的 sql 方法。 DawnSql 是基于 JVM 体系的,所以它拥有良好的扩展性,用户可以自己扩展 SQL 的方法,让 DawnSql 兼容各种系统。

优点

1. 支持标准 SQL 和 NoSql

2. 支持分布式缓存(其它数仓不支持)

3. 拥有新的脚本语言。用该语言可以简化业务代码,并生成自定义的 sql 方法。

4. 支持在集群中计算服务的故障转移

5. 支持分布式事务

6. 支持机器学习的算法

7. 能够快速灵活的和工程做融合

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
SQL 分布式计算 大数据
传统数据仓库转型最佳目标:Kylin!
传统数据仓库转型最佳目标:Kylin!
|
存储 SQL 分布式计算
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。但是数据仓库和数据湖的区别到底是什么,是技术路线之争?是数据管理方式之争?二者是水火不容还是其实可以和谐共存,甚至互为补充?本文作者来自阿里巴巴计算平台部门,深度参与阿里巴巴大数据/数据中台领域建设,将从历史的角度对数据湖和数据仓库的来龙去脉进行深入剖析,来阐述两者融合演进的新方向——湖仓一体,并就基于阿里云MaxCompute/EMR DataLake的湖仓一体方案做一介绍。
27875 2
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
|
4天前
|
存储 机器学习/深度学习 数据管理
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
|
18天前
|
存储 分布式计算 数据管理
不可思议!Delta Lake 打造批流一体数据仓库,颠覆传统数据管理的奇迹之作
【9月更文挑战第3天】Delta Lake 是一种高效的数据存储格式,适用于构建批流一体的数据仓库。它支持 ACID 事务,确保数据一致性;能自动处理数据模式变更,简化开发流程。本文将分四步介绍如何使用 Delta Lake 实现批流一体的数据仓库:配置环境、创建 Delta Lake 表、执行批处理与流处理操作。通过示例代码展示其强大功能,适用于电商等多种场景下的数据整合与实时分析。
27 2
|
3月前
|
存储 人工智能 关系型数据库
数据库的深度探索:技术演进、应用领域与未来趋势
一、引言 数据库,作为信息技术领域中的关键组件,不仅为数据的存储、检索和管理提供了强有力的支持,而且随着技术的不断发展,其功能和应用领域也在不断扩展
|
4月前
|
存储 安全 数据管理
新一代数据库技术:融合区块链与分布式存储的未来趋势
传统数据库技术在数据安全性和分布式处理方面存在局限,而新一代数据库技术正日益融合区块链和分布式存储,为数据管理带来革命性变革。本文探讨了这一趋势的发展方向,以及如何利用新技术实现更高效的数据管理与保护。
|
4月前
|
存储 NoSQL 大数据
新型数据库技术在大数据分析中的应用与优势探究
随着大数据时代的到来,传统数据库技术已经无法满足海量数据处理的需求。本文将探讨新型数据库技术在大数据分析中的应用情况及其所带来的优势,为读者解析数据库领域的最新发展趋势。
|
4月前
|
存储 分布式计算 Hadoop
大规模数据处理:从传统方式到分布式计算的革新
在当今数字化时代,数据已经成为了企业和组织中最重要的资源之一。然而,随着数据量的不断增长,传统的数据处理方法已经无法满足需求。大规模数据处理的需求推动了分布式计算技术的发展,成为解决大规模数据处理问题的重要工具。本文将介绍大规模数据处理的背景、分布式计算技术的发展以及相关技术的应用。
|
canal 缓存 otter
数据仓库 、数据中心相关技术知识和生态相关了解
数据仓库 、数据中心相关技术知识和生态相关了解
213 0
|
存储 SQL 机器学习/深度学习
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门