ACA

一、MaxCompute介绍

大数据计算服务( MaxCompute,原ODPS )由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域。阿里巴巴的数据业务都运行在MaxCompute上。

分布式

分布式集群架构,跨集群技术突破,集群规模可扩展

安全性

自动存储容错,安全沙箱机制,冗余存储机制

易用性

标准接口服务,数据上传下载,支持SQL语句

管理与授权

多用户的管理协同,多种方式权限管理,灵活访问控制策略

1.Maxcompute对象

2.Maxcompute分区

分区表指在创建表时指定分区键,即指定表内的某几个字段作为分区列

在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高了处理效率,降低费用

3.其他概念

任务( Task) :

MaxCompute 基本计算单元, SQL及MR都是通过任务完成的

实例( Instance) :

任务的一个具体实例,表示实际运行的task

沙箱( SandBox) :

按照安全策略限制程序行为的执行环境不允许直接访问本地文件
■不允许直接访问分布式文件系统
■不允许JNI调用机制
■Java反射限制
■不允许起子进程执行Linux命令
■不允许获取本地IP地址等

4.MaxComputer数据类型

二、MaxComputer架构

1.MaxComputer客户端

2.MaxComputer接入层

3.MaxComputer逻辑层

4.MaxComputer计算层

三、连接使用MaxComputer

eclipse连接 MaxComputer流程

在阿里云官网下载 odps-for-eclipse 组件(eclipse插件),解压,进入plugins文件夹,复制 odps-eclipse-plugin-bundle_0.15.0.jar 包到 eclipse 文件夹下的plugins文件夹里,然后打开eclipse,显示如下图所示的效果则说明配置成功

eclipse界面 -> File -> new -> Other...

四、数据的上传和下载

Tunnel 命令

数据上传

  tunnel upload [options] <path> <[project.]table[/partition]>

数据下载

  tunnel download [options] <[project.]table[/partition]> <path>

常用的参数

五、数据定义语言DDL

1.建表

2.删除表

3.修改表名

4.添加分区

5.删除分区

6.修改表属性

添加列

修改列

修改表注释

修改列注释

修改生命周期

修改时间

7.快捷建表CTAS

8.创建视图

  CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
  [(col_name[COMMENT col_comment],...)]
  [COMMENT view_comment]
  [AS select_statement]

删除视图

  DROP VIEW [IF NOT EXISTS] view_name;

9.表的生命周期

生命周期( LifeCycle ) : MaxCompute表中的数据,从最后一次更新时间算起,在经过指定的时间后没有变动,则此表将被MaxCompute自动回收(删除)。此指定时间就是该MaxCompute表的生命周期。(单位:天)

10.MULTI INSERT

六、数据操作语言 DML

1.查询操作

2.更新数据

输出到普通表或者静态分区

输出到动态分区


如果目标表有多级分区,在运行insert语句时允许指定部分分区为静态,但是静态分区必须是高级分区(分区字段靠前的分区),动态生成的分区值不可以为null

3.多路输出 MULTI INSERT

4.表关联

5.MAPJOIN

6.分支表达式

第一种

  CASE <value>
              WHEN <condition_1> then <result_1>
              WHEN <condition_2> then <result_2>
              ...
              else <result_n>
  END

第二种

  CASE
              WHEN <condition_1> then <result_1>
              WHEN <condition_2> then <result_2>
              ...
              else <result_n>
  END

七、用户自定义函数





八、MapReduce

MapReduce是由Google最早提出的分布式数据处理模型, MR是一种简单 易用编程框架,基于该框架的程序可以运行在多个机器的集群上,并以-种安全可靠的方式处理TB、PB级别的海量数据。

MR框架处理数据过程主要分成两个阶段:

Map阶段和Reduce阶段。通常会把输入的数据集切分为若干独立的数据块,由map任务以完全并行的方式处理它们。框架会对map的输出先进行排序,然后把结果输入给reduce任务。

MapReduce框架

