大数据时代技术架构

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 1. 概述当前大数据已经渗透到每个行业和领域,成为了重要的生产因素。在大数据环境下,数据是海量的,且呈爆发式增长,数据类型复杂多样,除结构化数据外,还有大量半结构化和非结构化数据。大数据应用需求也很复杂,包括复杂多表关联查询,即席查询,离线数据批量处理等。这种形势给构建大数据处理的通用平台带来了挑战。2. 传统数据库构建大数据平台的不足传统事务型数据库是针对事务型处理设计的,采用行存储和Shared Disk架构,硬件方面采用小型机+磁盘阵列的配置。而面对大数据的分析处理型应用,传统的数据库在处理海量数据方面表现出明显的不足,主要表现在如下方面:Ÿ传统的Shared Disk架
  1. 概述

当前大数据已经渗透到每个行业和领域,成为了重要的生产因素。在大数据环境下,数据是海量的,且呈爆发式增长,数据类型复杂多样,除结构化数据外,还有大量半结构化和非结构化数据。大数据应用需求也很复杂,包括复杂多表关联查询,即席查询,离线数据批量处理等。这种形势给构建大数据处理的通用平台带来了挑战。

  1. 传统数据库构建大数据平台的不足

传统事务型数据库是针对事务型处理设计的,采用行存储和Shared Disk架构,硬件方面采用小型机+磁盘阵列的配置。而面对大数据的分析处理型应用,传统的数据库在处理海量数据方面表现出明显的不足,主要表现在如下方面:

传统的Shared Disk架构存在I/O瓶颈,扩展能力不足,无法支撑PB级别数据的存储和计算,对于海量非结构化数据处理也很有限;

传统数据库基于行存储方式适用于事务型应用,需要大量读取冗余数据而增加磁盘I/O,在分析类型应用效率低下;

传统数据库索引针对于每一行建立,检索速度慢,需要手工建立,不便于维护,且极大的影响数据的入库效率;

采用小型机+磁盘阵列的硬件平台成本较高,扩容成本大,且扩容能力有限;

传统的数据库系统采用关系型数据库,主要用于对结构化数据的处理,不支持对半结构化和非结构化数据的存储和处理,无法满足海量半结构化、非结构化的存储、查询、分析和处理的需求。

  1. 大数据分析平台技术选型

针对传统数据库处理大数据瓶颈以及大数据的应用需求,衍生了多项大数据技术。当前市面上有两种主流的处理架构:MPP数据库和Hadoop技术。

3.1.MPP数据库

MPP数据库是新型数据库类型,采用Shared Nothing+MPP架构,通过列存储、高效压缩、粗粒度智能索引等多项大数据处理技术,结合MPP架构高效的分布式计算模式,完成对海量高密度结构化数据的分析类应用的支撑,运行环境多为低成本PC Server,具有高性能和高扩展性的特点。MPP数据库广泛应用到行业数据仓库和各类结构化数据分析领域。

MPP数据库可以有效支撑PB级别的结构化数据处理,它具有如下特点:

具备ACID特性:满足原子性、一致性等要求;

支持关系模型:基于关系模型设计;

使用SQL引擎:标准接口,开发效率高,应用迁移方便;

基于Share Nothing架构:可以横向扩展数百个节点,支撑PB级别的数据处理;

存储结构化数据,有明显的星型和雪花模型结构:便于进行OLAP分析、多维分析;

可基于开放的X86架构服务器部署:平台建设成本低;

MPP数据库擅长处理高价值密度的结构化数据,适合大规模的复杂分析,海量数据的查询、关联等场景,例如数据仓库、数据集市、企业级报表、统计分析、即席查询、多维分析等。

3.2.Hadoop技术

基于Hadoop生态的大数据技术主要针对非结构化数据的存储和计算、实时流处理等传统关系型数据库较难处理的数据和场景。Hadoop依托于开源社区的优势,以及相关技术的不断进步和迭代更新,可支撑对于非结构、半结构化数据处理、复杂的ETL流程、复杂的数据挖掘和计算模型。

Hadoop技术具有如下特点:

键值对存储方式:简单低耦合方式存储数据;

