1. 程式人生 > >TableStore實戰:DLA+SQL實時分析TableStore

TableStore實戰:DLA+SQL實時分析TableStore

一、實戰背景

什麼是DLA(DataLake Analytics資料湖)?他是無伺服器化(Serverless)的雲上互動式查詢分析服務。作為分散式互動式分析服務,是表格儲存計算生態的重要組成之一。為了使使用者更好的瞭解DLA的功能、使用方式,建立了這一實戰樣例。
基於DLA可以不用做任何ETL、資料搬遷等前置過程, 實現跨各種異構資料來源進行大資料關聯分析,並且支援資料迴流到各個異構資料來源,從而極大的節省成本、 降低延時和提升使用者體驗。

image.png | left | 378x320

基於JDBC,表格儲存的控制檯將SQL查詢直接做了整合,資料為公共例項,使用者不用開通服務也可免費體驗表格儲存的實時SQL分析、查詢功能,樣例如下所示:__官網控制檯地址:__

專案樣例

dla.gif | center | 827x492

需求場景:黑五交易資料

本實戰案例中,我們從 https://www.kaggle.com/mehdidag/black-friday 上獲取資料, 儲存到TableStore,然後基於DLA做分析,帶你切身感受下資料的價值!

"Black Friday",即“黑色星期五”,是美國人一年中購物最瘋狂的日子,類似於中國的“雙十一”購物狂歡節。
一般黑色星期五的活動主要線上下,但逐漸也有往線上發展的趨勢,比如Amazon就有針對黑色星期五做的線上銷售活動, 與天貓雙十一很相似。同樣的,這樣的活動會產生大量有意義的商業資料。
我們在DLA中定義了一個叫blackfriday50w的表,對映到TableStore中的一個表,用來描述使用者購買商品的。

如下為示例資料的表結構、與真實資料截圖

image.png | left | 747x314

二、表格儲存(TableStore)方案

準備工作

若您對於DLA實時線上分析TableStore的功能感興趣,希望開始自己系統的搭建之旅,只需按照如下步驟便可以著手搭建了:

1、開通表格儲存

通過控制檯開通表格儲存服務,表格儲存即開即用(後付費),採用按量付費方式,已為使用者提供足夠功能測試的免費額度。表格儲存官網控制檯免費額度說明

2、建立例項

通過控制檯建立表格儲存例項。

image | left

3、匯入資料

該資料共有53.8萬行,12個列,我們通過SDK將全量資料儲存在TableStore的表。使用者可通過控制檯插入2條測試資料;

image.png | left | 747x219

開通DLA服務

  • DLA服務開通
    使用者進入產品介紹頁,選擇開通服務:https://www.aliyun.com/product/datalakeanalytics
  • 通過DLA控制檯開通TableStore資料來源
  • 開通資料來源後建立服務訪問點(擇經典網路,若已有vpc,可選擇vpc)
  • 登入CMS(賬密會在開通服務後傳送站內訊息,訊息中檢視)

image.png | left | 827x322

建立DLA外表

1)建立自己的DLA庫(相關資訊從上述過程中查詢):

mysql> create database hangzhou_ots_test with dbproperties (
  catalog = 'ots',
  location = 'https://instanceName.cn-hangzhou.ots-internal.aliyuncs.com',
  instance = 'instanceName'
);

Query OK, 0 rows affected (0.23 sec)

#hangzhou_ots_test             ---請注意庫名,允許字母、數字、下劃線
#catalog = 'ots',              ---指定為ots,是為了區分其他資料來源,比如oss、rds等
#location = 'https://xxx'      ---ots的endpoint,從例項上可以看到
#instance = 'hz-tpch-1x-vol'

2)檢視自己建立的庫:

mysql> show databases;
+------------------------------+
| Database                     |
+------------------------------+
| hangzhou_ots_test            |
+------------------------------+
1 rows in set (0.22 sec)

3)檢視自己的DLA表:

mysql> use hangzhou_ots_test;
Database changed

mysql> show tables;
Empty set (0.30 sec)

4)建立DLA表,對映到OTS的表:

mysql> CREATE EXTERNAL TABLE `tableName` (
  `pk1` varchar(100) not NULL ,
  `pk2` int not NULL ,
  `col1` varchar(100) NULL ,
  `col2` varchar(100) NULL ,
  PRIMARY KEY (`pk1`, `pk2`)
);
Query OK, 0 rows affected (0.36 sec)

## `tableName`                  ---- TableStore中對應的表名(dla中會轉換成小寫後做對映)
## `pk2` int not NULL           ---- 如果是主鍵的話,必須要not null
## PRIMARY KEY (`pk1`, `pk2`)   ---- 務必與ots中的主鍵順序相同;名稱的話也要對應

5)檢視自己建立的表和相關的DDL語句:

mysql> show tables;
+------------+
| Table_Name |
+------------+
| tablename  |
+------------+
1 row in set (0.35 sec)

6)開始查詢和分析(使用者可以分析自己的資料,符合mysql的語法)

mysql> select count(*) from tablename;
+-------+
| _col0 |
+-------+
|    25 |
+-------+
1 row in set (1.19 sec)

這樣,一個TableStore在DLA中的關聯外表建立成功,使用者便可以通過JDBC、或者CMS控制檯,根據自己的需求實時分析自己的TableStore表了。

三、表格儲存控制檯展示

如下為控制提供的SQL場景,使用者可以仿照控制檯中例項自己寫一些需求SQL,開來嘗試吧!

  • 最暢銷的top10產品和銷售量

image.png | left | 719x221

  • 中高階產品佔總體GMV的比例

image.png | left | 747x261

  • 不同年齡段的消費客單價趨勢

image.png | left | 747x248

  • 高消費人群的性別和年齡趨勢

image.png | left | 719x240

四、歡迎加入

這樣,基於DLA+SQL實現的TableStore實時線上分析已經完成,是不是很簡單?
對錶格儲存(TableStore)感興趣的使用者,歡迎加入【表格儲存公開交流群】,群號:11789671。

image | left