ACA - MaxCompute


一、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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM