BigData:MaxCompute大数据计算服务(阿里巴巴开发/原ODPS/云计算分布式)的简介(基本概念/功能/流程图)、使用方法之详细攻略

目录

背景—传统分布式计算的弊端

MaxCompute(大数据计算服务)的简介

1、基本概念

2、MaxCompute使用流程图

3、MaxCompute能干什么—MaxCompute支持的功能

(1)、数据上传和下载通道

(2)、计算及分析任务

(3)、Spark on MaxCompute

(4)、ElasticSearch on MaxCompute

(5)、SDK

(6)、安全解决方案

MaxCompute(大数据计算服务)的使用方法

1、MaxCompute的SQL语法基本命令

(1)、创建表

(2)、获取表信息

(3)、删除表

2、SQL命令

(1)、Select语句

(2)、Insert语句

(3)、Join语句


背景—传统分布式计算的弊端

随着社会数据收集手段的不断丰富及完善,越来越多的行业数据被积累下来。数据规模已经增长到了传统软件行业无法承载的海量数据(百GB、TB、乃至PB)级别。 在分析海量数据场景下,由于单台服务器的处理能力限制,数据分析者通常采用分布式计算模式。但分布式的计算模型对数据分析人员的能力要求较高, 且不宜维护。使用分布式模型,数据分析人员不仅需要了解业务需求,同时还需要熟悉底层计算模型。

MaxCompute(大数据计算服务)的简介

MaxCompute是一款由中国阿里巴巴集团开发的大数据处理平台。MaxCompute最初于2009年由阿里巴巴旗下的数据技术团队提出,最初被称为ODPS(阿里巴巴云计算平台)。2014年,ODPS更名为MaxCompute,并于2015年正式推出。
     MaxCompute采用分布式计算技术和基于云计算的架构,可用于存储和处理大规模结构化和非结构化数据。MaxCompute还提供了一系列工具和算法,支持数据分析、机器学习、人工智能等领域的应用。MaxCompute是阿里云的核心产品之一,被广泛应用于电子商务、金融、物流等行业。
     大数据计算服务(MaxCompute)是阿里巴巴自主研发的海量数据处理平台,主要提供数据上传下载通道,提供SQLMapReduce等多种计算分析服务,同时还提供完善的安全解决方案。MaxCompute主要服务于批量结构化数据的存储计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。

1、基本概念

表中的分区Partition

为了提高处理效率,可以在创建表时指定表的分区(Partition),即指定表内的某几个字段作为分区列。在大多数情况下,用户可以将分区类比为文件系统下的目录。

MaxCompute将分区列的每个值作为一个分区(目录)。用户可以指定多级分区,即将表的多个字段作为表的分区,分区之间类似多级目录的关系。在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高处理效率,降低费用。

项目空间Project

项目空间(Project)是MaxCompute的基本组织单元,它类似于传统数据库的Database或Scheme的概念,是进行多用户隔离和访问控制的主要边界。

一个用户可以同时拥有多个项目空间的权限。通过安全授权,可以在一个项目空间中访问另一个项目空间中的对象,例如:表(Table)、资源(Resource)、函数(Function)、实例(Instance)。

自定义函数UDF

MaxCompute为用户提供了SQL计算功能,用户可以在MaxCompute SQL中使用系统的内建函数完成一定的计算和计数功能。但当内建函数无法满足要求时,用户可以使用MaxCompute提供的Java编程接口开发自定义函数(User Defined Function,以下简称UDF)。

自定义函数( UDF)又可以进一步分为标量值函数(UDF)、自定义聚合函数(UDAF)和自定义表值函数(UDTF)三种。 用户在开发完成UDF代码后,需要将代码编译成jar包,并将此jar包以jar资源的形式上传到 MaxCompute,最后在MaxCompute中注册此UDF。

在使用UDF时,只需要在SQL中指明UDF的函数名及输入参数即可,使用方式与MaxCompute提供的内建函数相同。

任务Task

任务(Task)是MaxCompute的基本计算单元。SQL及MapReduce功能都是通过任务(Task)完 成的。对于用户提交的大多数任务,特别是计算型任务(例如SQL DML语句、MapReduce等), MaxCompute会对其进行解析,得出任务的执行计划。 执行计划是由具有依赖关系的多个执行阶段(Stage)构成的。

