阿里雲大數據ACP認證知識點梳理1——產品特點(MAXCOMPUTE)

大數據計算服務(MaxCompute,原名ODPS)是一種快速、完全託管的GB/TB/PB級數據倉庫解決方案。

MaxCompute服務於批量結構化數據的存儲和計算,提供海量數據倉庫的解決方案及分析建模服務。

MaxCompute支持SQL、MapReduce、Graph等計算類型及MPI迭代類算法。

TUNNEL是MaxCompute爲您提供的數據傳輸服務,提供高併發的離線數據上傳下載服務。支持每天TB/PB級別的數據導入導出,特別適合於全量數據或歷史數據的批量導入。Tunnel 爲您提供Java編程接口,並且在MaxCompute的客戶端工具中,有對應的命令實現本地文件與服務數據的互通。

針對實時數據上傳的場景,MaxCompute提供了延遲低、使用方便的DataHub服務,特別適用於增量數據的導入。DataHub還支持多種數據傳輸插件,例如Logstash、Flume、Fluentd、Sqoop等,同時支持日誌服務Log Service中的投遞日誌到MaxCompute,進而使用DataWorks進行日誌分析和挖掘。

MaxCompute以表的形式存儲數據,支持多種數據類型,並對外提供SQL查詢功能。您可以將MaxCompute作爲傳統的數據庫軟件操作,但其卻能處理TB、PB級別的海量數據。

MaxCompute SQL不支持事務、索引及Update/Delete等操作

MaxCompute的SQL語法與Oracle、MySQL有一定差別,您無法將其他數據庫中的SQL語句無縫遷移到MaxCompute上來

在使用方式上,MaxCompute SQL最快可以在分鐘、乃至秒級別完成查詢,無法在毫秒級別返回結果

UDF:即用戶自定義函數。
MaxCompute提供了很多內建函數來滿足您的計算需求,同時您還可以通過創建自定義函數來滿足不同的計算需求。

MapReduce:MaxCompute MapReduce是MaxCompute提供的Java MapReduce編程模型,它可以簡化開發流程,更爲高效。您若使用MaxCompute MapReduce,需要對分佈式計算概念有基本瞭解,並有相對應的編程經驗。MaxCompute MapReduce爲您提供Java編程接口。

Graph:MaxCompute提供的Graph功能是一套面向迭代的圖計算處理框架。圖計算作業使用圖進行建模,圖由點 (Vertex)和邊(Edge)組成,點和邊包含權值(Value)。通過迭代對圖進行編輯、演化,最終求解出結果,典型應用:PageRank、單源最短距離算法 、K-均值聚類算法等

項目空間(Project)是MaxCompute的基本組織單元,它類似於傳統數據庫的Database或Schema的概念,是進行多用戶隔離和訪問控制的主要邊界。

一個用戶可以同時擁有多個項目空間的權限,通過安全授權,可以在一個項目空間中訪問另一個項目空間中的對象,例如表(Table)、資源(Resource)、函數(Function)和實例(Instance)

表是MaxCompute的數據存儲單元,它在邏輯上也是由行和列組成的二維結構,每行代表一條記錄,每列表示相同數據類型的一個字段,一條記錄可以包含一個或多個列,各個列的名稱和類型構成這張表的Schema。

MaxCompute的表格有兩種類型:內部表和外部表。

對於內部表,所有的數據都被存儲在MaxCompute中,表中的列可以是MaxCompute支持的任意一種數據類型。

對於外部表,MaxCompute並不真正持有數據,表格的數據可以存放在OSS或OTS中 。MaxCompute僅會記錄表格的Meta信息,您可以通過MaxCompute的外部表機制處理OSS或OTS上的非結構化數據,例如視頻、音頻、基因、氣象、地理信息等。

分區表是指在創建表時指定分區空間,即指定表內的某幾個字段作爲分區列。

分區表的意義在於優化查詢。查詢表時通過where字句查詢指定所需查詢的分區,避免全表掃描,提高處理效率,降低計算費用。

MaxCompute將分區列的每個值作爲一個分區(目錄),您可以指定多級分區,即將表的多個字段作爲表的分區,分區之間如多級目錄的關係。

目前MaxCompute支持Tinyint、Smallint、Int、Bigint、Varchar和String分區類型。

單表分區層級最多6級。單表分區數最多允許60000個分區。一次查詢最多查詢分區數爲10000個分區。

MaxCompute2.0支持的數據類型,包括基本數據類型和複雜類型。

MaxCompute2.0支持的基本數據類型如下表所示,新增類型有TINYINT、SMALLINT、 INT、 FLOAT、VARCHAR、TIMESTAMP和BINARY,MaxCompute表中的列必須是下列描述的任意一種類型。

MaxCompute表的生命週期(LIFECYCLE),指表(分區)數據從最後一次更新的時間算起,在經過指定的時間後沒有變動,則此表(分區)將被MaxCompute自動回收。這個指定的時間就是生命週期。

生命授權單位:days(天),只接受正整數。非分區表若指定生命週期,自最後一次數據被修改的時間(LastDataModifiedTime)開始計算,經過days天后數據仍未被改動,則此表無需您干預,將會被MaxCompute自動回收(類似drop table操作)。分區表若指定生命週期,則根據各個分區的LastDataModifiedTime判斷該分區是否該被回收。不同於非分區表,分區表的最後一個分區被回收後,該表不會被刪除

生命週期只能設定到表級別,不能在分區級設置生命週期。創建表時即可指定生命週期。

表若不指定生命週期,則表(分區)不會根據生命週期規則被MaxCompute自動回收。

MaxCompute支持上傳的單個資源大小上限爲500MB,資源包括以下幾種類型:File類型。Table類型:MaxCompute中的表。Jar類型:編譯好的Java Jar包。Archive類型:通過資源名稱中的後綴識別壓縮類型,支持的壓縮文件類型包括.zip/.tgz/.tar.gz/.tar/jar。

自定義函數(UDF)可以進一步分爲標量值函數(UDF),自定義聚合函數(UDAF)和自定義表值函數(UDTF)三種類型。

您在開發完成UDF代碼後,需要將代碼編譯成Jar包,並將此Jar包以Jar資源的形式上傳到MaxCompute,最後在MaxCompute中註冊此UDF。

任務(Task)是MaxCompute的基本計算單元,SQL及MapReduce功能都是通過任務完成的。

目前,執行計劃邏輯上可以被看做一個有向圖,圖中的點是執行階段,各個執行階段的依賴關係是圖的邊。MaxCompute會依照圖(執行計劃)中的依賴關係執行各個階段。在同一個執行階段內,會有多個進程,也稱之爲Worker,共同完成該執行階段的計算工作。同一個執行階段的不同Worker只是處理的數據不同,執行邏輯完全相同。計算型任務在執行時,會被實例化,您可以操作這個實例(Instance)的信息,例如獲取實例狀態(Status Instance)、終止實例運行(Kill Instance)等。

另一方面,部分MaxCompute任務並不是計算型的任務,例如SQL中的DDL語句,這些任務本質上僅需要讀取、修改MaxCompute中的元數據信息。因此,這些任務無法被解析出執行計劃。

在MaxCompute中,部分任務(Task)在執行時會被實例化,以MaxCompute實例(下文簡稱爲實例或Instance)的形式存在。實例會經歷運行(Running)和結束(Terminated)兩個階段。

運行階段的狀態爲Running(運行中),而結束階段則會有Success(成功)、Failed(失敗)和Canceled(被取消)三種狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章