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

1、實戰背景

什麼是DLA(DataLake Analytics數據湖)?他是無服務器化(Serverless)的雲上交互式查詢分析服務。做爲分佈式交互式分析服務,是表格存儲計算生態的重要組成之一。爲了使用戶更好的瞭解DLA的功能、使用方式,建立了這一實戰樣例。
基於DLA能夠不用作任何ETL、數據搬遷等前置過程, 實現跨各類異構數據源進行大數據關聯分析,而且支持數據迴流到各個異構數據源,從而極大的節省成本、 下降延時和提高用戶體驗。html

基於JDBC,表格存儲的控制檯將SQL查詢直接作了集成,數據爲公共實例,用戶不用開通服務也可免費體驗表格存儲的實時SQL分析、查詢功能,樣例以下所示:__官網控制檯地址:__項目樣例mysql

需求場景:黑五交易數據

本實戰案例中,咱們從 https://www.kaggle.com/mehdidag/black-friday 上獲取數據, 存儲到TableStore,而後基於DLA作分析,帶你切身感覺下數據的價值!sql

"Black Friday",即「黑色星期五」,是美國人一年中購物最瘋狂的日子,相似於中國的「雙十一」購物狂歡節。
通常黑色星期五的活動主要在線下,但逐漸也有往線上發展的趨勢,好比Amazon就有針對黑色星期五作的線上銷售活動, 與天貓雙十一很類似。一樣的,這樣的活動會產生大量有意義的商業數據。
咱們在DLA中定義了一個叫blackfriday50w的表,映射到TableStore中的一個表,用來描述用戶購買商品的。服務器

以下爲示例數據的表結構、與真實數據截圖網絡

2、表格存儲(TableStore)方案

準備工做

若您對於DLA實時在線分析TableStore的功能感興趣,但願開始本身系統的搭建之旅,只需按照以下步驟即可以着手搭建了:less

一、開通表格存儲分佈式

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

二、建立實例大數據

經過控制檯建立表格存儲實例。spa

三、導入數據

該數據共有53.8萬行,12個列,咱們經過SDK將全量數據存儲在TableStore的表。用戶可經過控制檯插入2條測試數據;

開通DLA服務

  • DLA服務開通
    用戶進入產品介紹頁,選擇開通服務:https://www.aliyun.com/product/datalakeanalytics
  • 經過DLA控制檯開通TableStore數據源
  • 開通數據源後建立服務訪問點(擇經典網絡,若已有vpc,可選擇vpc)
  • 登陸CMS(帳密會在開通服務後發送站內消息,消息中查看)

建立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表了。

3、表格存儲控制檯展現

以下爲控制提供的SQL場景,用戶能夠仿照控制檯中實例本身寫一些需求SQL,開來嘗試吧!

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

  • 中高端產品佔整體GMV的比例

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

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



本文做者:潭潭

閱讀原文

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

相關文章
相關標籤/搜索