目前,执行计划逻辑上可以被看做一个有向图,图中的点是执行阶段,各个执行阶段的依赖关系是图的边。MaxCompute会依照图(执行计划)中的依赖关系执行各个阶段。在同一个执行阶段内,会有多个进程,也称之为Worker,共同完成该执行阶段的计算工作。同一个执行阶段的不同Worker只是处理的数据不同,执行逻辑完全相同。

计算型任务在执行时,会被实例化,用户可以操作这个实例(Instance)的信息,例如:获取实例状态( Status Instance )、终止实例运行(Kill Instance )等。 另一方面,部分MaxCompute任务并不是计算型的任务(例如SQL中的DDL语句),这些任务本质上仅需要读取、修改MaxCompute中的元数据信息。因此,这些任务无法被解析出执行计划。

任务实例Instance 在MaxCompute中,部分任务(Task)在执行时会被实例化,以MaxCompute实例(下文简称实 例或 Instance)的形式存在。实例会经历运行(Running)及结束(Terminated)两个阶段。 运行阶段的状态为Running(运行中),而结束阶段的状态将会是Success(成功)、Failed(失 败)或Canceled(被取消)。用户可以根据运行任务时MaxCompute给出的实例ID查询、改变任务的状态,示例如下:

2、MaxCompute使用流程图

3、MaxCompute能干什么—MaxCompute支持的功能

MaxCompute的目的是为用户提供一种便捷的分析处理海量数据的手段。用户可以不必关心分布式计算细节,从而达到分析大数据的目的。MaxCompute已经在阿里巴巴集团内部得到大规模的应用,例如:大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。

(1)、数据上传和下载通道

- Tunnel:提供高并发的离线数据上传下载服务。用户可以使用Tunnel服务向MaxCompute
批量上传数据,或者将数据从MaxCompute下载到本地。Tunnel仅提供Java编程接口供用户
使用。
- DataHub:向用户提供数据的实时上传下载的功能。与Tunnel服务不同,通过DataHub上
传的数据会即刻在用户数据中体现。

(2)、计算及分析任务

●  SQL:MaxCompute只能以表的形式存储数据,并且对外提供了SQL查询功能。用户可以将MaxCompute作为传统的数据库软件操作,但其却能处理TB、PB级别的海量数据。需要注意,MaxCompute SQL不支持事务、索引及Update/Delete等操作。同时MaxCompute的SQL语法与Oracle、MySQL有一定差别,用户无法将其他数据库中的SQL语句无缝迁移到MaxCompute上来。此外,在使用方式上,MaxCompute SQL最快可以在分钟或者秒级别完成查询,无法在毫秒级别返回查询结果。MaxCompute SQL的优点体现在用户的学习成本低,用户不需要了解分布式概念,具备数据库操作经验的用户可以快速熟悉MaxCompute SQL的使用。

●  MapReduce:MapReduce最早是由Google提出的分布式数据处理模型,随后受到了业内的广泛关注,并被大量应用到各种商业场景中。使用MapReduce的用户需要对分布式概念有基本了解,并有对应的编程经验。MapReduce为用户提供Java编程接口。

●  Graph:MaxCompute提供的Graph功能是一套面向迭代的图计算处理框架。图计算作业使用图进行建模,图由点(Vertex)和边(Edge)组成,点和边包含权值(Value)。通过迭代对图进行编辑、演化,最终求解出结果,典型应用有:PageRank、单源最短距离算法、K- 均值聚类算法等。

●  访问并处理非结构化数据(融合计算场景):MaxCompute团队依托MaxCompute系统架构,引入非结构化数据处理框架,解决MaxComputeSQL面对MaxCompute表外的各种用户数据时(例如:OSS上的数据),需要首先通过各种工具导入MaxCompute表,才能在其上面进行计算,无法直接处理的问题。目前,MaxCompute支持通过创建外部表,对如下九种的数据源进行处理:
■ 内部数据源:OSS、TableStore、AnalyticDB、RDS、HDFS(内部)、TDDL。
■ 外部数据源:HDFS(开源)、MongoDB、Hbase。

●  访问并处理非结构化数据(内部):通过支持读写Volume,打通了MaxCompute系统内部存储的非结构化处理,解决了非结构化数据只能存储在外部存储系统的问题。

(3)、Spark on MaxCompute

