什麼是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中的一個表,用來描述用戶購買商品的。服務器
以下爲示例數據的表結構、與真實數據截圖網絡
若您對於DLA實時在線分析TableStore的功能感興趣,但願開始本身系統的搭建之旅,只需按照以下步驟即可以着手搭建了:less
一、開通表格存儲分佈式
經過控制檯開通表格存儲服務,表格存儲即開即用(後付費),採用按量付費方式,已爲用戶提供足夠功能測試的免費額度。表格存儲官網控制檯、免費額度說明。測試
二、建立實例大數據
經過控制檯建立表格存儲實例。spa
三、導入數據
該數據共有53.8萬行,12個列,咱們經過SDK將全量數據存儲在TableStore的表。用戶可經過控制檯插入2條測試數據;
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,開來嘗試吧!
本文爲雲棲社區原創內容,未經容許不得轉載。