如何进行基于Data Lake Analytics的Serverless SQL大数据分析

75次阅读
没有评论

共计 3854 个字符,预计需要花费 10 分钟才能阅读完成。

这篇文章给大家介绍如何进行基于 Data Lake Analytics 的 Serverless SQL 大数据分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

背景介绍

TableStore(简称 OTS)是阿里云的一款分布式表格系统,为用户提供 schema-free 的分布式表格服务。随着越来越多用户对 OLAP 有强烈的需求,我们提供在表格存储上接入 Data Lake Analytics(简称 DLA)服务的方式,提供一种快速的 OLAP 解决方案。DLA 是阿里云上的一款的通用 SQL 查询引擎,通过在 OTS 连通 DLA 服务,使用通用的 SQL 语言(兼容 mysql5.7 绝大部分查询语法),在表格存储上做灵活的数据分析任务。

架构视图

如上图所示,整体 OLAP 查询架构涉及 3 款阿里云产品:DLA,OTS,OSS。其中 DLA 负责分布式 SQL 查询计算,在实际运行过程中,会将用户 sql 查询请求进行任务拆解,产生若干可并行化的子任务,提升数据计算和查询能力。OTS 为数据存储层,用于接收 DLA 的各类子查询任务。如果用户已经有存量的数据在 OTS 上,可以直接在 DLA 上建立映射视图,实现快速体验 SQL 计算带来的便捷。OSS 为分布式对象存储系统,主要用于用户查询结果数据的保存。

因此用户要想快速体验 SQL on OTS,必须在开通 OTS 的前提下,完成 DLA 和 OSS 服务的开通。通过上述 3 个云产品的配合,用户就能在 OTS 上快速执行 SQL 计算。目前开通 OSS 服务的主要原因是 DLA 默认回查询结果集数据写回到 OSS 存储,因此需要引入一个额外的存储依赖,但仅依赖用户开通 OSS 服务,不需要用户预先创建 OSS 存储实例。

目前开服公测的区域是上海区,对应的实例是该 region 内所有的容量型实例。在开通 DLA 服务时,需要先填写公测申请,通过之后按照“接入方式”小节的步骤,能快速完成接入体验。

接入方式

整个主要包含 OTS、OSS、DLA 的服务接入。需要注意的一点是,完成接入之后,就会按照实际查询产生相应的费用。如在这个过程中,用户账号是欠费的,将会发生查询失败。

OTS 服务开通

如果用户已经开通的 OTS 服务,并且上面已经包含存量的实例,表格数据,则忽略该步骤。

对于首次使用 OTS 的用户,可按照下述方式开通 OTS:

登录 https://www.aliyun.com;

进入“产品”- 云计算基础 – 数据库 –“表格存储 TableStore”;

按照上面的文档说明,快速建立实例和表格,进行体验;

1)使用控制台,快速创建测试表格:

2)使用控制台,快速插入测试数据:

OSS 服务开通

登录 https://www.aliyun.com;

进入“产品”- 云计算基础 – 存储服务 –“对象存储 OSS”;

直接点击服务开通即可。

OSS 服务开通后,不需要创景对象实例,DLA 接入时,会自动为用户在 OSS 服务中,创建用于存储查询结果数据的对象存储实例,用户不需要关心。

DLA 服务开通

登录 https://www.aliyun.com;

进入“产品”- 大数据 – 大数据计算 –“Data Lake Analytics”;

直接点击服务开通;

注意:处于公测阶段时,开通服务需要做公测申请,填写好相关信息即可。

DLA on OTS 接入

按照下列步骤,在 DLA 上建立 OTS 的映射:

开通 DLA 服务之后,可以选择不同 region,选择开通对应 region 的 DLA 服务实例(如现在华东 2 的上海区域)。不同的 region,对应不同的账号,不同 region 的 DLA 账号,不能混用,

![service_open.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/ecc5446d0d8298adc493a72de5567d3d.jpg)
![service_open2.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/acba06dae5f78a2ed740bc67397a0316.jpg)
注意:账号创建完成之后,会收到相关邮件 (邮箱为阿里云的注册邮箱),内含该 region 的 DLA 账号和密码,注意查收。