Spark on MaxCompute是阿里云开发的大数据分析引擎,为阿里内部用户、政企客户提供大数据处理能力。详情请参见:Spark on MaxCompute。

(4)、ElasticSearch on MaxCompute

ElasticSearch on MaxCompute是阿里云开发的企业级海量数据检索系统,用于海量数据的全文检索,为政企用户提供近实时搜索性能的海量数据检索服务。详情请参见:ElasticSearch on MaxCompute。

(5)、SDK

提供给开发者的工具包,SDK的相关介绍请参见:Java SDK。

(6)、安全解决方案

MaxCompute提供了功能强大的安全服务,为用户的数据安全提供保护。

MaxCompute(大数据计算服务)的使用方法

1、MaxCompute的SQL语法基本命令

(1)、创建表

CREATE TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [LIFECYCLE days]
[AS select_statement]
CREATE TABLE [IF NOT EXISTS] table_name
LIKE existing_table_namecreate table test1 (key string);
-- 创建非分区表
create table test2 (key bigint) partitioned by (pt string, ds string);
-- 创建分区表
create table test3 (key boolean) partitioned by (pt string, ds string) lifecycle 100;
-- 创建带有生命周期的表
create table test4 like test3;
-- 除生命周期属性外,test3的其他属性(字段类型,分区类型等)均与test4完全一致
create table test5 as select * from test2;
-- 创建test5,但分区,生命周期信息不会被拷贝到目标表中。且仅会将test2的数据复制到test5中。

(2)、获取表信息

desc <table_name>;desc test3;
-- 获取test3信息。
desc test4;
-- 获取test4信息。

(3)、删除表

删除表的命令为:
DROP TABLE [IF EXISTS] table_name;
删除表的示例如下,仅供参考:
drop table test2;

2、SQL命令

(1)、Select语句

Select语句的使用有如下限制:
• group by语句的key可以是输入表的列名,也可以是由输入表的列构成的表达式,不可以
是select语句的输出列。

select substr(col2, 2) from tbl group by substr(col2, 2);
-- 可以,group by的key可以是输入表的列构成的表达式。
select col2 from tbl group by substr(col2, 2);
-- 不可以,group by的key不在select语句的列中。
select substr(col2, 2) as c from tbl group by c;
-- 不可以,group by的key不可以是列的别名,即select语句的输出列。

(2)、Insert语句

Insert语句的使用有如下限制:
• 向某个分区插入数据时,分区列不可以出现在select列表中。

insert overwrite table sale_detail_insert partition (sale_date='2017', region='china')
select shop_name, customer_id, total_price, sale_date, region from sale_detail;
-- 返回失败,sale_date, region为分区列,不可以出现在静态分区的insert语句中。
• 动态分区插入时,动态分区列必须在select列表中。
insert overwrite table sale_detail_dypart partition (sale_date='2017', region) select
shop_name,customer_id,total_price from sale_detail;
-- 返回失败,动态分区插入时,动态分区列必须在select列表中。

(3)、Join语句

本章节将简要介绍Join语句的使用限制。
Join操作有如下使用限制:

• MaxCompute SQL支持的Join操作类型包括:{LEFT OUTER|RIGHT OUTER|FULL > OUTER|INNER
} JOIN。
• MaxCompute SQL目前最多支持128个并发Join操作。

