天天看點

MaxCompute助力OSS支援EB級計算力

一、 MaxCompute 是什麼?

你的OSS資料是否作堆積在一旁沉睡已久,存儲成本變為企業負擔?你是否想喚醒沉睡的資料,驅動你的業務前行?MaxCompute可以幫助你高效且低成本的解決這些問題,通過對海量資料進行分析和計算來實作勾勒使用者畫像、提升營銷轉化、挖掘産品優化方向、預測業務發展等豐富的業務場景。

MaxCompute助力OSS支援EB級計算力

MaxCompute是一項提供快速、完全托管的EB級資料倉庫解決方案的大資料計算服務,可以高效并經濟的分析處理海量資料。作為阿裡雲大資料旗艦産品,MaxCompute的EB級别性能處理達到了全球領先性,被Forrester評為全球雲端資料倉庫上司者。同時,MaxCompute也是阿裡巴巴内部大資料旗艦平台,阿裡巴巴近99%的資料存儲以及95%的計算能力都在這個平台上産生。

最近MaxCompute重磅推出了一項重要特性:

OSS外表查詢功能

。該功能可以幫助您直接對OSS中的海量檔案進行查詢,而不必将資料加載到MaxCompute 表中,既節約了資料搬遷的時間和人力,也節省了多地存儲的成本。除此之外,MaxCompute外表查詢功能還擁有如下的優勢:

1、MaxCompute是一個無伺服器的分布式計算架構,無需使用者再額外維護和管理伺服器基礎設施,能友善及時的為OSS使用者提供臨時按需的查詢服務,進而大大幫助企業節省成本。目前該功能處于公測階段,免費使用;

2、支援處理OSS上開源格式的結構化檔案,包括:Avro、CSV、ORC、Parquet、RCFile、RegexSerDe、SequenceFile和TextFile,同時支援gzip壓縮格式;

3、提供靈活的使用者自定義代碼的處理架構,用來支援處理OSS上非結構化檔案,使用者可以自行編寫代碼直接對OSS上的資料進行處理和計算。比如對OSS上的視訊,圖像,音頻,基因,氣象等資料進行特征提取和分析,可以支援豐富的第三方音視訊處理庫;

二、 客戶案例 1、 華大基因

基因技術從實驗室逐漸進入生活場景,資料體量爆發式增長,遠超出傳統計算能力所能支援的範圍。基于這樣的背景,華大選擇了MaxCompute。在百萬人基因組項目中,對人群結構的分析,oss存放了大量的fastq檔案,傳統計算方式需3-5天,且需要将資料同步到資料倉庫,現在通過外表功能,MaxCompute可使整個分析在1小時内完成,極大加速了資料吞吐和傳遞生産效率。

2、天弘基金

天弘基金旗下的餘額寶,是中國規模最大的貨币基金。除理财功能外,餘額寶還是移動網際網路時代的現金管理工具。餘額寶每天有大量的金融資料交換檔案存放在oss上,需要進行超大文本檔案的結構化分析,之前是把oss檔案先下載下傳到本地,然後再上傳到MaxCompute,鍊路長且效率不高。現在oss上的大檔案可以直接用外部表的方式加載到MaxCompute做分析,整個鍊路的效率得到了大幅提升。

三、 如何使用MaxCompute?

下面我們通過兩個簡單的示例,介紹如何通過MaxCompute外表功能實作對OSS資料的分析和處理。

場景一:物聯網采集資料分析 Step1 :準備工作

1、開通OSS 、MaxCompute服務

您可以通過官網分别開通OSS、

MaxCompute服務

,并建立OSS bucket、

MaxCompute Project

2、采集資料到OSS

您可以使用任何資料集來執行測試,以驗證我們在這篇文章中概述的最佳實踐。

本文準備一批 CSV 資料存在 OSS 上,endpoint 為

oss-cn-beijing-internal.aliyuncs.com

,bucket

oss-odps-test

,資料檔案的存放路徑為

/demo/vehicle.csv

3、授權MaxCompute通路OSS

MaxCompute需要直接通路OSS的資料,前提需要将OSS的資料相關權限賦給MaxCompute的通路賬号,可以直接登入阿裡雲賬号後,

點選此處完成一鍵授權 Step2 :通過MaxCompute建立外部表

建立外部表,語句如下:

CREATE EXTERNAL TABLE IF NOT EXISTS ambulance_data_csv_external

(

vehicleId int,

recordId int,

patientId int,

calls int,

locationLatitute double,

locationLongtitue double,

recordTime string,

direction string

)

STORED BY 'com.aliyun.odps.CsvStorageHandler'

LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/oss-odps-test/Demo/';           
Step3 :通過MaxCompute查詢外部表

外部表建立成功後,便可如同普通表一樣使用這個外部表。假設/demo/vehicle.csv資料如下:

1.    

1,1,51,1,46.81006,-92.08174,9/14/2014

0:00,S

2.    

