1. 程式人生 > >基於Data Lake Analytics的Serverless SQL大數據分析

基於Data Lake Analytics的Serverless SQL大數據分析

RoCE sch api mage base 映射 子查詢 sele fff

摘要: TableStore(簡稱OTS)是阿裏雲的一款分布式表格系統,為用戶提供schema-free的分布式表格服務。隨著越來越多用戶對OLAP有強烈的需求,我們提供在表格存儲上接入Data Lake Analytics(簡稱DLA)服務的方式,提供一種快速的OLAP解決方案。

背景介紹
TableStore(簡稱OTS)是阿裏雲的一款分布式表格系統,為用戶提供schema-free的分布式表格服務。隨著越來越多用戶對OLAP有強烈的需求,我們提供在表格存儲上接入Data Lake Analytics(簡稱DLA)服務的方式,提供一種快速的OLAP解決方案。DLA是阿裏雲上的一款的通用SQL查詢引擎,通過在OTS連通DLA服務,使用通用的SQL語言(兼容mysql5.7絕大部分查詢語法),在表格存儲上做靈活的數據分析任務。

架構視圖
技術分享圖片

如上圖所示,整體OLAP查詢架構涉及3款阿裏雲產品:DLA,OTS,OSS。其中DLA負責分布式SQL查詢計算,在實際運行過程中,會將用戶sql查詢請求進行任務拆解,產生若幹可並行化的子任務,提升數據計算和查詢能力。OTS為數據存儲層,用於接收DLA的各類子查詢任務。如果用戶已經有存量的數據在OTS上,可以直接在DLA上建立映射視圖,實現快速體驗SQL計算帶來的便捷。OSS為分布式對象存儲系統,主要用於用戶查詢結果數據的保存。

因此用戶要想快速體驗SQL on OTS,必須在開通OTS的前提下,完成DLA和OSS服務的開通。通過上述3個雲產品的配合,用戶就能在OTS上快速執行SQL計算。目前開通OSS服務的主要原因是DLA默認回查詢結果集數據寫回到OSS存儲,因此需要引入一個額外的存儲依賴,但僅依賴用戶開通OSS服務,不需要用戶預先創建OSS存儲實例。

目前開服公測的區域是上海區,對應的實例是該region內所有的容量型實例。在開通DLA服務時,需要先填寫公測申請,通過之後按照“接入方式”小節的步驟,能快速完成接入體驗。

接入方式
整個主要包含OTS、OSS、DLA的服務接入。需要註意的一點是,完成接入之後,就會按照實際查詢產生相應的費用。如在這個過程中,用戶賬號是欠費的,將會發生查詢失敗。

OTS服務開通
如果用戶已經開通的OTS服務,並且上面已經包含存量的實例,表格數據,則忽略該步驟。

對於首次使用OTS的用戶,可按照下述方式開通OTS:

登錄https://www.aliyun.com;
進入“產品”->"雲計算基礎"->"數據庫"->“表格存儲 TableStore”;

按照上面的文檔說明,快速建立實例和表格,進行體驗;

1)使用控制臺,快速創建測試表格:
技術分享圖片

2)使用控制臺,快速插入測試數據:
技術分享圖片

OSS服務開通
登錄https://www.aliyun.com;
進入“產品”->"雲計算基礎"->"存儲服務"->“對象存儲 OSS”;
直接點擊服務開通即可。
OSS服務開通後,不需要創景對象實例,DLA接入時,會自動為用戶在OSS服務中,創建用於存儲查詢結果數據的對象存儲實例,用戶不需要關心。

DLA服務開通
登錄https://www.aliyun.com;
進入“產品”->"大數據"->"大數據計算"->“Data Lake Analytics”;
直接點擊服務開通;
註意:處於公測階段時,開通服務需要做公測申請,填寫好相關信息即可。

DLA on OTS接入
按照下列步驟,在DLA上建立OTS的映射:

開通DLA服務之後,可以選擇不同region,選擇開通對應region的DLA服務實例(如現在華東2的上海區域)。不同的region,對應不同的賬號,不同region的DLA賬號,不能混用,如下圖所示:

技術分享圖片
技術分享圖片