MR框架运转在<key, value>键值对上,也就是说,框架把作业的输入看为是一组<key, value>键值对,同样也产出一组<key, value>键值对做为作业的输出, 这两组键值对的类型可能不同。

九、Graph

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

图计算用于挖掘人、物等实体之间的潜在的不易观察的行为和联系,这些联系很难通过传统的关系型数据库表示。

■最短路径:好友推荐、转账检测、计算关系紧密程度
■最小连通图:洗钱、虚假交易等
■关键人物识别:寻找意见领袖,防止客户流失的群体效应
■PageRank :传播影响力分析

十、MaxCompute安全与权限

1.授权

授权操作一般涉及到三个要素:主体(Subject ,可以是用户或者角色),客体(Object)和操作(Action)。在MaxCompute中,主体是指用户或角色,客体是指项目空间中的各种类型对象, 操作则与特定对象类型有关,不同类型的对象支持的操作也不尽相同。

关于授权的一些说明:

■主题主要包括用户、角色等
■客体包括项目空间Project、 表Table、 函数Function等
■操作和授权的对象相关 ,以表为例,支持: Describe、Select、 Update、 Drop、 All等
■主要的动作包括授予( grant)、收回( revoke)、查看( show grants )等:
➢grant actions on object to subject
➢revoke actions on object from subject
➢show grants for subject

2.添加用户并授权

决定对另一个用户授权时,需要先将该用户添加到自己的项目空间中来。添加用户的语法如下:

  add user <username>;

当一个用户离开此项目团队时,需要将该用户从项目空间中移除。用户一旦从项目空间中被移除,该用户将不再拥有任何访问项目空间资源的权限。移除用户的命令如下:

  remove user <username> ;

用户授权需注意:

➢当一个用户被移除后,该用户不再拥有访问该项目空间资源的任何权限。
➢移除一个用户之前,如果该用户已被赋予某些角色,则需要先撤销该用户的所有角色。
➢当一个用户被移除后,与该用户有关的ACL授权仍然会被保留。一旦该用户以后被再添加到该项目空间时,该用户的历史的ACL授权访问权限将被重新激活。
➢MaxCompute目前不支持在项目空间中彻底移除个用户及其所有权限数据

3.角色管理

角色( Role )是一组访问权限的集合,当需要对一组用户赋予相同的权限时,可以使用角色授权,可以大大简化授权流程,降低授权管理成本。

角色管理基本语法:

创建角色:

  create role <rolename>

删除角色:

  drop role <rolename> ;

给用户指派某种角色:

  grant <rolename> to <username> ;

撤销角色指派:

  revoke < rolename> from <username> ;

角色授权需注意:

■创建项目空间时会自动创建一 个admin角色,被授予固定权限,不能被修改
■删除一个角色时,只有在该角色的所有用户都被撤销后才会成功
■大数据开发套件中成员角色类型对应 了不同的MaxCompute角色

4.项目空间安全设置

MaxCompute是一个支持多租户的数据处理平台,不同的租户对数据安全需求不尽相同。为了满足不同租户对数据安全的灵活需求, MaxCompute支持项目空间级别的安全配置, ProjectOwner可以定制适合自己的外部账号支持和鉴权模型。

查看鉴权模型的语句:

  show SecurityConfiguration ;

5.鉴权模型

6.项目空间保护

ProjectProtection :项目空间的数据保护,是否允许数据流出项目空间。缺省值为关闭( false )。一旦当项目空间开启项目空间的数据保护机制后,无法将项目空间中的数据转移到项目空间之外,所有的数据只能在项目空间内部流动。

  set ProjectProtection=true ;

TrustedProject :可信项目空间。项目空间( prj1 )保护选项打开后,数据无法流出,若有一个项目空间( prj2 ) ,按照业务需求项目空间prj2可以从项目空间prj1中正常获取数据,则可以在项目空间prj1中把项目空间prj2设置为可信项目空间,设置成功后,prj1中的数据可以正常流转至项目空间prj2。不过是单向的

  add trustedproject prj2;
原文地址:https://www.cnblogs.com/nnadd/p/12981685.html