MaxCompute 数据计算入门

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 阿里云的MaxCompute是大数据存储和分析平台。使用DataHub、SLS可以将海量数据轻松同步到MaxCompute,然后使用SQL查询、UDF和Map Reduce进行数据处理、分析和挖掘等任务。

阿里云的MaxCompute是大数据存储和分析平台。使用DataHub、SLS可以将海量数据轻松同步到MaxCompute,然后使用SQL查询、UDF和Map Reduce进行数据处理、分析和挖掘。这里我从一个初识平台的用户角度,讲解一下如何快速上手该平台以及如果使用最新的Java9可能遇到的问题。

1、开通MaxCompute服务

前两步(“实名认证“和”创建AccessKey“)搞定以后,接下来是MaxCompute相关配置。

1)选择region及服务

开始使用该服务时,建议选择“按量付费”,随着数据量增大,再将套餐换为包年包月。

eb05dde060dd50292dc99c9f9ab9a82e545e7f0b

2)创建项目

注意“项目名称”在阿里云里面是全局唯一的,所以项目名称不能跟其他人的项目重复。

540d3b47c783d112230deb97bf434709e1e90c01

2、使用表查询功能

项目创建好了以后,我们首先试用一下SQL查询功能。

1)创建数据表

SQL查询是基于table的,首先创建一个company表。在“数据开发”->“表查询”面板中,点击“+”按钮即可打开一个SQL编辑页面。输入下面的语句创建一个空的ODPS表。


create table if not exists company (name string, industry string);

2)插入数据

可以选择使用insert插入数据,这里我们选择更简洁的方法,即将本地的数据导入ODPS表中。点击“导入”按钮,选择“导入本地数据“。选择正确的“分隔符号”和“原始字符集”,就可以看到正确的数据预览结果(本文中使用的数据从互联网收集,仅作参考)。

几千条数据的导入速度很快,导入结束以后即可在company表的“数据预览”查看到相关记录了。

acf40a856e818257661052a76ab930e574bb99fe

3)Dataworks中进行数据查询

在SQL编辑面板中输入下面SQL语句,


SELECT * FROM company WHERE name = '万绿生态园林股份有限公司';

点击“成本预估”可以看到详细的成本预估结果。直接点击“运行”,弹出框中也可以看到预估的费用。

2c06e7219411b17fe9d111b3d1934fd8128dfdd0

因为MaxCompute运行数据查询需要Job排队运行,所以数据量很小的查询仍然需要几秒钟才能看到结果。

在Job执行过程中,可以看到日志。点击下图中的“Log view”可以看到更详细的Job执行情况。

cb7ddac879bc18cf528884c740443cb6ccff30b8

4)Studio中进行数据查询

Studio的配置详见官方介绍

数据查询的执行结果如下图所示,点击“日志”中的“Click Here To See Detail”,即可看到详细的Job执行情况。由于在Studio中查看Job运行情况更为直观,而且Studio中的script文件还可以加入到git中进行版本管理,建议尽量使用Studio进行数据查询。

3d78c3a4929d56bfa06fa6999cf3f9327e559036

5)CLT中进行数据查询

CLT的配置请参照官方文档。在CLT中进行系统配置和基本的建表、赋权等操作非常方便。不过,如果使用Java9等更高的Java版本,在提交Job的时候经常会收到ODPSConsoleException的错误信息,不过此时Job已经提交成功,可以通过Job view来查看Job运行情况和运算结果。

6c01b4ae22e3e29dca73453152e3d1dd79db1967

3、使用UDF功能

1)配置

在Studio中开发UDF是十分方便的。使用UDF开发请参照阿里云官方文档。如果使用Java9,那么除了官方文档中对于Maven的修改以外,还需要加入以下Maven依赖,整个工程才能运行: 

 
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>

配置好了以后,就可以写一个简单的UDF函数了,demo是取公司名称的前两个中文字符粗略作为这个公司的归属地。程序写好以后,可以先在本地运行一下,测试通过后再部署到MaxCompute服务器。

2)本地运行

