• 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;
  • 相关阅读:
    索引
    varnish它是一款高性能的http缓存服务器
    前端性能优化浅谈
    锁机制-SQL Server 数据库
    NET Core中NuGet包
    “干掉” if...else
    混搭.NET技术
    MONO x64 amd_x64
    跨平台移动开发UI语言 -XAML
    使用LinqToExcel读取Excel
  • 原文地址:https://www.cnblogs.com/nnadd/p/12981685.html
Copyright © 2020-2023  润新知