分布式文件系统:基于HDFS的分布式文件系统,具有明显的存储优势,可以存储海量的结构化、半结构化、非结构化数据;

MR/RDD:灵活的编程模式;

存储结构化、半结构化和非结构化数据:全量数据存储;

可基于开放的X86架构服务器部署:扩容成本低;

扩展性:可以扩展到上千节点;

3.3.两种技术对比

MPP数据库与Hadoop技术具有各自的优缺点和适用场景,二者之间的对比如下:

MPP数据库为Shared Nothing架构,对于JOIN或GROUP BY操作,执行计划可以优化为直接通过本地计算完成关联或分组,而不需要进行各节点间重分布数据,处理性能优越。Hadoop是基于HDFS文件存储,需要通过扫描来定位数据,同时在计算中会有大量的节点间数据搬运和排序操作,对于大表复杂关联及GROUP BY处理性能较低。

MPP数据库擅长处理高价值密度的结构化数据,而Hadoop的优势在于处理非结构化数据和流数据。

Hadoop对数据的操作模型,更适合于只支持一次写入多次读取,QQ号拍卖平台数据更新性能较低;MPP数据库基于关系模型,其存储结构和处理结构可以支持任意对数据集合的更新和删除。

对于小数据量,MPP数据库和Hadoop生态的Spark在运算关系型上没有太大差异,但对于100TB级以上的数据处理,MPP数据库充分利用其内存管理和CBO设计上的优势,有比较Spark更强的性能优势。但在关系型运算之外,Spark在数据挖掘算法,尤其在基于迭代的算法执行方面具有优势。

Hadoop生态的Spark处理性能高,但也只有在内存中处理才能保证高性能,一旦内存不足,数据就需要存回到HDFS中,性能将会发生很大的抖动。

Hadoop对SQL兼容性不好,且调优算法复杂多样。MPP 数据库是关系型数据库,本身支持SQL,且执行计划有多年的积累,便于进行高效的优化。

MPP数据库擅长SQL编程解决的问题。Hadoop的MapReduce及RDD编程模型比较灵活,可以处理部分SQL不能处理的问题,例如机器学习等。

Hadoop采用Java开发,在运行时依赖JAVA虚拟机,内存需求较大时容易出现大量的内存垃圾,影响任务执行效率。MPP数据库有完善的内存管理,保证内存和磁盘之间数据置换的平滑性

MPP数据库可以有效的采取基于代价的优化(CBO),根据内部数据字典作动态优化数据的分析和处理。

3.4.混搭方案

综上所述,在大数据处理中MPP数据库和Hadoop技术均有其各自的优劣势以及适用的场景,在实际应用中必须采用MPP数据库和Hadoop技术的混搭方案,这样才可以充分发挥各自的优势,实现功能互补,解决大数据的诸多复杂需求。对于大规模的复杂分析、即席查询、多表复杂关联等场景,由MPP数据库处理;而非结构化数据处理、流处理以及大规模批量复杂作业,则由Hadoop架构负责。MPP数据库和Hadoop技术的混搭方案可以实现对全量数据的处理,满足各行业对大数据的应用需求。

  1. 没有银弹

当前数据管理技术发展很快,供我们选择的技术种类繁多。而面临大数据平台技术选型时,很难说哪种技术更好,因此我们要摒弃一种技术支撑所有应用的幻想。需求是选型中最重要的因素。根据需求,选取最合适的技术,针对多类需求,选取多种技术混搭来满足。引用Fred Brooks先生的经典论述:真正的银弹并不存在。最新的未必是最好的,以开放的心态面对所有技术类型,取我所需,为我所用。毕竟能够满足需求的技术,才是最好的技术。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
26天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
81 1
|
30天前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
54 3
|
1月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
75 0
|
30天前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
23 9
|
26天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
41 1
|
1月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
48 3
|
29天前
|
存储 SQL 缓存
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
|
1月前
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
27 2
|
1月前
|
存储 消息中间件 druid
大数据-150 Apache Druid 安装部署 单机启动 系统架构
大数据-150 Apache Druid 安装部署 单机启动 系统架构
36 1
|
1月前
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
58 1