數據存儲在OSS後,有多種查詢分析的方法,包括阿里雲MaxCompute、DataLakeAnalytics產品等Severless查詢分析服務,也能夠自建Spark、Presto、Imapla應用來分析OSS上的數據。數據庫
本文,介紹基於OSS+DataLakeAnalytics+QuickBI,實現對數據的存儲、Serverless化的Ad-hoc查詢、可視化BI的實驗。less
本次實驗,主要介紹,如何使用OSS+DataLakeAnalytics+QuickBI,實現對數據的存儲、交互式查詢分析、輸出BI報表的總體數據處理流程。適用於,日誌、交易記錄查詢分析和報表輸出等場景。異步
OSS服務:測試
1.開通OSS服務https://www.aliyun.com/product/ossui
DataLakeAnalytics服務:阿里雲
1.申請DataLakeAnalytics的試用資格
備註:目前DataLakeAnalytics公測中,需提交公測申請,開通試用。DataLakeAnalytics支持查詢分析OSS上的CSV、JSON、Parquet、ORC、AVRO、RCFile等數據文件。spa
準備數據3d
登陸控制檯, 並建立目錄rest
建立華東1區域的OSS測試Bucket。日誌
備註:Bucket名稱是全局惟一,若是提示名稱已存在,請更換一個Bucket名稱。
建立目錄(建議目錄以下):
建立目錄workshop_sh/trade, workshop_sh/user
下載模擬數據(該數據本次實驗的模擬數據)
http://testdatasample.oss-cn-hangzhou.aliyuncs.com/workshop_sh/workshop_sh.zip
將下載的將交易記錄和開戶信息數據,分別上傳到trade、user目錄
點擊「登陸數據庫」,輸入開通服務時分配的用戶名和密碼,登陸Data Lake Analytics控制檯。
公測期間的分配的用戶名、密碼,開通服務的消息中能夠查看
建立Schema
輸入建立SCHEMA的語句,點擊「同步執行」。
CREATE SCHEMA my_schema_name WITH DBPROPERTIES ( CATALOG = 'oss', LOCATION = 'oss://Bucket名稱/測試數據目錄/' );
注意:
建立表
在「數據庫」的下拉框中,選擇剛剛您建立的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(實驗時選擇您建立的schema)下的2張表
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;
異步執行查詢,將查詢結果,以CSV格式,輸出到OSS上
點擊「執行狀態」,可看到該異步查詢任務的執行狀態
主要分爲:「RUNNING」,「SUCCESS」,「FAILURE」。
點擊「刷新」,當STATUS變爲「SUCCESS」時,能夠查看到查詢結果輸出到OSS的文件路徑。
查看導出OSS的結果文件
建立數據源
說明:
建立數據集
說明
輸入SQL(輸入前述實驗步驟的SQL),並保存(如保存爲「citygender」)
建立儀表盤
說明
關於更多如何使用DataLakeAnalytics+QuickBI,對存儲在OSS上數據進行查詢分析,以及輸出BI報表,請參考DataLakeAnalytics、QuickBI的產品介紹。
本文做者:whj.
本文爲雲棲社區原創內容,未經容許不得轉載。