什么是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,开来尝试吧!
本文为云栖社区原创内容,未经容许不得转载。