ODPS基础
遇到一个项目需求是统计128张分库分表的数据表记录的最大id,通过单表查询计算非常费时,也无法应对分表数更多的情况,因此考虑到通过odps进行任务发布和运算
在云端
http://d2.alibaba-inc.com/
是云梯的第二版,叫在云端,提供了开发工作台,工作流,权限管理,project管理和运维工具。
能够从获得数据、开发数据、运维管理、出售加工好的数据,是数据处理操作的平台。
而数据来源和数据计算都由ODPS系统提供
ODPS
开放数据处理服务(Open Data Processing Service,简称ODPS)是阿里巴巴自主研发的海量数据处理平台。 主要服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。
和在云端的关系就是,一个是平台,提供开发运维等操作,一个是底层设施,提供存储和计算
ODPS基本概念
项目空间(Project)
ODPS 的基本组织单元,它类似于传统数据库的Database 或 Schema 的概念,是进行多用户隔离和访问控制的主要边界。一个用户可以同时拥有多个项目空间的权限。通过安全授权,可以在一个项目空间中访问另一个项目空间中的对象, 例如:表(Table) ,资源(Resource) , 函数(Function),实例(Instance)
分区表 partition
指的是在创建表时指定的partition的分区空间,即指定表内的某几个字段作为分区列。在大多数情况下,用户可以将分区类比为文件系统下的目录。 ODPS将分区列的每个值作为一个分区(目录)。用户可以指定多级分区,即将表的多个字段作为表的分区,分区之间正如多级目录的关系。 在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高处理效率,降低费用。
create table src (key string, value bigint) partitioned by (pt string); -- ODPS的分区目前只支持String类型
select * from src where pt='20151201'; -- 正确使用方式。ODPS在生成查询计划时只会将'20151201'分区的数据纳入输入中
select * from src where pt = 20151201; -- 错误的使用方式。这样会做全表扫描
数据类型
目前仅支持Bigint 8字节有符号整型
String 字符串,
Boolean 布尔型。 True/False
Double 8字节双精度浮点数。 -1.0 10308 ~ 1.0 10308
Datetime 日期类型。使用东八区时间作为系统标准时间。 0001-01-01 00:00:00 ~ 9999-12-31 23:59:59
Decimal Decimal类型整数部分36位有效数字 小数部分保留18位有效数字
Array < T > 数组类型, T为bigint/boolean/double/string/decimal
Map < T1, T2 >
资源(Resource)
用户如果想使用ODPS的 自定义函数(UDF) 或 MapReduce 功能需要依赖资源来完成
比如用户编写了UDF或MapReduce,需要上传jar包,ODPS自动使用这些资源进行运算
自定义函数UDF
ODPS为用户提供了SQL计算功能,用户可以在ODPS SQL中使用系统的 内建函数 完成一定的计算和计数功能。 但当内建函数无法满足要求时,用户可以使用ODPS提供的Java编程接口开发自定义函数(User Defined Function,以下简称UDF)。 自定义函数(UDF) 又可以进一步分为标量值函数(UDF),自定义聚合函数(UDAF)和自定义表值函数(UDTF)三种。
任务Task
任务(Task)是ODPS的基本计算单元。SQL及MapReduce功能都是通过任务(Task)完成的。
对于用户提交的大多数任务,特别是计算型任务,例如:SQL DML语句 ,MapReduce 等,ODPS会对其进行解析,得出任务的执行计划。 执行计划是由具有依赖关系的多个执行阶段(Stage)构成的。目前,执行计划逻辑上可以被看做一个有向图,图中的点是执行阶段, 各个执行阶段的依赖关系是图的边。ODPS会依照图(执行计划)中的依赖关系执行各个阶段。在同一个执行阶段内,会有多个进程,也称之为Worker, 共同完成该执行阶段的计算工作。同一个执行阶段的不同Worker只是处理的数据不同,执行逻辑完全相同。计算型任务在执行时,会被实例化, 用户可以操作这个 [实例(Instance)] 的信息,例如:获取实例状态( Status Instance ),终止实例运行( Kill Instance )等。
配额
ODPS的每个project有存储上限,计算能力也会因为内存和CPU来限制
ODPS基础的更多相关文章
- 阿里云 MaxCompute(ODPS)
大数据产品架构 BASE - Dataworks ODPS - MaxCompute ODPS 功能组成(Open Data Process Service) ODPS 是旧称,阿里云公有云服务中现称 ...
- 【ODPS】UDF基础
UDF全称User Defined Function,即用户自己定义函数.ODPS提供了非常多内建函数来满足用户的计算需求,同一时候用户还能够通过创建自己定义函数来满足 不同的计算需求. UDF ...
- 阿里云大数据计算服务 - MaxCompute (原名 ODPS)
MaxCompute 是阿里EB级计算平台,经过十年磨砺,它成为阿里巴巴集团数据中台的计算核心和阿里云大数据的基础服务.去年MaxCompute 做了哪些工作,这些工作背后的原因是什么?大数据市场进入 ...
- 用Fluent实现MySQL到ODPS数据集成
安装ruby 首先通过 /etc/issue 命令查看当前使用centos是哪个版本: [hadoop@hadoop03 ~]$ cat /etc/issue 由于centos版本是6.6,安装ru ...
- hive sql基础了解
会有些不一样 1 例如使用SQL 之前,要了解用了那个库,use jz_daojia 2 使用GET_JSON_OBJECT 函数等,以及参数 匹配 $.childBrithDay 挺有意思的.新玩意 ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
随机推荐
- Freemaker的java.beans.IntrospectionException: type mismatch between read and write methods
引言:freemaker在特定的spring以及jdk下的问题解决路径. 环境描述 spring 3.1.1, jdk1.8u80, freemake 2.3.19 错误信息描述: 严重: Excep ...
- Android深入理解JNI(二)类型转换、方法签名和JNIEnv
相关文章 Android深入理解JNI系列 前言 上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换.方法签名和JNIEnv. 1.数据类型的转换 首先给出上一篇文章 ...
- liunx工具学习之taskset
当你优化多线程任务的时候,发现某个线程在不同的核上跳转较大,从而耗费CPU的时候想法肯定是想可以把对应线程绑定到特定的核上,可是每次这样操作每次尝试看效果的时候都要重启进程,那有没有一个工具可以直接处 ...
- yum源笔记
1. epel源,使用yum安装htop http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm 2 ...
- LeetCode - Course Schedule 解题报告
以前从来没有写过解题报告,只是看到大肥羊河delta写过不少.最近想把写博客的节奏给带起来,所以就挑一个比较容易的题目练练手. 原题链接 https://leetcode.com/problems/c ...
- 全面进军javascript!
前两天经过新华书店,进去转了转,又买了两本书.这次买的是<javascript学习指南>和<HTML5经典实例>(都是图灵动物系列,我已经有三本了*^_^*),其实我是想去买& ...
- 每天一个linux命令:【转载】mkdir命令
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...
- java并发--Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果. 如果需要获取执行结果,就 ...
- BZOJ1878 SDOI2009 HH的项链 【莫队】
BZOJ1878 SDOI2009 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的 ...
- 《DSP using MATLAB》示例Example 8.12
%% ------------------------------------------------------------------------ %% Output Info about thi ...