ACA
一、MaxCompute介紹
大數(shù)據(jù)計(jì)算服務(wù)( MaxCompute,原ODPS )由阿里云自主研發(fā),提供針對(duì)TB/PB級(jí)數(shù)據(jù)、實(shí)時(shí)性要求不高的分布式處理能力,應(yīng)用于數(shù)據(jù)分析、挖掘、商業(yè)智能等領(lǐng)域。阿里巴巴的數(shù)據(jù)業(yè)務(wù)都運(yùn)行在MaxCompute上。
分布式
分布式集群架構(gòu),跨集群技術(shù)突破,集群規(guī)模可擴(kuò)展
安全性
自動(dòng)存儲(chǔ)容錯(cuò),安全沙箱機(jī)制,冗余存儲(chǔ)機(jī)制
易用性
標(biāo)準(zhǔn)接口服務(wù),數(shù)據(jù)上傳下載,支持SQL語(yǔ)句
管理與授權(quán)
多用戶的管理協(xié)同,多種方式權(quán)限管理,靈活訪問(wèn)控制策略
1.Maxcompute對(duì)象
2.Maxcompute分區(qū)
分區(qū)表指在創(chuàng)建表時(shí)指定分區(qū)鍵,即指定表內(nèi)的某幾個(gè)字段作為分區(qū)列
在使用數(shù)據(jù)時(shí)如果指定了需要訪問(wèn)的分區(qū)名稱,則只會(huì)讀取相應(yīng)的分區(qū),避免全表掃描,提高了處理效率,降低費(fèi)用
3.其他概念
任務(wù)( Task) :
MaxCompute 基本計(jì)算單元, SQL及MR都是通過(guò)任務(wù)完成的
實(shí)例( Instance) :
任務(wù)的一個(gè)具體實(shí)例,表示實(shí)際運(yùn)行的task
沙箱( SandBox) :
按照安全策略限制程序行為的執(zhí)行環(huán)境不允許直接訪問(wèn)本地文件
■不允許直接訪問(wèn)分布式文件系統(tǒng)
■不允許JNI調(diào)用機(jī)制
■Java反射限制
■不允許起子進(jìn)程執(zhí)行Linux命令
■不允許獲取本地IP地址等
4.MaxComputer數(shù)據(jù)類(lèi)型
二、MaxComputer架構(gòu)
1.MaxComputer客戶端
2.MaxComputer接入層
3.MaxComputer邏輯層
4.MaxComputer計(jì)算層
三、連接使用MaxComputer
eclipse連接 MaxComputer流程
在阿里云官網(wǎng)下載 odps-for-eclipse 組件(eclipse插件),解壓,進(jìn)入plugins文件夾,復(fù)制 odps-eclipse-plugin-bundle_0.15.0.jar 包到 eclipse 文件夾下的plugins文件夾里,然后打開(kāi)eclipse,顯示如下圖所示的效果則說(shuō)明配置成功
eclipse界面 -> File -> new -> Other...
四、數(shù)據(jù)的上傳和下載
Tunnel 命令
數(shù)據(jù)上傳
tunnel upload [options] <path> <[project.]table[/partition]>
數(shù)據(jù)下載
tunnel download [options] <[project.]table[/partition]> <path>
常用的參數(shù)
五、數(shù)據(jù)定義語(yǔ)言DDL
1.建表
2.刪除表
3.修改表名
4.添加分區(qū)
5.刪除分區(qū)
6.修改表屬性
添加列
修改列
修改表注釋
修改列注釋
修改生命周期
修改時(shí)間
7.快捷建表CTAS
8.創(chuàng)建視圖
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表中的數(shù)據(jù),從最后一次更新時(shí)間算起,在經(jīng)過(guò)指定的時(shí)間后沒(méi)有變動(dòng),則此表將被MaxCompute自動(dòng)回收(刪除)。此指定時(shí)間就是該MaxCompute表的生命周期。(單位:天)
10.MULTI INSERT
六、數(shù)據(jù)操作語(yǔ)言 DML
1.查詢操作
2.更新數(shù)據(jù)
輸出到普通表或者靜態(tài)分區(qū)
輸出到動(dòng)態(tài)分區(qū)
如果目標(biāo)表有多級(jí)分區(qū),在運(yùn)行insert語(yǔ)句時(shí)允許指定部分分區(qū)為靜態(tài),但是靜態(tài)分區(qū)必須是高級(jí)分區(qū)(分區(qū)字段靠前的分區(qū)),動(dòng)態(tài)生成的分區(qū)值不可以為null
3.多路輸出 MULTI INSERT
4.表關(guān)聯(lián)
5.MAPJOIN
6.分支表達(dá)式
第一種
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
七、用戶自定義函數(shù)
八、MapReduce
MapReduce是由Google最早提出的分布式數(shù)據(jù)處理模型, MR是一種簡(jiǎn)單 易用編程框架,基于該框架的程序可以運(yùn)行在多個(gè)機(jī)器的集群上,并以-種安全可靠的方式處理TB、PB級(jí)別的海量數(shù)據(jù)。
MR框架處理數(shù)據(jù)過(guò)程主要分成兩個(gè)階段:
Map階段和Reduce階段。通常會(huì)把輸入的數(shù)據(jù)集切分為若干獨(dú)立的數(shù)據(jù)塊,由map任務(wù)以完全并行的方式處理它們。框架會(huì)對(duì)map的輸出先進(jìn)行排序,然后把結(jié)果輸入給reduce任務(wù)。
MapReduce框架
MR框架運(yùn)轉(zhuǎn)在<key, value>鍵值對(duì)上,也就是說(shuō),框架把作業(yè)的輸入看為是一組<key, value>鍵值對(duì),同樣也產(chǎn)出一組<key, value>鍵值對(duì)做為作業(yè)的輸出, 這兩組鍵值對(duì)的類(lèi)型可能不同。
九、Graph
MaxCompute Graph是一套面向迭代的圖計(jì)算處理框架。圖計(jì)算作業(yè)使用圖進(jìn)行建模,圖由點(diǎn)(Vertex)和邊(Edge)組成,點(diǎn)和邊包含權(quán)值(Value)。通過(guò)迭代對(duì)圖進(jìn)行編輯、演化,最終求解出結(jié)果,典型應(yīng)用: PageRank ,單源最短距離算法, K-均值聚類(lèi)算法等等。用戶可以使用MaxCompute GRAPH提供的接口Java SDK編寫(xiě)圖計(jì)算程序。
圖計(jì)算用于挖掘人、物等實(shí)體之間的潛在的不易觀察的行為和聯(lián)系,這些聯(lián)系很難通過(guò)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)表示。
■最短路徑:好友推薦、轉(zhuǎn)賬檢測(cè)、計(jì)算關(guān)系緊密程度
■最小連通圖:洗錢(qián)、虛假交易等
■關(guān)鍵人物識(shí)別:尋找意見(jiàn)領(lǐng)袖,防止客戶流失的群體效應(yīng)
■PageRank :傳播影響力分析
十、MaxCompute安全與權(quán)限
1.授權(quán)
授權(quán)操作一般涉及到三個(gè)要素:主體(Subject ,可以是用戶或者角色),客體(Object)和操作(Action)。在MaxCompute中,主體是指用戶或角色,客體是指項(xiàng)目空間中的各種類(lèi)型對(duì)象, 操作則與特定對(duì)象類(lèi)型有關(guān),不同類(lèi)型的對(duì)象支持的操作也不盡相同。
關(guān)于授權(quán)的一些說(shuō)明:
■主題主要包括用戶、角色等
■客體包括項(xiàng)目空間Project、 表Table、 函數(shù)Function等
■操作和授權(quán)的對(duì)象相關(guān) ,以表為例,支持: Describe、Select、 Update、 Drop、 All等
■主要的動(dòng)作包括授予( grant)、收回( revoke)、查看( show grants )等:
?grant actions on object to subject
?revoke actions on object from subject
?show grants for subject
2.添加用戶并授權(quán)
決定對(duì)另一個(gè)用戶授權(quán)時(shí),需要先將該用戶添加到自己的項(xiàng)目空間中來(lái)。添加用戶的語(yǔ)法如下:
add user <username>;
當(dāng)一個(gè)用戶離開(kāi)此項(xiàng)目團(tuán)隊(duì)時(shí),需要將該用戶從項(xiàng)目空間中移除。用戶一旦從項(xiàng)目空間中被移除,該用戶將不再擁有任何訪問(wèn)項(xiàng)目空間資源的權(quán)限。移除用戶的命令如下:
remove user <username> ;
用戶授權(quán)需注意:
?當(dāng)一個(gè)用戶被移除后,該用戶不再擁有訪問(wèn)該項(xiàng)目空間資源的任何權(quán)限。
?移除一個(gè)用戶之前,如果該用戶已被賦予某些角色,則需要先撤銷(xiāo)該用戶的所有角色。
?當(dāng)一個(gè)用戶被移除后,與該用戶有關(guān)的ACL授權(quán)仍然會(huì)被保留。一旦該用戶以后被再添加到該項(xiàng)目空間時(shí),該用戶的歷史的ACL授權(quán)訪問(wèn)權(quán)限將被重新激活。
?MaxCompute目前不支持在項(xiàng)目空間中徹底移除個(gè)用戶及其所有權(quán)限數(shù)據(jù)
3.角色管理
角色( Role )是一組訪問(wèn)權(quán)限的集合,當(dāng)需要對(duì)一組用戶賦予相同的權(quán)限時(shí),可以使用角色授權(quán),可以大大簡(jiǎn)化授權(quán)流程,降低授權(quán)管理成本。
角色管理基本語(yǔ)法:
創(chuàng)建角色:
create role <rolename>
刪除角色:
drop role <rolename> ;
給用戶指派某種角色:
grant <rolename> to <username> ;
撤銷(xiāo)角色指派:
revoke < rolename> from <username> ;
角色授權(quán)需注意:
■創(chuàng)建項(xiàng)目空間時(shí)會(huì)自動(dòng)創(chuàng)建一 個(gè)admin角色,被授予固定權(quán)限,不能被修改
■刪除一個(gè)角色時(shí),只有在該角色的所有用戶都被撤銷(xiāo)后才會(huì)成功
■大數(shù)據(jù)開(kāi)發(fā)套件中成員角色類(lèi)型對(duì)應(yīng) 了不同的MaxCompute角色
4.項(xiàng)目空間安全設(shè)置
MaxCompute是一個(gè)支持多租戶的數(shù)據(jù)處理平臺(tái),不同的租戶對(duì)數(shù)據(jù)安全需求不盡相同。為了滿足不同租戶對(duì)數(shù)據(jù)安全的靈活需求, MaxCompute支持項(xiàng)目空間級(jí)別的安全配置, ProjectOwner可以定制適合自己的外部賬號(hào)支持和鑒權(quán)模型。
查看鑒權(quán)模型的語(yǔ)句:
show SecurityConfiguration ;
5.鑒權(quán)模型
6.項(xiàng)目空間保護(hù)
ProjectProtection :項(xiàng)目空間的數(shù)據(jù)保護(hù),是否允許數(shù)據(jù)流出項(xiàng)目空間。缺省值為關(guān)閉( false )。一旦當(dāng)項(xiàng)目空間開(kāi)啟項(xiàng)目空間的數(shù)據(jù)保護(hù)機(jī)制后,無(wú)法將項(xiàng)目空間中的數(shù)據(jù)轉(zhuǎn)移到項(xiàng)目空間之外,所有的數(shù)據(jù)只能在項(xiàng)目空間內(nèi)部流動(dòng)。
set ProjectProtection=true ;
TrustedProject :可信項(xiàng)目空間。項(xiàng)目空間( prj1 )保護(hù)選項(xiàng)打開(kāi)后,數(shù)據(jù)無(wú)法流出,若有一個(gè)項(xiàng)目空間( prj2 ) ,按照業(yè)務(wù)需求項(xiàng)目空間prj2可以從項(xiàng)目空間prj1中正常獲取數(shù)據(jù),則可以在項(xiàng)目空間prj1中把項(xiàng)目空間prj2設(shè)置為可信項(xiàng)目空間,設(shè)置成功后,prj1中的數(shù)據(jù)可以正常流轉(zhuǎn)至項(xiàng)目空間prj2。不過(guò)是單向的
add trustedproject prj2;
總結(jié)
- 上一篇: 获取 Google USB 驱动程序
- 下一篇: Loadrunner添加服务器监控-转载