TableStore实战:DLA+SQL实时分析TableStore
一、實戰背景
什么是DLA(DataLake Analytics數據湖)?他是無服務器化(Serverless)的云上交互式查詢分析服務。作為分布式交互式分析服務,是表格存儲計算生態的重要組成之一。為了使用戶更好的了解DLA的功能、使用方式,創建了這一實戰樣例。
基于DLA可以不用做任何ETL、數據搬遷等前置過程, 實現跨各種異構數據源進行大數據關聯分析,并且支持數據回流到各個異構數據源,從而極大的節省成本、 降低延時和提升用戶體驗。
基于JDBC,表格存儲的控制臺將SQL查詢直接做了集成,數據為公共實例,用戶不用開通服務也可免費體驗表格存儲的實時SQL分析、查詢功能,樣例如下所示:__官網控制臺地址:__項目樣例
?
需求場景:黑五交易數據
本實戰案例中,我們從?https://www.kaggle.com/mehdidag/black-friday?上獲取數據, 存儲到TableStore,然后基于DLA做分析,帶你切身感受下數據的價值!
"Black Friday",即“黑色星期五”,是美國人一年中購物最瘋狂的日子,類似于中國的“雙十一”購物狂歡節。
一般黑色星期五的活動主要在線下,但逐漸也有往線上發展的趨勢,比如Amazon就有針對黑色星期五做的線上銷售活動, 與天貓雙十一很相似。同樣的,這樣的活動會產生大量有意義的商業數據。
我們在DLA中定義了一個叫blackfriday50w的表,映射到TableStore中的一個表,用來描述用戶購買商品的。
如下為示例數據的表結構、與真實數據截圖
?
二、表格存儲(TableStore)方案
?
準備工作
若您對于DLA實時在線分析TableStore的功能感興趣,希望開始自己系統的搭建之旅,只需按照如下步驟便可以著手搭建了:
1、開通表格存儲
通過控制臺開通表格存儲服務,表格存儲即開即用(后付費),采用按量付費方式,已為用戶提供足夠功能測試的免費額度。表格存儲官網控制臺、免費額度說明。
?
2、創建實例
通過控制臺創建表格存儲實例。
?
3、導入數據
該數據共有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 changedmysql> 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產品和銷售量
- 中高端產品占總體GMV的比例
- 不同年齡段的消費客單價趨勢
- 高消費人群的性別和年齡趨勢
?
這樣,基于DLA+SQL實現的TableStore實時在線分析已經完成,是不是很簡單?
?
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的TableStore实战:DLA+SQL实时分析TableStore的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用算力基于 RocketMQ 实现金融
- 下一篇: 主流微服务注册中心浅析和对比