Severless SQL on OSS 實驗(DataLakeAnalytics on OSS)

摘要: 數據存儲在OSS後,能夠有多種方式查詢分析OSS數據,如自建Spark/Presto/Impala(阿里雲EMR以及Hadoop社區官方已支持OSS), 使用MaxCompute、DataLakeAnalytics等。數據庫

基於OSS的數據查詢分析

數據存儲在OSS後,有多種查詢分析的方法,包括阿里雲MaxCompute、DataLakeAnalytics產品等Severless查詢分析服務,也能夠自建Spark、Presto、Imapla應用來分析OSS上的數據。
less

實驗步驟(DataLakeAnalytics on OSS)

本次實驗,主要介紹實驗DataLakeAnalytics如何Severless地查詢分析OSS上的數據。
異步

服務開通

OSS服務:

1.開通OSS服務https://www.aliyun.com/product/ossoop

DataLakeAnalytics服務:

1.申請DataLakeAnalytics的試用資格
備註:目前DataLakeAnalytics公測中,需提交公測申請,開通試用。測試

操做步驟

準備數據

登陸控制檯, 並建立目錄

請建立華東1區域的OSS測試Bucket(目前DataLakeAnalytics產品公測區域爲華東1)。

備註:Bucket名稱是全局惟一,若是提示名稱已存在,請更換一個Bucket名稱。阿里雲

建立目錄(建議目錄以下):

建立目錄workshop_sh/trade, workshop_sh/user 

spa

下載模擬數據(該數據本次實驗的模擬數據)

http://testdatasample.oss-cn-hangzhou.aliyuncs.com/workshop_sh/workshop_sh.zip3d

將下載的將交易記錄和開戶信息數據,分別上傳到trade、user目錄


登陸Data Lake Analytics控制檯

點擊「登陸數據庫」,輸入開通服務時分配的用戶名和密碼,登陸Data Lake Analytics控制檯。

公測期間的分配的用戶名、密碼,開通服務的消息中能夠查看
rest

建立Schema和Table

建立Schema

輸入建立SCHEMA的語句,點擊「同步執行」。code

CREATE SCHEMA sh_trade

CREATE SCHEMA sh_trade
(注意:同一個阿里雲region,schema名全局惟一,建議根據業務定義,已有重名schema,在建立時會提示報錯,則請換一個schema名字。)

建立表

在「數據庫」的下拉框中,選擇剛剛建立的schema。
而後在SQL文本框中輸入建表語句以下,並點擊同步執行。其中,Location替換爲您的Bucket和測試數據的路徑

1.建立交易記錄表:
說明:LOCATION 'oss://Bucket名稱/交易記錄表目錄/'
實驗中,替換LOCATION 'oss://您的OSS存儲空間名稱/workshop_sh/user/'。如:oss://workshopsh20180608100/workshop_sh/user

CREATE EXTERNAL TABLE tradelist_csv (
    t_userid STRING COMMENT '用戶ID',
    t_dealdate STRING COMMENT '申請時間', 
    t_businflag STRING COMMENT '業務代碼', 
    t_cdate STRING COMMENT '確認日期', 
    t_date STRING COMMENT '申請日期',
    t_serialno STRING COMMENT'申請序號', 
    t_agencyno STRING COMMENT'銷售商編號', 
    t_netno STRING  COMMENT'網點編號',
    t_fundacco STRING COMMENT'基金帳號',
    t_tradeacco STRING COMMENT'交易帳號',
    t_fundcode STRING  COMMENT'基金代碼',
    t_sharetype STRING COMMENT'份額類別',
    t_confirmbalance DOUBLE  COMMENT'確認金額',
    t_tradefare DOUBLE COMMENT'交易費',
    t_backfare DOUBLE COMMENT'後收手續費',
    t_otherfare1 DOUBLE COMMENT'其餘費用1',
    t_remark STRING COMMENT'備註'
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
    STORED AS TEXTFIlE
    LOCATION 'oss://testdatasample/workshop_sh/trade/';

2.建立開戶信息表:
說明:LOCATION 'oss://Bucket名稱/開戶信息表目錄/'
實驗中,替換LOCATION 'oss://您的OSS存儲空間名稱/workshop_sh/user/'。 如:oss://workshopsh20180608100/workshop_sh/user

CREATE EXTERNAL TABLE userinfo (
    u_userid STRING COMMENT '用戶ID',
    u_accountdate STRING COMMENT '開戶時間', 
    u_gender STRING COMMENT '性別', 
    u_age INT COMMENT '年齡', 
    u_risk_tolerance INT COMMENT '風險承受能力,1-10,10爲最高級',
    u_city STRING COMMENT'所在城市', 
    u_job STRING COMMENT'工做類別, A-K', 
    u_income DOUBLE  COMMENT'年收入(萬)'
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
    STORED AS TEXTFIlE
    LOCATION 'oss://testdatasample/workshop_sh/user/';

3.建表完畢後,刷新頁面,在左邊導航條中能看到schema下的2張表

SQL查詢(同步執行)

1.查詢交易機構SXS_0010,在0603至0604的100條交易記錄

SELECT * FROM tradelist_csv 
WHERE t_cdate >= '2018-06-03' and t_cdate <= '2018-06-04' and t_agencyno = 'SXS_0010' 
limit 100;

顯示執行結果

2.查詢各城市、男性女性人羣,購買的基金總額(多表Join查詢)

SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance 
FROM tradelist_csv , userinfo  
where u_userid = t_userid 
GROUP BY u_city, u_gender 
ORDER BY sum_balance DESC;

SQL查詢(異步執行)

異步執行查詢,將查詢結果,以CSV格式,輸出到OSS上

點擊「執行狀態」,可看到該異步查詢任務的執行狀態

主要分爲:「RUNNING」,「SUCCESS」,「FAILURE」。
點擊「刷新」,當STATUS變爲「SUCCESS」時,能夠查看到查詢結果輸出到OSS的文件路徑。

查看導出OSS的結果文件

實驗耗費

OSS存儲的費用

原文連接

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索