BigData:MaxCompute大数据计算服务(阿里巴巴开发/原ODPS/云计算分布式)的简介(基本概念/功能/流程图)、使用方法之详细攻略相关推荐

  1. 大数据计算服务MaxCompute行业开发应用案例

    (MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速.完全托管的PB级数据仓库解决方案,使您可以经济并高效的分析处理海量数据.) 大数据计算服务(MaxCompute,原名 ODPS ...

  2. 一分钟了解阿里云产品:大数据计算服务MaxCompute概述

    阿里云发布了许多产品,今天让我们来了解下大数据计算服务MaxCompute这款产品吧. 什么是MaxCompute呢? MaxCompute是由阿里云自主研发,是阿里巴巴自主研发的海量数据处理平台.提 ...

  3. “云原生”、“大数据”、“云计算”的结合——阿里云的云原生大数据计算服务MaxCompute

    前言:在讨论"云原生大数据计算服务"之前,我们先将这个名词进行拆分,分别讨论一下"云原生"."大数据"."计算服务",从 ...

  4. 大数据计算存储资源池_管家实践:轻松玩转大数据计算服务

    以下是直播内容精华整理,主要包括以下四个方面: 1.背景速览: 2.功能介绍: 3.案例讲解: 4.新功能预告. 一.背景速览 MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速.完 ...

  5. 【大数据】快速了解大数据计算服务

    什么是大数据计算服务: 大数据计算服务(MaxCompute,原名ODPS)是一种快速.完全托管的EB级数据仓库解决方案. 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行 ...

  6. Interview:人工智能大数据岗位面试—【数据分析师】的简介、技能、待遇、进阶的详细攻略

    Interview:人工智能&大数据岗位面试-[数据分析师]的简介.技能.待遇.进阶的详细攻略 目录 数据分析师的简介 1.网友经验之谈 数据分析师的待遇 数据分析师的技能 数据分析师进阶 数 ...

  7. Graphviz:利用可视化工具Graphviz将dot数据进行图像可视化或者图像保存(两大方法)之详细攻略

    Graphviz:利用可视化工具Graphviz将dot数据进行图像可视化或者图像保存(两大方法)之详细攻略 目录 graph_feature函数:为给定的特征生成特征谱系图

  8. Py之PyODPS:PyODPS(MaxCompute平台上的大数据处理和分析框架)的简介、安装、使用方法之详细攻略

    Py之PyODPS:PyODPS(MaxCompute平台上的大数据处理和分析框架)的简介.安装.使用方法之详细攻略 目录 PyODPS的简介 1.PyODPS的特点 2.MaxCompute下SQL ...

  9. Computer:互联网开放平台项目知识补充之开发-运维-网络-网关等术语(DMZ、负载均衡、F5、Nginx、容器)的简介、使用方法之详细攻略

    Computer:互联网开放平台项目知识补充之开发-运维-网络-网关等术语(DMZ.负载均衡.F5.Nginx.容器)的简介.使用方法之详细攻略 目录 DMZ(隔离区)的简介及其使用方法 1.DMZ区 ...

最新文章

  1. 近乎于“神”的任正非
  2. HDFS的API调用,创建Maven工程,创建一个非Maven工程,HDFS客户端操作数据代码示例,文件方式操作和流式操作
  3. java学习(11):Java数据类型转换
  4. POJ3264Balanced Lineup(线段树)
  5. tab weui 页面切换_weui tabbar 到底怎么用啊?tab页面为什么不能切换?
  6. c#访问修饰符修饰无效_C中的数据类型和修饰符
  7. 步步为营:因为数据库正在使用,所以无法获得对数据库的独占访问权
  8. 残酷事实:程序员没有真正的「睡后收入」,解决办法是利用「复利思维」放大「复业收入」...
  9. mysql straight join_MySQL基础之STRAIGHT JOIN用法简介
  10. [效率] HHKB键盘 + Autohotkey 配置秘籍
  11. Sharding-JDBC 源码之 SQL 改写
  12. ppt转换图片及有密码情况处理
  13. Anki 学习排行榜
  14. r5 4500u相当于英特尔什么级别 锐龙r54500u相当于i几
  15. un7.28:redis客户端常用命令。
  16. 【短期】未来学习目标
  17. k8s资源之service
  18. 给openWrt安装管理界面中文包,顺带安装新界面风格,亲测有效
  19. vlc多媒体播放器VLC Media Player 3.0.7.1中文版
  20. php 网站计数器,PHP实现网站访问量计数器实现方法

热门文章

  1. Word处理控件Aspose.Words功能演示:在 C# .NET 中将 Word 转换为 PDF - 完整指南
  2. 微信小程序获取手机号详细过程(新版本2.21.2)(旧版本兼容)
  3. OpenJudge百炼-2967-特殊日历计算-C语言-日期处理
  4. FAF世链区块链大会|斯塔克科技CTO张剑:IPFS解决Web3.0数据存储瓶颈
  5. c语言跑酷游戏,C++用easyx图形库实现障碍跑酷小游戏
  6. 微信公众号授权登录获取code获取openid注意事项(采坑解决方案)
  7. 静态与非静态区别及调用(达内培训课程内容)
  8. HDOJ-6681(离散化+线段树)
  9. python使用smtp库发送邮件
  10. emplace_back与push_back异同