MaxComputer简介
大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的EB级数据仓库解决方案。
分布式的计算模型对数据分析人员要求较高且不易维护。数据分析人员不仅需要了解业务需求,同时还需要熟悉底层分布式计算模型。MaxCompute为您提供完善的数据导入方案以及多种经典的分布式计算模型,您可以不必关心分布式计算和维护细节,便可轻松完成大数据分析。
DataWorks和MaxCompute关系紧密:DataWorks为MaxCompute提供一站式的数据同步、业务流程设计、数据开发、管理和运维功能。
目前阿里有一个自带方法论而且开发过程十分成熟的开发框架就是Dataphin
产品优势
大规模计算存储
MaxCompute适用于 100GB 以上规模的存储及计算需求,最大可达EB级别。(感觉这里EB级别有点不真实)
多种计算模型
MaxCompute支持SQL、MapReduce、UDF(Java/Python)、Graph、基于DAG的处理、交互式、内存计算、机器学习等计算类型及MPI迭代类算法。简化了企业大数据平台的应用架构。
强数据安全
MaxCompute已稳定支撑阿里全部数据仓库业务9年以上,提供多层沙箱防护、细粒度权限管理及监控。
MaxCompute通过了独立的第三方审计师针对阿里云对AICPA可信服务标准中关于安全性、可用性和机密性原则符合性描述的审计。审计报告请参见SOC 3报告。
低成本
与企业自建专有云相比,MaxCompute的计算存储更高效,可以降低30%~50%的采购成本。
免运维
基于MaxCompute的Serverless无服务器的设计思路,用户只需关心作业和数据,而无需关心底层分布式架构及运维。
极致弹性扩展
MaxCompute提供按量付费模式下的作业级别的资源管理。用户无需受困于资源扩展难题,系统会自动扩展计算、存储、网络等资源,最大程度地节省成本。
系统架构
MaxCompute以数据为中心,内建多种计算模型和服务接口,满足广泛的数据分析需求。一切服务“开通”即用,更好地赋能数据业务。
功能概述
数据通道
Tunnel是MaxCompute为您提供的数据传输服务,提供高并发的离线数据上传下载服务。支持每天TB/PB级别的数据导入导出,特别适合于全量数据或历史数据的批量导入。Tunnel为您提供Java编程接口,并且在MaxCompute的客户端工具中,提供对应的命令实现本地文件与服务数据的互通。
针对实时数据上传的场景,MaxCompute提供了延迟低、使用方便的DataHub服务,特别适用于增量数据的导入。DataHub还支持多种数据传输插件,例如Logstash、Flume、Fluentd、Sqoop等,同时支持日志服务Log Service中的投递日志到MaxCompute,进而使用DataWorks进行日志分析和挖掘。
计算及分析任务
MaxCompute支持多种计算模型,详情如下:
SQL:MaxCompute以表的形式存储数据,支持多种数据类型,并对外提供SQL查询功能。您可以将MaxCompute作为传统的数据库软件操作,但其却能处理TB、PB级别的海量数据。
MaxCompute SQL不支持事务、索引,也不支持Update或Delete操作。
MaxCompute的SQL语法与Oracle、MySQL有一定差别,您无法将其他数据库中的SQL语句无缝迁移至MaxCompute中。详情请参见与其他SQL语法的差异。
MaxCompute主要用于100GB以上规模的数据计算,因此MaxCompute SQL最快支持在分钟或秒钟级别完成查询返回结果,但无法在毫秒级别返回结果。
MaxCompute SQL的优点是学习成本低,您不需要了解复杂的分布式计算概念。如果您具备数据库操作经验,便可快速熟悉MaxCompute SQL的使用。
UDF:即用户自定义函数。
MaxCompute提供了很多内建函数来满足您的计算需求,同时您还可以通过创建自定义函数来满足不同的计算需求。
MapReduce:MaxCompute MapReduce是MaxCompute提供的Java MapReduce编程模型,它可以简化开发流程,更为高效。使用MaxCompute MapReduce,需要对分布式计算概念有基本了解,并有相对应的编程经验。MaxCompute MapReduce为您提供Java编程接口。
Graph:MaxCompute提供的Graph功能是一套面向迭代的图计算处理框架。图计算作业使用图进行建模,图由点 (Vertex)和边(Edge)组成,点和边包含权值(Value)。通过迭代对图进行编辑、演化,最终求解出结果,典型应用:PageRank、单源最短距离算法 、K-均值聚类算法等。
Spark on MaxCompute:Spark on MaxCompute是阿里云开发的大数据分析引擎,为您提供大数据处理能力。详情请参见Spark概述。
SDK
SDK是MaxCompute提供给开发者的工具包,当前支持Java SDK及Python SDK。
安全
MaxCompute提供了功能强大的安全服务,为您的数据安全提供保护,详情请参见安全指南。
MaxCompute与DataWorks
DataWorks是基于MaxCompute计算和存储,提供工作流可视化开发、调度运维托管的一站式海量数据离线加工分析平台。在数加(一站式大数据平台)中,DataWorks控制台即为MaxCompute控制台。
MaxCompute和DataWorks一起向用户提供完善的ETL和数仓管理能力,以及SQL、MR、Graph等多种经典的分布式计算模型,能够更快速地解决用户海量数据计算问题,有效降低企业成本,保障数据安全。更多使用说明请参见DataWorks什么是DataWorks。
您可以将DataWorks理解成MaxCompute的一种Web客户端。MaxCompute是DataWorks的一种计算引擎。
MaxCompute与数据集成
MaxCompute可以通过数据集成加载不同数据源(例如:MySQL数据库等)数据,同样也可以通过数据集成把MaxCompute的数据导出到各种业务数据库。
数据集成功能已经集成到DataWorks作为数据同步任务进行配置、运行。您可直接在DataWorks上配置MaxCompute数据源,再配置读取MaxCompute表或者写入MaxCompute表任务,数据的导入和导出整个过程只需在一个平台上进行操作。
MaxCompute与机器学习PAI
MaxCompute与QuickBI
数据在MaxCompute进行加工处理后,将Project添加为QuickBI数据源,即可在QuickBI页面对MaxCompute表数据进行报表制作,实现数据可视化分析。
MaxCompute与AnalyticDB for MySQL
AnalyticDB for MySQL是海量数据实时高并发在线分析(Realtime OLAP)的云计算服务,与MaxCompute结合实现大数据驱动业务系统的场景。通过MaxCompute离线计算挖掘,产出高质量数据后,导入分析型数据库,供业务系统调用分析。
将MaxCompute数据导入到AnalyticDB for MySQL,有以下两种方式:
通过DMS for AnalyticDB for MySQL的导入导出功能进行配置。
通过DataWorks配置数据同步任务,MaxCompute Reader和AnalyticDB for MySQL 2.0 Writer。
MaxCompute与推荐引擎
推荐引擎是在阿里云计算环境下建立的一套推荐服务框架,推荐服务通常由三部分组成:日志采集、推荐计算和产品对接,而推荐计算的离线计算输入和输出都是MaxCompute表。
在推荐引擎控制台的资源管理页面,通过添加云计算资源的方式,将MaxCompute项目添加为推荐引擎的计算资源。
MaxCompute与表格存储
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,MaxCompute2.0支持直接通过外部表方式访问表格存储中的表数据并进行处理,详情请参见访问OTS非结构化数据。
MaxCompute与OSS
对象存储OSS是海量、安全、低成本、高可靠的云存储服务,MaxCompute2.0支持直接通过外部表方式访问对象存储中的表数据并进行处理,详情请参见访问OSS非结构化数据。
MaxCompute与OpenSearch
阿里云开放搜索OpenSearch是一款自主研发的大规模分布式搜索引擎平台。数据通过MaxCompute进行计算处理后,可以在OpenSearch平台上通过添加数据源的方式将MaxCompute数据接入。
MaxCompute与移动数据分析
移动数据分析(Mobile Analytics)是阿里云推出的一款移动APP数据统计分析产品,为开发者提供一站式数据化运营服务。当移动数据分析自带的基础分析报表不能满足APP开发者的个性化需求时,APP开发者可以将数据一键同步至MaxCompute,结合自己的业务需求来进一步加工、分析自己的数据。
MaxCompute与日志服务
日志服务能快速完成数据采集、消费、投递以及查询分析等操作。日志数据采集后,需要更多的个性化分析、挖掘,您可以通过DataWorks的数据集成将日志服务数据同步到MaxCompute,通过MaxCompute对日志数据进行个性化、深层次的数据分析、挖掘。
如果您是MaxCompute初学者
如果您是初学者,建议您从以下模块开始学习:
产品简介:MaxCompute产品的总体介绍以及包含的主要功能。通过阅读该章节,您会对MaxCompute有一个总体的认识。
快速开始:通过示例,指导您如何进行申请账号、安装客户端、创建表、授权、导入导出数据、运行SQL任务、运行UDF/MapReduce程序等操作。
MaxCompute术语表及常用命令列表:MaxCompute的基本概念及常用命令介绍。您可以进一步熟悉如何操作MaxCompute。
工具:在分析数据之前,您需要掌握MaxCompute常用工具的下载、配置以及使用方法。
我们为您提供客户端工具,您可以通过此工具对MaxCompute进行操作。
配置Endpoint:MaxCompute Region的开通情况和连接方式,对您在与其他云产品(ECS、TableStore、OSS)互访场景中遇到的网络连通性和下载数据收费等问题进行说明。
建议您熟悉以上的模块后,再有针对性地对其他模块进行深入学习。
如果您是数据分析师
如果您是数据分析师,建议您熟读SQL模块的内容。您可以查询并分析存储在MaxCompute上的大规模数据。包含的主要功能如下:
支持DDL语句。您可以通过CREATE、DROP和ALTER语句对表和分区进行管理。
您可以通过SELECT选择表中的记录,通过WHERE语句查看满足条件的记录,实现过滤功能。
您可以通过等值连接JOIN实现两张表的关联。
您可以通过对某些列GROUP BY,实现聚合操作。
您可以通过INSERT OVERWRITE/INTO把结果记录插入到另一张表中。
您可以通过内置函数和自定义函数(UDF)来实现一系列的计算。
支持收集表的统计信息和设置表生命周期。
支持正则表达式。
如果您拥有一定开发经验
如果您拥有一定的开发经验,了解分布式概念,并且针对某些无法用SQL来实现数据分析,推荐您学习MaxCompute更高级的功能模块。如下所示:
MapReduce:MaxCompute提供的Java MapReduce编程模型。您可以使用MapReduce提供的接口(Java API)编写MapReduce程序,处理MaxCompute中的数据。
Graph:一套面向迭代的图计算处理框架。使用图进行建模,图由点(Vertex)和边(Edge)组成,点和边包含权值(Value)。通过迭代对图进行编辑、演化,最终得出结果。
Tunnel:您可以使用Tunnel服务向MaxCompute批量上传离线数据或者从MaxCompute下载离线数据。
SDK:
Java SDK:向开发者提供Java接口。
Python SDK:向开发者提供Python接口。