1,2,13,1,46.81006,-92.08174,9/14/2014

0:00,NE

3.    

1,3,48,1,46.81006,-92.08174,9/14/2014

4.    

1,4,30,1,46.81006,-92.08174,9/14/2014

0:00,W

5.    

1,5,47,1,46.81006,-92.08174,9/14/2014

6.    

1,6,9,1,46.81006,-92.08174,9/14/2014

7.    

1,7,53,1,46.81006,-92.08174,9/14/2014

0:00,N

8.    

1,8,63,1,46.81006,-92.08174,9/14/2014

0:00,SW

9.    

1,9,4,1,46.81006,-92.08174,9/14/2014

10.  1,10,31,1,46.81006,-92.08174,9/14/2014

執行如下 SQL 語句:

select

recordId, patientId, direction

from

ambulance_data_csv_external

where

patientId > 25;

輸出結果如下:

+------------+------------+-----------+

| recordId   | patientId 

| direction |

| 1          | 51         | S         |

| 3          | 48         | NE        |

| 4          | 30         | W         |

| 5          | 47         | S         |

| 7          | 53         | N         |

| 8          | 63         | SW        |

10.  |

10         | 31         | N        

|

11.  +------------+------------+-----------+

關于更多詳細的OSS外表使用方法,請參考官方文檔, 點這裡

場景二:阿裡雲産品消費賬單分析

完成案例1中準備工作1、3步驟。

:通過費用中心同步賬單資料到OSS

打開費用中心->消費記錄->

存儲到OSS

,輸入oss bucket,此示例為oms-yl 

服務開通後,每天會将增量的執行個體消費明細資料生成檔案同步存儲到您的OSS指定的bucket中。

:通過MaxCompute注冊賬單處理類

1、點選

這裡下載下傳,

odps-udf-example-0.30.0-SNAPSHOT-jar-with-dependencies.jar

2、将自定義代碼編譯打包,并上傳到 MaxCompute。

add

jar odps-udf-example-0.30.0-SNAPSHOT-jar-with-dependencies.jar

Step4

示例:建立5月4日的賬單消費表

CREATE EXTERNAL TABLE IF NOT EXISTS oms_oss_0504

(

月份 string,

資源擁有者 string,

消費時間 string,

消費類型 string,

賬單編号 string,

商品 string,

計費方式 string,

服務開始時間 string,

服務結束時間 string,

服務時長 string,

财務核算單元 string,

資源id string,

資源昵稱 string,

TAG string,

地域 string,

可用區 string,

公網ip string,

内網ip string,

資源配置 string,

原價 string,

優惠金額 string,

應付金額 string,

計費項1 string,

使用量1 string,

資源包扣除1 string,

原價1 string ,

應付金額1 string,

計費項2 string,

使用量2 string,

資源包扣除2 string,

原價2 string,

應付金額2 string,

計費項3 string,

使用量3 string,

資源包扣除3 string,

原價3 string,

應付金額3 string,

計費項4 string,

使用量4 string,

資源包扣除4 string,

原價4 string,

應付金額4 string,

計費項5 string,

使用量5 string,

資源包扣除5 string,

原價5 string,

應付金額5 string,

計費項6 string,

使用量6 string,

資源包扣除6 string,

原價6 string,

應付金額6 string,

計費項7 string,

使用量7 string,

資源包扣除7 string,

原價7 string,

應付金額7 string,

計費項8 string,

使用量8 string,

資源包扣除8 string,

原價8 string,

應付金額8 string,

計費項9 string,

使用量9 string,

資源包扣除9 string,

原價9 string,

應付金額9 string

)

STORED BY 'com.aliyun.odps.udf.example.text.TextStorageHandler' --STORED BY 指定自定義 StorageHandler 的類名。

with SERDEPROPERTIES (

'odps.text.option.complex.text.enabled'='true',

'odps.text.option.strict.mode'='false'

--遇到列數不一緻的情況不會抛異常,如果實際列數少于schema列數,将所有列按順序比對,剩下的不足的列補NULL

)

LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/oms-yl/2018-05-04/'

USING 'text_oss.jar'; --同時需要指定賬單中的文本處理類定義所在的 jar 包

            
Step5

查詢示例:查詢MaxCompute按量存儲消費賬單

select  月份,使用量3,原價3,應付金額3 from oms_oss 
where 計費項3='Storage' and 商品=大資料計算服務MaxCompute(按量付費);           

MaxCompute助力OSS支援EB級計算力

四、 總結

通過上述示例,将沉睡在OSS中的非結構化資料激活,通過MaxCompute把海量資料分析工作效率提升至分鐘級,幫助客戶更高效、更低成本的挖掘海量資料價值。現在請您趕快通過下述方式聯系我們吧!

開通MaxCompute服務,

申請MaxCompute試用代金券,

購買咨詢MaxCompute,請掃二維碼加入釘釘群。

MaxCompute助力OSS支援EB級計算力