MaxCompute 使用总结-初级篇

简介: 本文面向的读者是要使用MaxCompute sql进行一些数据查询和挖掘,或者要使用MaxCompute udf自定义函数的用户。

转载自jiyi
引言

本文面向的读者是要使用MaxCompute sql进行一些数据查询和挖掘,或者要使用MaxCompute udf自定义函数的用户。本文试图达到三个目标:(1)针对应用管理者来讲,看完本文后可以比较清晰的去管理自己的应用;(2)针对MaxCompute sql使用者来讲,本文在sql语句的内建函数使用以及sql语句加速方面,给出了一些例子;(3)针对MaxCompute UDF使用者和开发者来讲,本文提供了一个UDF函数创建的完整例子并给出了无IDE依赖的java工程,可直接在公司内部机器上编译使用。具体的内容安排如下。

  • 第1节介绍了ODPS数据上传下载的一些知识,通过本章你可以将数据上传到ODPS中亦可将ODPS中的数据下载到本地。
  • 第2节阐述了ODPS sql语句中一些内建函数的使用以及sql语句加速的一些技巧。
  • 第3节阐述了ODPS UDF函数的创建以及使用的整个例子,欢迎大家一起贡献常用的UDF函数。
  • 第4节中介绍了如何实时的进行在线以及离线的任务监控。
  • 第5节中介绍了如何进行MaxCompute存储优化。

1.MaxCompute数据上传下载

使用Datahub ,对表格进行上传/下载

更多上传下载相关参数请查看

https://help.aliyun.com/document_detail/27849.html?spm=5176.doc27864.6.154.k7rmpf

2.MaxCompute sql语句

sql语句样例

在MaxCompute sql界面上可以很方便的执行sql语句,以下简要介绍几个MaxCompute上内建函数的使用。更多的内建函数请参考https://help.aliyun.com/document_detail/27864.html

聚类采样

create table A_sample as

select `(sample_flag)?+.+` from

(

select *, cluster_sample(20, 1) over (partition by A_key1) as sample_flag

from A

) sample

where sample_flag=true;

行记录合并

create table A_group as

select A_key1, wm_concat(',', A_key2) as A_key2s from A

group by A_key1;

计算分割串个数

create table A_count_key_size as

select *, size(split(A_key, ',')) as A_key_count

from A;

行记录序号打标

create table A_rowno as

select *, ROW_NUMBER() OVER(PARTITION BY 1 order by A_key) as row_no

from A;

sql单语句加速

如何控制ODPS原生sql语句分配的节点个数?有以下两种方法可以设置。
1.通过参数设置:
set odps.sql.mapper.merge.limit.size=64;
set odps.sql.mapper.split.size=256;
这两个sql参数可以控制分配的节点个数,更多sql参数请参考https://yq.aliyun.com/articles/60898。如果把参数设到了极限,sql分配的节点个数还是不能满足需求的话,怎么办?没事,我们还可以将表格进行分区,如下所述。
2. 对表格进行分区:
create table A_rowno as
select A_key, ROW_NUMBER() OVER(PARTITION BY 1 order by A_key) as row_no
from A;

create table A_pt
(A_key string
)
partitioned by (row_remainder bigint);

insert overwrite table A_pt partition(row_remainder)
select A_key, row_no%2000 as row_remainder
from A_rowno;

为了描述的方便,我将各个步骤分开来写,实际操作中可以将一些合并起来写。

3.MaxCompute UDF


编写UDF参考https://yq.aliyun.com/articles/61887


4.MaxCompute数据和任务的线上监控

日常任务上线后,我们必须做好监控措施,这样才能在任务发生异常后进行及时地发现错误然后纠正恢复。实时的任务监控可以访问网站http://data.aliyun.com 里的大数据开发套件进行任务资源占用的监控,并同时访问任务返回的logview进行查看。

5.MaxCompute存储优化

随着应用中人数以及业务的不断增加,ODPS应用里会有很多表的生成,这时候需要应用的负责人去做好ODPS的存储优化https://yq.aliyun.com/articles/61532?spm=5176.100240.searchblog.22.anssTb,否则每周推送过来的应用资源消耗周账单中的健康度会非常低,也比较浪费MaxCompute的存储资源。

欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:

96e17df884ab556dc002c912fa736ef6558cbb51
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
分布式计算 运维 大数据
MaxCompute,原名ODPS,是阿里云提供的一种大数据计算服务
MaxCompute,原名ODPS,是阿里云提供的一种大数据计算服务
66 1
|
4月前
|
SQL 分布式计算 大数据
MAXCOMPUTE和ODPS的区别是什么?
MAXCOMPUTE和ODPS的区别是什么?
144 1
|
2月前
|
分布式计算 大数据 测试技术
在大数据计算MaxCompute中,odps在该时段是不是有什么异常
在大数据计算MaxCompute中,odps在该时段是不是有什么异常
20 1
|
4月前
|
分布式计算 安全 大数据
MAXCOMPUTE和ODPS的区别2
MAXCOMPUTE和ODPS的区别2
73 1
|
6月前
|
SQL 分布式计算 大数据
MaxCompute ODPS重装上阵:PIVOT/UNPIVOT
MaxCompute推出新语法 - PIVOT/UNPIVOT:通过PIVOT关键字基于聚合将一个或者多个指定值的行转换为列;通过UNPIVOT关键字可将一个或者多个列转换为行。以更简洁易用的方式满足行转列和列转行的需求,简化了查询语句,提高了广大大数据开发者的生产力。
470 1
MaxCompute  ODPS重装上阵:PIVOT/UNPIVOT
|
6月前
|
SQL 分布式计算 大数据
MaxCompute ODPS 重装上阵:QUALIFY
MaxCompute支持QUALIFY语法过滤Window函数的结果,使得查询语句更简洁易理解。Window函数和QUALIFY语法之间的关系可以类比聚合函数+GROUP BY语法和HAVING语法。
216 0
|
7月前
|
SQL 分布式计算 编译器
MaxCompute ODPS重装上阵: IF ELSE分支语句
MaxCompute通过脚本模式支持IF ELSE分支语句,让程序根据条件自动选择执行逻辑,支持更好的处理因数据不同而需要采用不同策略的业务场景产生的复杂SQL,提高开发者编程的灵活性!
546 2
|
7月前
|
SQL 存储 分布式计算
ODPS(MaxCompute)不支持解析和执行SQL语句中的Hint语句
ODPS(MaxCompute)不支持解析和执行SQL语句中的Hint语句
155 2
|
7月前
|
SQL 分布式计算 MaxCompute
ODPS(MaxCompute)不支持解析和执行SQL语句中的Lateral View语法
ODPS(MaxCompute)不支持解析和执行SQL语句中的Lateral View语法
191 1
|
8月前
|
存储 SQL 机器学习/深度学习
MaxCompute(原名ODPS,全称Open Data Processing Service)
MaxCompute(原名ODPS,全称Open Data Processing Service)是阿里云开发的一种云原生数据处理和分析服务。它提供了强大的数据计算和处理能力,支持海量数据的存储、计算、分析和挖掘,并且具有高可靠、高性能、高可扩展、高安全等优势,适用于各种数据处理和分析场景。
316 0

相关产品

  • 云原生大数据计算服务 MaxCompute