文档章节

MaxCompute(原ODPS)使用总结-初级篇

_夜枫
 _夜枫
发布于 2017/03/23 17:20
字数 978
阅读 22
收藏 0

引言

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

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

 

1.MaxCompute数据上传下载

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

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

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

2.MaxCompute sql语句

 

sql语句样例

         在ODPS sql界面上可以很方便的执行sql语句,以下简要介绍几个odps上内建函数的使用。更多的内建函数请参考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,否则每周推送过来的应用资源消耗周账单中的健康度会非常低,也比较浪费ODPS的存储资源。

 

欢迎加入MaxCompute钉钉群讨论

42559c7dde62e4d333c90e02efdf416257a4be27

本文转载自:https://yq.aliyun.com/articles/62332

_夜枫
粉丝 10
博文 506
码字总数 0
作品 0
朝阳
后端工程师
私信 提问
阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)

概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方...

隐林
2017/05/05
0
0
MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提...

阿里云云栖社区
2018/01/11
23
0
MaxCompute - ODPS重装上阵 第三弹 - 复杂类型

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提...

阿里云云栖社区
2018/01/12
41
0
MaxCompute - ODPS重装上阵 第四弹 - CTE,VALUES,SEMIJOIN

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提...

阿里云云栖社区
2018/01/15
59
0
阿里云全球首批 MVP 杨绣专访 - 技术要坚持刨根问底

自我介绍 我现在在人人车负责数据架构方面的工作,搭建数据采集、抓取、存储、计算、BI可视化等系统。 之前在百度网页搜索部,是一名架构工程师(主要在抓取业务),技术方向是高并发分布式服务...

花肉酱
2017/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
36分钟前
2
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
1
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
2
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
2
0
rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部