ODPS基礎


 

遇到一個項目需求是統計128張分庫分表的數據表記錄的最大id,通過單表查詢計算非常費時,也無法應對分表數更多的情況,因此考慮到通過odps進行任務發布和運算

在雲端

http://d2.alibaba-inc.com/
是雲梯的第二版,叫在雲端,提供了開發工作台,工作流,權限管理,project管理和運維工具。
能夠從獲得數據、開發數據、運維管理、出售加工好的數據,是數據處理操作的平台。
而數據來源和數據計算都由ODPS系統提供

ODPS

開放數據處理服務(Open Data Processing Service,簡稱ODPS)是阿里巴巴自主研發的海量數據處理平台。 主要服務於批量結構化數據的存儲和計算,可以提供海量數據倉庫的解決方案以及針對大數據的分析建模服務。
和在雲端的關系就是,一個是平台,提供開發運維等操作,一個是底層設施,提供存儲和計算

ODPS基本概念

項目空間(Project)

ODPS 的基本組織單元,它類似於傳統數據庫的Database 或 Schema 的概念,是進行多用戶隔離和訪問控制的主要邊界。一個用戶可以同時擁有多個項目空間的權限。通過安全授權,可以在一個項目空間中訪問另一個項目空間中的對象, 例如:表(Table) ,資源(Resource) , 函數(Function),實例(Instance)

分區表 partition

指的是在創建表時指定的partition的分區空間,即指定表內的某幾個字段作為分區列。在大多數情況下,用戶可以將分區類比為文件系統下的目錄。 ODPS將分區列的每個值作為一個分區(目錄)。用戶可以指定多級分區,即將表的多個字段作為表的分區,分區之間正如多級目錄的關系。 在使用數據時如果指定了需要訪問的分區名稱,則只會讀取相應的分區,避免全表掃描,提高處理效率,降低費用。

create table src (key string, value bigint) partitioned by (pt string); -- ODPS的分區目前只支持String類型 select * from src where pt='20151201'; -- 正確使用方式。ODPS在生成查詢計划時只會將'20151201'分區的數據納入輸入中 select * from src where pt = 20151201; -- 錯誤的使用方式。這樣會做全表掃描

數據類型

目前僅支持Bigint 8字節有符號整型
String 字符串,
Boolean 布爾型。 True/False
Double 8字節雙精度浮點數。 -1.0 10308 ~ 1.0 10308
Datetime 日期類型。使用東八區時間作為系統標准時間。 0001-01-01 00:00:00 ~ 9999-12-31 23:59:59
Decimal Decimal類型整數部分36位有效數字 小數部分保留18位有效數字
Array < T > 數組類型, T為bigint/boolean/double/string/decimal
Map < T1, T2 >

資源(Resource)

用戶如果想使用ODPS的 自定義函數(UDF) 或 MapReduce 功能需要依賴資源來完成
比如用戶編寫了UDF或MapReduce,需要上傳jar包,ODPS自動使用這些資源進行運算

自定義函數UDF

ODPS為用戶提供了SQL計算功能,用戶可以在ODPS SQL中使用系統的 內建函數 完成一定的計算和計數功能。 但當內建函數無法滿足要求時,用戶可以使用ODPS提供的Java編程接口開發自定義函數(User Defined Function,以下簡稱UDF)。 自定義函數(UDF) 又可以進一步分為標量值函數(UDF),自定義聚合函數(UDAF)和自定義表值函數(UDTF)三種。

任務Task

任務(Task)是ODPS的基本計算單元。SQL及MapReduce功能都是通過任務(Task)完成的。
對於用戶提交的大多數任務,特別是計算型任務,例如:SQL DML語句 ,MapReduce 等,ODPS會對其進行解析,得出任務的執行計划。 執行計划是由具有依賴關系的多個執行階段(Stage)構成的。目前,執行計划邏輯上可以被看做一個有向圖,圖中的點是執行階段, 各個執行階段的依賴關系是圖的邊。ODPS會依照圖(執行計划)中的依賴關系執行各個階段。在同一個執行階段內,會有多個進程,也稱之為Worker, 共同完成該執行階段的計算工作。同一個執行階段的不同Worker只是處理的數據不同,執行邏輯完全相同。計算型任務在執行時,會被實例化, 用戶可以操作這個 [實例(Instance)] 的信息,例如:獲取實例狀態( Status Instance ),終止實例運行( Kill Instance )等。

配額

ODPS的每個project有存儲上限,計算能力也會因為內存和CPU來限制


免責聲明!

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



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