选择 region,授权 DLA 访问 OTS 上的用户实例数据。

服务开通之后,有 3 中 SQL 访问方式:控制台、mysql client,JDBC。

控制台访问

点击数据库连接,使用邮件中的该 region 的用户名和密码,连接进入控制台。

进入控制台后,需要为 OTS 上的实例表格数据建立映射信息。场景举例:假设用户在上海 region 已经有一个名为 sh_tpch 的实例,该实例包含表格 test001, 里面包含 2 行测试数据。对该实例建立映射的步骤包括:

1)将 ots 的实例映射成 DLA 的一个 DataBase 实例:
在建立 DLA 的 Database 映射前,首先需要在 OTS 上创建一个表格存储的实例 instance,如:

 创建一个实例,名为 sh-tpch,对应的 endpoint 为 https://sh-tpch.cn-shanghai.ots.aliyuncs.com。

完成测试实例创建后,执行下列语句建立 Database 映射:

CREATE SCHEMA sh_tpch001 with DBPROPERTIES(LOCATION = https://sh-tpch.cn-shanghai.ots.aliyuncs.com , catalog= ots , instance = sh-tpch 
注意:使用 mysql client 时,可以使用 create database 或 create schema 语句进行创建 db 映射;但是在控制台,目前只支持 create schema 语句创建 db 映射。

上述语句,将在 DLA 上创建一个名为 sh_tpch001 的 database,对应的实例是 ots 的 sh-tpch.cn-shanghai.ots.aliyuncs.com 集群下名为 sh-tpch 的实例。通过上面的语句,就能产生一个 ots 的实例映射。

2)在 tp_tpch001 的 DB 下,建立表格的映射:
在建立 DLA 的表格映射前,首先需要在 OTS 创建测试表,流程参考 OTS 服务开通 小节。

测试表格创建完成后,执行下列语句建立表格映射:

CREATE TABLE test001 (pk0 int , primary key(pk0));
注意:主要建立 DLA 映射表时,指定的 Primary Key 必须跟 OTS 表格定义 Primary Key 列表一致。因为 Primary Key 必须能是唯一的定位一行,一旦映射表的 Primary Key 列表与 OTS 表格的 PK 不一致,则可能会导致 SQL 查询结果出现非预期的错误。

例如:用户的 OTS 实例 sh_tpch 上包含 test001 表格,其中只有一列 pk0。上面的命令就完成了在 DLA 的实例 sh_tpch001 上,创建映射表 test001。使用 show 命令能查看该表创建成功。

3) 使用 select 语句执行 sql 查询:

1.  查出所有数据:select * from test001;

2.  执行 count 统计:select count(*) from test001;
3.  执行 sum 统计:select sum(pk0) from test001;

4)更为丰富执行语句,请查看如下的帮助说明文档:

create schema 语句:https://help.aliyun.com/document_detail/72005.html
create table 语句:https://help.aliyun.com/document_detail/72006.html
select 语句:https://help.aliyun.com/document_detail/71044.html
show 语句:https://help.aliyun.com/document_detail/72011.html
drop table 语句:https://help.aliyun.com/document_detail/72008.html
drop schema 语句:https://help.aliyun.com/document_detail/72007.html

5)在做 SQL 执行时,可以选择同步执行结果,返回满足条件的前 10000 条记录;如果要获大结果集数据,需要选择异步执行,并使用 show query_id 的方式异步获取结果:

show query_task where id =  59a05af7_1531893489231

mysql 访问

使用标准的 mysql client 也能快速连通 DLA 的数据实例。其中连接语句为:

mysql -h service.cn-shanghai.datalakeanalytics.aliyuncs.com -P 10000 -u  username  -p  password  -c -A

其他操作语句跟“控制台访问”小节介绍一致。

JDBC 访问

也可以使用标准的 java api 实现访问,连接串为:

jdbc:mysql://service.cn-shanghai.datalakeanalytics.aliyuncs.com:10000/

关于如何进行基于 Data Lake Analytics 的 Serverless SQL 大数据分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3854字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)