1、按照warehouse中的样本数据,创建company样本数据作为函数的输入。注意样本数据中,schema和data中的列和列之间的分隔符都必须是逗号“,”。

2、右键点击类文件,选择 run “CityExtractUDF.main()”,在弹出框中选择刚刚创建的MaxCompute table和Table columns,点击“OK”。运行结果如下图所示,

2bded993f8a8897443b40927c8d0aea710478d16

3)MaxCompute服务器运行

本地运行成功以后,就可以把UDF提交到maxCompute server在线运行了。提交方法非常简单,右键点击该class文件,选择“Deploy to server…”,然后给UDF起一个响当当的名字就可以了。顺利的话很快就可以上传成功,在Studio中刷新meta data可以看到该function。接下来提交一个简单的job试运行一下,

d1d66c9af3df2e9aedbf8e45a7b4b372fe54bbee

由于UDF函数已经在Server端,我们也可以在DataWorks和CLT中直接调用该函数。在CLT中使用list functions命令可以看到刚刚定义的函数,但是在DataWorks中的“函数管理”无法看见。

4、使用Map Reduce功能

使用MaxCompute的MR功能是非常容易的,首先可以参照examples中的word count例子,写一个自己的MR程序,我的MR程序要完成的任务是计算每个省企业的个数。

1)本地运行

要本地执行该程序,同样需要在warehouse中创建MR程序的输入输出,比如下图中的company和company_count_out。程序执行结果如下:

eea27b206f6e3921a58f414cf6c68ef0cb3b24e5

2)MaxCompute服务器运行

1、 部署Jar包到MaxCompute服务端。在DataWorks选择“资源管理”,点击“资源上传”,选择Jar包完成上传。

a9a69c7b1e66eb2ec590e49068002a5a1d3d624b

2、执行ODPS_MR任务。在DataWorks上面点击“新建任务”,在弹出框中选择任务类型为“ODPS_MR”。填写相关信息后提交并运行刚刚写的MR Job,等Job执行结束,通过“数据预览”功能,可以在company_count_out表看到输出。


937d836e0984715d20c8e148644869d8ed1be64c


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
11天前
|
JavaScript 前端开发 大数据
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
|
2月前
|
分布式计算 DataWorks IDE
MaxCompute数据问题之忽略脏数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
47 0
|
2月前
|
SQL 存储 分布式计算
MaxCompute问题之下载数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0
|
2月前
|
分布式计算 关系型数据库 MySQL
MaxCompute问题之数据归属分区如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
35 0
|
2月前
|
分布式计算 DataWorks BI
MaxCompute数据问题之运行报错如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 1
|
2月前
|
分布式计算 关系型数据库 数据库连接
MaxCompute数据问题之数据迁移如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
31 0
|
2月前
|
分布式计算 Cloud Native MaxCompute
MaxCompute数据问题之没有访问权限如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0
|
4天前
|
数据采集 搜索推荐 大数据
大数据中的人为数据
【4月更文挑战第11天】人为数据,源于人类活动,如在线行为和社交互动,是大数据的关键部分,用于理解人类行为、预测趋势和策略制定。数据具多样性、实时性和动态性,广泛应用于市场营销和社交媒体分析。然而,数据真实性、用户隐私和处理复杂性构成挑战。解决策略包括数据质量控制、采用先进技术、强化数据安全和培养专业人才,以充分发挥其潜力。
11 3
|
6天前
|
运维 供应链 大数据
数据之势丨从“看数”到“用数”,百年制造企业用大数据实现“降本增效”
目前,松下中国旗下的64家法人公司已经有21家加入了新的IT架构中,为松下集团在中国及东北亚地区节约了超过30%的总成本,减少了近50%的交付时间,同时,大幅降低了系统的故障率。
|
1月前
|
SQL 分布式计算 监控
大数据计算MaxCompute等长时间没有查出来结果的原因可能有以下几点:
【2月更文挑战第24天】大数据计算MaxCompute等长时间没有查出来结果的原因可能有以下几点:
18 2