注意:本文结合了本人对Hadoop生态和Spark的理解,阅读本文需要对传统的大数据组件有基本的认识和了解。本文不具备权威性,若要准确地了解阿里云大数据组件的特性请直接查看阿里云帮助文档。
目录
阿里云大数据组件的基本介绍
1 MaxCompute
1.1 简介
1.2 分布式
1.3 计算模型
1.4 系统架构
1.5 数据通道
2 Tunnel
2.1 场景
2.2 命令
3 DataHub
3.1 简介
3.2 功能图
3.3 插件支持
3.4 应用场景
4 DataWorks
4.1 简介
4.2 功能
5 RDS
5.1 简介
6 DRDS
6.1 改名升级
6.2 架构
6.3 内核架构
6.4 应用场景
7 ADB
7.1 简介
7.2 应用场景
8 DMS
8.1 简介
8.2 功能
9 OSS
9.1 简介
9.2 应用场景
10 Table Store
10.1 简介
10.2 应用场景
11 最后总结
MaxCompute大数据计算服务,原名为ODPS(Open Data Processing Service),为阿里云的数据仓库解决方案,提供大数据量(百TB、PB、EB)的结构化数据的存储和计算服务。
总结:像 Hadoop 里面的 HDFS + MapReduce。
MaxCompute为实现超大数据量的存储以及计算性能,它底层采用分布式存储以及分布式计算引擎。
总结:基本所有的大数据组件都是分布式的,这一点没啥好说。
MaxCompute支持SQL、MapReduce、UDF(Java/Python)、Graph、基于DAG的处理、交互式、内存计算、机器学习等计算类型及MPI迭代类算法。
总结:SQL、MapReduce、UDF(Java/Python)这三点是像 Hive + Hadoop 的 MapReduce,没什么好说的,而 Graph 图计算、基于DAG的处理、内存计算、机器学习等计算类型及MPI迭代类算法,这几点 Spark 中也有类似的功能,总体来说支持的计算模型非常全面,融合了 Hadoop 和 Spark 的计算模型。
总结:这个图没什么好说的,只画出了MaxCompute的一些接口、计算模型和功能,有点乱,没有涉及MaxCompute的底层设计。
首先我们要知道数据通道是干嘛的?为什么需要数据通道?
MaxCompute主要的功能是存储以及计算,原始的数据不会直接在MaxCompute中产生,需要从其他的数据库或者导入数据文件到MaxCompute中才可以进行下一步的操作,而负责采集和传输数据的组件在阿里云被称为数据通道,原始数据到MaxCompute的流向是这样的:原始数据 -> 数据通道 -> MaxCompute。
MaxCompute支持的数据通道有两个,分别是Tunnel(批量)和DataHub(实时),下面分开介绍。
Tunnel
Tunnel提供批量数据传输服务,提供高并发的离线数据上传下载服务。支持每天TB/PB级别的数据导入导出,特别适合于全量数据或历史数据的批量导入。Tunnel为您提供Java编程接口,并且可以在MaxCompute的客户端工具中,提供对应的命令实现本地文件与服务数据的互通。
总结:Tunnel适合离线的数据量大的场景。
DataHub
DataHub是针对实时数据上传场景而设计的,它具有延迟低的特点,适用于增量数据的导入。DataHub还支持多种数据传输插件,例如Logstash、Flume、Fluentd、Sqoop等,同时支持日志服务Log Service中的投递日志到MaxCompute,进而使用DataWorks进行日志分析和挖掘。
总结:DataHub适合实时、增量数据导入的场景,功能类似于Kafka。
MaxCompute基本介绍总结:
MaxCompute提供分布式的存储以及计算服务,它融合了HDFS、MapReduce、Hive以及Spark的特性,支持的计算模型非常全面。
由于架构与Hadoop类似,响应速度较慢,不能用于流式数据的实时处理,主要应用于离线数据处理以及存储以及机器学习模型的训练等场景。
MaxCompute需要从其他的数据库或者文件系统中导入数据,这就需要用到数据通道,MaxCompute支持的数据通道有两个,Tunnel和DataHub,其中Tunnel用于离线的,数据量大的场景,DataHub适用于实时的,增量的场景。
还有一个与MaxCompute关系非常紧密的组件叫DataWorks,这个组件为MaxCompute提供可视化的一站式的数据同步、业务流程设计、数据开发、管理和运维功能。其实DataWorks相当于阿里云大数据的PaaS平台,由于DataWorks不属于MaxCompute中的组件所以会分开进行介绍。
上面介绍MaxCompute的时候已经提到了,Tunnel是MaxCompute中的数据通道,主要用于离线场景的数据传输。
下面来介绍一下Tunnel的命令以及支持什么类型的数据。
Tunnel有Upload(上传)、Download(下载)、Resume(续传)、Show(显示历史任务信息)、Purge(清理session目录)、help(获取帮助信息)。
Upload:上传本地数据至MaxCompute表中。支持文件或目录(指一级目录)的上传,每一次上传只支持数据上传到一张表或表的一个分区。分区表一定要指定上传的分区,多级分区一定要指定到末级分区。
Download:下载MaxCompute表或指定Instance执行结果至本地。只支持下载到单个文件,每一次下载只支持下载一张表或一个分区到一个文件。分区表一定要指定下载的分区,多级分区一定要指定到末级分区。
Resume:因为网络或Tunnel服务的原因造成上传出错,可以通过Resume
命令对文件或目录进行续传。可以继续上一次的数据上传操作,但Resume命令暂时不支持下载操作。
Show:显示历史任务信息。
Purge:清理session目录,默认清理3天内的日志。
help:获取帮助信息,每个命令和选择支持短命令格式。
DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布 (Publish),订阅 (Subscribe)和分发功能。
以下是整体功能图。
这个功能图最显眼的是最底下的飞天分布式平台,它是阿里云大数据平台的基础,飞天分布式平台是类似于Hadoop生态的一个平台,底层由女娲(Nuwa)高可用协调服务(Coordination Service)、夸父(Kuafu)远程过程调用、钟馗(Zhongkui)安全管理、盘古(Pangu)分布式文件系统、伏羲(Fuxi)资源管理和任务调度、神农(Shennong)集群监控、大禹(Dayu)集群部署,这里不展开介绍。
DataHub还支持多种数据传输插件,例如Logstash、Flume、Fluentd、Sqoop等,同时支持日志服务Log Service中的投递日志到MaxCompute。
应用场景这里官方文档描述得非常笼统,以下是个人的一些理解。
DataHub服务基于阿里云自研的飞天平台,具有高可用,低延迟,高可扩展,高吞吐的特点。DataHub与阿里云流计算引擎StreamCompute无缝连接,用户可以轻松使用SQL进行流数据分析。
DataHub服务也提供分发流式数据到各种云产品的功能,目前支持分发到MaxCompute(原ODPS),OSS等。
结合上图,我们可以看到DataHub可以订阅网站日志等数据发布到ODPS、ADS、Stream Compute或第三方服务上,本质上就是一个类似于Kafka的消息队列,主要用途是可以同时接入多种数据源,然后配合其他组件进行实时数据清洗和分析或者搭建实时数据仓库。
实时通道
实时数据清洗和分析
实时数据仓库
总结:DataHub服务基于阿里云自研的飞天平台,功能类似于Kafka,主要的功能是增量采集数据,主要应用场景是实时数据传输、实时分析系统、实时数仓等。
到目前为止提及的都是MaxCompute的组件,下面介绍以下DataWorks,阿里云非常非常重要的PaaS平台。
DataWorks(数据工场,原大数据开发套件)是阿里云重要的PaaS平台产品,为您提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面
DataWorks支持多种计算和存储引擎服务,包括离线计算MaxCompute、开源大数据引擎E-MapReduce、实时计算(基于Flink)、机器学习PAI、图计算服务Graph Compute和交互式分析服务等,并且支持用户自定义接入计算和存储服务。
可以使用DataWorks,对数据进行传输、转换和集成等操作,从不同的数据存储引入数据,并进行转化和开发,最后将处理好的数据同步至其它数据系统。
全面托管的调度
DataWorks提供可视化的代码开发、工作流设计器页面,无需搭配任何开发工具,简单拖拽和开发,即可完成复杂的数据分析任务。详情请参见界面功能点介绍。
只要有浏览器有网络,您即可随时随地进行开发工作。
运维中心提供可视化的任务监控管理工具,支持以DAG图的形式展示任务运行时的全局情况,详情请参见运维中心。
您可以方便地配置各类报警方式,任务发生错误可及时通知相关人员,保证业务正常运行。详情请参见智能监控。
总结:DataWorks一个PaaS平台,个人认为PaaS平台的核心功能是:可视化操作、租户管理、数据集成、调度配置和监控警告。DataWorks不负责数据的存储和计算,仅负责对多种数据源的接入配置、任务流程的配置、调度配置及程序监控。
阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
总结:为多种传统关系型数据库提供可弹性伸缩的在线数据库服务
分布式关系型数据库服务DRDS目前已品牌升级至云原生分布式数据库PolarDB-X,PolarDB-X融合分布式SQL引擎DRDS与分布式自研存储X-DB,专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等数据库瓶颈问题。
PolarDB-X本质上就是把传统的数据库拆分,架构相对简单,我们直接从架构开始分析。
PolarDB-X在业务架构体系中所处的位置如下图所示。
这个图有两个很重要的关键字OLTP和OLAP,我们可以看到PolarDB-X是被划为OLTP数据库,下面我们偏下题,先来说一下什么是OLTP数据库,什么是OLAP数据库。
OLTP(On-Line Transaction Processing)即联机事务处理,就是我们经常说的关系数据库,意即记录即时的增、删、改、查,就是我们经常应用的东西,这是数据库的基础。
OLAP(On-Line Analytical Processing)即联机分析处理,是数据仓库的核心部心,所谓数据仓库是对于大量已经由OLTP形成的数据的一种分析型的数据库,用于处理商业智能、决策支持等重要的决策信息。数据仓库是在数据库应用到一定程序之后而对历史数据的加工与分析,是处理两种不同用途的工具而已。
联机分析处理主要通过多维的方式对数据进行分析、查询和报表。它不同于传统的联机事物处理(OLTP)应用。OLTP应用主要是用来完成用户的事务处理,如民航订票系统、银行储蓄系统等,通常要进行大量的更新操作,同时对响应时间要求比较高。而OLAP应用主要是对用户当前及历史数据进行分析,辅助领导决 策。其典型的应用有对银行信用卡风险的分析与预测、公司市场营销策略的制定等,主要是进行大量的查询操作,对时间的要求不太严格。
目前常见的OLAP主要有基于多维数据库的MOLAP(Multidimensional OLAP)、基于关系数据库的ROLAP(Relational OLAP)和基于混合数据库HOLAP(Hybrid OLAP)。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以与数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
名称 | 描述 | 细节数据存储位置 | 聚合后的数据存储位置 |
ROLAP(Relational OLAP) | 基于关系数据库的OLAP实现 | 关系型数据库 | 关系型数据库 |
MOLAP(Multidimensional OLAP) | 基于多维数据组织的OLAP实现 | 数据立方体 | 数据立方体 |
HOLAP(Hybrid OLAP) | 基于混合数据组织的OLAP实现 | 关系型数据库 | 数据立方体 |
PolarDB-X提供1.0中间件形态,以及2.0一体化形态。
PolarDB-X 1.0中间件形态由计算层DRDS实例与存储层私有定制RDS实例组成,通过挂载多个MySQL进行分库分表水平拆分。
PolarDB-X 2.0一体化形态由多个节点构成,实例内部署多个节点进行水平扩展,每个节点闭环整合计算资源与存储资源,运维管理更加便利。
如同大多数传统单机关系型数据库,PolarDB-X分为网络层、协议层、SQL解析层、优化层和执行层,其中优化层包含逻辑优化和物理优化,执行层包含单机两阶段执行、单机并行执行和多机并行执行,应用了多种传统单机数据库优化和执行技术。
PolarDB-X非常适合面向拥有超高并发,大规模数据存储的互联网在线事务类业务。
总结:PolarDB-X(原名DRDS)是OLTP数据库,擅长处理事务类业务。
如果没记错的话ADB以前的名字叫做ADS..
云原生数据仓库AnalyticDB MySQL版(简称ADB,原分析型数据库MySQL版),是阿里巴巴自主研发的海量数据实时高并发在线分析云计算服务,可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。
在业务系统中,我们通常使用的是OLTP(On-Line Transaction Processing)数据存储,例如MySQL和PostgreSQL等。上述关系数据库系统擅长事务处理,能够很好的支持频繁数据插入和修改。一旦需要计算的数据量过大,例如数千万甚至数十亿条,或者需要进行非常复杂的计算,此时OLTP数据库系统便力不从心了。这个时候,我们便需要OLAP系统来进行处理。
云原生数据仓库MySQL版(简称ADB MySQL版,原AnalyticDB for MySQL)是云端托管的PB级高并发实时数据仓库,是专注于服务OLAP领域的数据仓库。在数据存储模型上,采用关系模型进行数据存储,可以使用SQL进行自由灵活的计算分析,无需预先建模。利用云端的无缝伸缩能力,ADB MySQL版在处理百亿条甚至更多量级的数据时真正实现毫秒级计算。
ADB MySQL版支持通过SQL来构建关系型数据仓库。具有管理简单、节点数量伸缩方便、灵活升降实例规格等特点,而且支持丰富的可视化工具以及ETL软件,极大的降低了企业建设数据化的门槛。
ADB MySQL版为精细化运营而生,实时洞现数据价值,持续推进企业数据化变革转型。
总结:ADB是OLAP数据库,擅长大数据量的实时查询,不擅长事务。
7.2.1 经典实时数仓场景
用户可以通过数据传输DTS将关系型数据库的业务表实时镜像一份到分析型数据库MySQL版,然后通过Quick BI拖拽式轻松生成报表,或者通过DataV快速定制您的企业实时数据大屏。
7.2.2 实时计算清洗回流场景
用户通常会将流计算清洗结果数据回流至MySQL等单机数据库,作为报表库来查询使用。当单机数据量或者单表数据量非常大时,传统的关系型数据库会出现报表查询卡顿的问题。分析型数据库MySQL版能够很好地解决卡顿问题,支持实时计算单表数据数高达千亿条,快速查询分析PB级实时报表,无需分库分表。
7.2.3 ETL清洗回流场景
大数据离线计算平台MaxCompute、SparkSQL、Hadoop、E-MapReduce等平台产品在清洗完数据后,由于报表查询条件依然很复杂,运营报表需要钻取,而单机数据库受性能影响,无法完成数据查询工作。此时需要一个像分析型数据库MySQL版这样非常强大的报表查询引擎完成数据查询工作。
常见的数据回流工具有数据集成和业内开源产品Datax。
总结:常用于实时报表以及大屏展示的场景。
数据管理DMS支持统一管理MySQL、SQL Server、PostgreSQL、PolarDB、DRDS、OceanBase、Oracle等关系型数据库,AnalyticDB、Data Lake Analytics、ClickHouse等OLAP数据库,MongoDB、Redis等NoSQL数据库。它是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪于一体的数据管理服务。您可以使用数据管理服务实现易用的数据库管理入口,让数据更安全、管理更高效、数据价值更清晰。
总结:DMS提供多种数据库,包括关系型数据库、OLAP数据库及NoSQL数据库的权限、账号等集中管理。
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。
OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)作为不经常访问数据的存储方式。
9.1 图片和音视频等应用的海量存储
OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。OSS支持流式写入和文件写入两种方式。
9.2 网页或者移动应用的静态和动态资源分离
利用海量互联网带宽,OSS可以实现海量数据的互联网并发下载。OSS提供原生的传输加速功能,支持上传加速、下载加速,提升跨国、跨洋数据上传、下载的体验。同时,OSS也可以配合CDN产品,提供静态内容存储、分发到边缘节点的解决方案。利用CDN边缘节点缓存的数据,提升同一个文件,被同一地区客户大量重复并发下载的体验。
9.3 云端数据处理
上传文件到OSS后,可以配合媒体处理服务和图片处理服务进行云端的数据处理。
总结:OSS擅长存储和处理视频和图片内容
注意,表格存储(Tablestore)以前被叫做OTS,不知道为什么阿里云的组件改名这么频繁..
表格存储(Tablestore)是阿里云自研的面向海量结构化数据存储的Serverless NoSQL多模型数据库,被广泛用于社交、物联网、人工智能、元数据和大数据等业务场景。提供兼容HBase的WideColumn模型、消息模型Timeline以及时空模型Timestream,可提供PB级存储、千万TPS以及毫秒级延迟的服务能力。
总结:没啥好说的,和HBase差不多
10.2.1 元数据
用户存储海量的文档、媒体文件等数据的同时,对文件元数据的存储和分析不可或缺。此外,电商的订单、银行流水、运营商话费账单也需要存储及分析大量的元数据。表格存储单表支持PB级存储、千万QPS,以及多种索引方式(全局二级索引、全文索引、倒排索引以及时空索引),满足不同场景在线的不同的查询需求,可以帮助您轻松实现高效的元数据管理。
10.2.2 消息数据
表格存储自研的Timeline模型主要用于消息数据,能够抽象出支撑海量Topic的轻量级消息队列,可以存储大量社交信息,包括IM聊天,以及评论、跟帖和点赞等Feed流信息,接口简单易用。目前表格存储Timeline模型已被应用在众多IM系统中,例如支撑钉钉海量消息同步等。 此外,表格存储采用按量付费,能够以较低的成本满足访问波动明显、高并发、低延时的需求。
10.2.3 轨迹溯源
表格存储提供了面向轨迹类场景的Timestream模型,可提供PB级存储、千万TPS以及毫秒级延迟的服务能力、以及多种索引方式(全局二级索引、全文索引、倒排索引以及时空索引)。使用表格存储Timestream模型,您可以轻松管理、分析跑步、骑行、健走、外卖等轨迹数据。
10.2.4 科学大数据
多维网格数据是一种科学大数据,在地球科学领域(气象、海洋、地质、地形等)应用非常广泛,且数据规模也越来越大。相关的科学工作者有快速浏览数据的需求以及在线查询的需求,查询种类丰富、延迟要求高。表格存储是一款阿里云自研的分布式NoSQL服务,可以提供超大规模的存储容量,支撑超大规模的并发访问和低延迟的性能,可以轻松解决科学大数据的海量存储规模和查询性能问题。
10.2.5 互联网大数据
热点新闻及娱乐八卦可以在短短数分钟内,有数万计转发,数百万的阅读,如何能够实时的把握民情并作出对应的处理对很多企业来说都是至关重要的。此外,商品在各类电商平台的订单量,用户的购买评论也都对后续的消费者产生很大的影响。商家的产品设计者需要汇总统计和分析各类平台的数据做为依据,决定后续的产品发展,公司的公关和市场部门也需要根据舆情作出相应的及时处理。表格存储单表提供PB级存储、千万QPS,以及多种索引方式,可以帮助您轻松实现百亿级互联网舆情存储及分析。
10.2.6 物联网
表格存储单表提供PB级数据存储规模,无需分库分表,同时支持千万QPS,可以轻松满足IoT设备、监控系统等时序数据的存储需求,大数据分析SQL直读以及高效的增量流式读接口让数据轻松完成离线分析与实时流计算。
总结:表格存储(Tablestore)也叫OTS,可以看作是阿里云版本的HBase。表格存储主要应用于需要存储和分析历史数据的场景。
阿里云提供的大数据服务可谓是五花八门,基本涵盖了所有的大数据场景,而且阿里云有DataWorks这个大数据PaaS平台,可以一站式地装载数据,清洗数据,转换分析数据以及数据最终存储与展示。
其中包含了很多与传统的大数据平台相似的组件,飞天分布式平台可以看作是Hadoop的底层,盘古看作是阿里云的HDFS,伏羲可以看作是阿里云的YARN,MaxCompute可以看作是HDFS+MapReduce,StreamCompute看作Flink,数据集成看作是Kettle等等。
通过对阿里云组件的了解加深了我对架构的认识,视野不仅仅局限于Hadoop生态以及Spark。
阿里云的整套生态已经完全覆盖一般企业的大数据存储与分析需求,相信随着阿里云的发展会有更多的中小型公司为省去搭建和管理集群的成本而选择使用阿里云作为数据存储以及数据分析以及数据可视化的平台。
参考资料:
https://yq.aliyun.com/articles/60463?spm=a2c4e.11153940.0.0.763965d6EAEX6i
https://www.cnblogs.com/daichangya/p/12959415.html
https://help.aliyun.com/document_detail/27800.html
https://help.aliyun.com/document_detail/47439.html?spm=a2c4g.11186623.6.542.249f7982KQr2Lg
https://help.aliyun.com/document_detail/158770.html?spm=a2c4g.11186623.6.543.3d401a1245YmwP
https://help.aliyun.com/document_detail/73015.html?spm=a2c4g.11174283.2.2.18552b65FsFvfx
https://help.aliyun.com/document_detail/26092.html?spm=a2c4g.11174283.2.5.43f45b83d0cdh6
http://blog.sina.com.cn/s/blog_9d492b590102ve0r.html
https://blog.csdn.net/huanruiqi/article/details/51272789
https://help.aliyun.com/document_detail/93776.html?spm=a2c4g.11186623.6.545.1d11742dU02dyg
https://help.aliyun.com/document_detail/47550.html?spm=a2c4g.11174283.2.5.b17816e9q00eqW