註意:賬號創建完成之後,會收到相關郵件(郵箱為阿裏雲的註冊郵箱),內含該region的DLA賬號和密碼,註意查收。
選擇region,授權DLA訪問OTS上的用戶實例數據,如下圖所示:
技術分享圖片
服務開通之後,有3中SQL訪問方式:控制臺、mysql client,JDBC。
控制臺訪問
點擊數據庫連接,使用郵件中的該region的用戶名和密碼,連接進入控制臺。

技術分享圖片

進入控制臺後,需要為OTS上的實例表格數據建立映射信息。場景舉例:假設用戶在上海region已經有一個名為sh_tpch的實例,該實例包含表格test001,裏面包含2行測試數據。對該實例建立映射的步驟包括:

1)將ots的實例映射成DLA的一個DataBase實例:
在建立DLA的Database映射前,首先需要在OTS上創建一個表格存儲的實例instance,如:

創建一個實例,名為sh-tpch,對應的endpoint為https://sh-tpch.cn-shanghai.ots.aliyuncs.com。
完成測試實例創建後,執行下列語句建立Database映射:

CREATE SCHEMA sh_tpch001 with DBPROPERTIES(LOCATION =‘https://sh-tpch.cn-shanghai.ots.aliyuncs.com‘, catalog=‘ots‘, instance =‘sh-tpch‘);

註意:使用mysql client時,可以使用create database或create schema語句進行創建db映射;但是在控制臺,目前只支持create schema語句創建db映射。
技術分享圖片

上述語句,將在DLA上創建一個名為sh_tpch001的database,對應的實例是ots的sh-tpch.cn-shanghai.ots.aliyuncs.com集群下名為sh-tpch的實例。通過上面的語句,就能產生一個ots的實例映射。

2)在tp_tpch001的DB下,建立表格的映射:
在建立DLA的表格映射前,首先需要在OTS創建測試表,流程參考"OTS服務開通"小節。

測試表格創建完成後,執行下列語句建立表格映射:

CREATE TABLE test001 (pk0 int , primary key(pk0));

註意:主要建立DLA映射表時,指定的Primary Key必須跟OTS表格定義Primary Key列表一致。因為Primary Key必須能是唯一的定位一行,一旦映射表的Primary Key列表與OTS表格的PK不一致,則可能會導致SQL查詢結果出現非預期的錯誤。
技術分享圖片

例如:用戶的OTS實例sh_tpch上包含test001表格,其中只有一列pk0。上面的命令就完成了在DLA的實例sh_tpch001上,創建映射表test001。使用show命令能查看該表創建成功:

技術分享圖片

3)使用select語句執行sql查詢:

  1. 查出所有數據:
    select * from test001;
    技術分享圖片

  2. 執行count統計:
    select count(*) from test001;
    技術分享圖片

  3. 執行sum統計:
    select sum(pk0) from test001;
    技術分享圖片

4)更為豐富執行語句,請查看如下的幫助說明文檔:

create schema語句:https://help.aliyun.com/document_detail/72005.html
create table語句:https://help.aliyun.com/document_detail/72006.html
select語句:https://help.aliyun.com/document_detail/71044.html
show語句:https://help.aliyun.com/document_detail/72011.html
drop table語句:https://help.aliyun.com/document_detail/72008.html
drop schema語句:https://help.aliyun.com/document_detail/72007.html
5)在做SQL執行時,可以選擇同步執行結果,返回滿足條件的前10000條記錄;如果要獲大結果集數據,需要選擇異步執行,並使用show query_id的方式異步獲取結果:

show query_task where id = ‘59a05af7_1531893489231‘;
技術分享圖片
技術分享圖片

mysql訪問
使用標準的mysql client也能快速連通DLA的數據實例。其中連接語句為:

mysql -h service.cn-shanghai.datalakeanalytics.aliyuncs.com -P 10000 -u <username> -p <password> -c -A
其他操作語句跟“控制臺訪問”小節介紹一致。

JDBC訪問
也可以使用標準的java api實現訪問,連接串為:

jdbc:mysql://service.cn-shanghai.datalakeanalytics.aliyuncs.com:10000/
其他操作語句跟“控制臺訪問”小節介紹一致。

總結
通過DLA+OTS,我們能讓用戶快速在表格存儲上體驗極致的分布式SQL計算。

Reference
表格存儲(Table Store): https://www.aliyun.com/product/ots
Data Lake Analytics: https://www.aliyun.com/product/datalakeanalytics

原文鏈接請添加鏈接描述

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

基於Data Lake Analytics的Serverless SQL大數據分析