超越传统数据仓库

本文涉及的产品
阿里云百炼推荐规格 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的湖仓一体方案做一介绍。
28017 2
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
|
2月前
|
存储 机器学习/深度学习 数据管理
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
|
2月前
|
机器学习/深度学习 消息中间件 搜索推荐
【数据飞轮】驱动业务增长的高效引擎 —从数据仓库到数据中台的技术进化与实战
在数据驱动时代,企业逐渐从数据仓库过渡到数据中台,并进一步发展为数据飞轮。本文详细介绍了这一演进路径,涵盖数据仓库的基础存储与查询、数据中台的集成与实时决策,以及数据飞轮的自动化增长机制。通过代码示例展示如何在实际业务中运用数据技术,实现数据的最大价值,推动业务持续优化与增长。
84 4
|
2月前
|
存储 分布式计算 数据管理
不可思议!Delta Lake 打造批流一体数据仓库,颠覆传统数据管理的奇迹之作
【9月更文挑战第3天】Delta Lake 是一种高效的数据存储格式,适用于构建批流一体的数据仓库。它支持 ACID 事务,确保数据一致性;能自动处理数据模式变更,简化开发流程。本文将分四步介绍如何使用 Delta Lake 实现批流一体的数据仓库:配置环境、创建 Delta Lake 表、执行批处理与流处理操作。通过示例代码展示其强大功能,适用于电商等多种场景下的数据整合与实时分析。
53 2
|
大数据 关系型数据库 数据处理
传统数仓和大数据数仓的区别是什么?
传统数仓和大数据数仓的区别是什么?
|
存储 SQL 机器学习/深度学习
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门
|
存储 SQL 前端开发
基于分布式关系型数据库,实现轻松应对百亿级数据分析场景解决方案
MyCat是什么? 从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库读写分离,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。也可以指定多个写库多个读库。 MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库
基于分布式关系型数据库,实现轻松应对百亿级数据分析场景解决方案
|
监控 NoSQL 大数据
NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎
NoSQL最早起源于1998年,但从2009年开始,NoSQL真正开始逐渐兴起和发展。回望历史应该说NoSQL数据库的兴起,完全是十年来伴随互联网技术,大数据数据的兴起和发展,NoSQL在面临大数据场景下相对于关系型数据库运用,这一概念无疑是一种全新思维的注入。
38457 1
|
存储 分布式计算 大数据
对比解读五种主流大数据架构的数据分析能力
数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的结果对决策、对业务发展有着举足轻重的作用。
16638 0
下一篇
无影云桌面