交互式分析加速查询MaxCompute封装API的最佳实践-阿里云开发者社区

开发者社区> 大数据> 正文

交互式分析加速查询MaxCompute封装API的最佳实践

简介: 本文将会为您介绍,如何使用交互式分析将MaxCompute中的数据加速查询,封装成数据服务API,对接BI工具调用API,实现从数据源--数据查询分析--数据服务--数据可视化展现的最佳实践。

概述

HoloStudio是基于交互式分析的一站式开发平台(关于交互式分析的介绍,请参见交互式分析介绍,并深度集成于DataWorks,能直接对接DataWorks的数据服务,支持将交互式分析中查询的表数据快速封装成API对外服务,无数需数据迁移就能够支持更丰富的应用场景。
本文将会为您介绍,如何使用交互式分析将MaxCompute中的数据加速查询,封装成数据服务API,对接BI工具调用API,实现从数据源--数据查询分析--数据服务--数据可视化展现的最佳实践。

案例背景:某机场大厅,大屏轮播当前城市各航班出发情况。
数据源:MaxCompute离线数据
数据处理:交互式分析
开发平台:DataWorks
BI工具:DataV
说明:

1.DataWorks公共云上Lightning数据源已关闭,请使用PostgreSQL数据源对接。
2.本案例是测试案例,实际情况请根据实际数据填写。

准备工作

1.开通计算服务并创建工作空间

创建DataWorks工作空间,(本示例采用杭州region,后不再解释)并同时配置MaxCompute和交互式分析计算引擎服务,若您在此之前并未开通这两种服务,可直接参见MaxCompute开通和交互式分析开通。若您已有DataWorks项目空间,将两种服务绑定至空间即可。
image.png

2.准备MaxCompute数据

在DataWorks控制台中创建MaxCompute上传数据

  • 本案例使用的MaxCompute建表DDL如下:
CREATE TABLE odps_airline(
    flight STRING ,//航班号
    model STRING ,//机型
    airline STRING ,//航空公司
    Destination STRING ,//目的地
    takeofftime STRING ,//起飞时间
    realtime STRING ,//实际起飞时间
    Terminal STRING ,//航站楼
    status STRING //航班状态
);
  • 本案例最终的表结构和部分数据如下:

image.png

HoloStudio加速查询数据

在DataWorks中选用HoloStudio,将MaxComppute中的数据导入交互式分析查询。这一步的目的是将MaxCompute中的数据加速查询,关于MaxCompute中的数据如何导入交互式分析请参见文档:https://help.aliyun.com/document_detail/135653.html?spm=a2c4g.11174283.6.558.3ade21310RvjGW
说明:交互式分析加速查询MaxCompute中的数据有两种方式:
1.直接查询(数据仍然存储在MaxCompute中)
2.导入查询(数据最终存在交互式分析中)
因为数据服务中的PostgreSQL数据源赞不支持外部表,故需要将MaxCompute中的数据导入到交互式分析中加速查询。
image.png
最终加速查询结果如下:
image.png

使用DataWorks数据服务生成API

MaxCompute表中的数据经过交互式分析加速查询后,可使用DataWorks数据服务生成API,并发布。操作步骤如下

1.新建数据源

A.单击DataWorks--数据服务,进入数据服务控制台,并单击新建--新建数据源
image.png
B.跳转到数据集成页面后,单击左侧菜单栏数据源--新增数据源(本示例采用PostgreSQL数据源)
C.在PostgreSQL数据源页面填写连接信息,填写完成,单击测试连通性,显示测试连通性成功表明数据源已连接。
image.png

配置项 内容 备注
数据源类型 连接串模式(数据集成网络可直接连通 必选
数据源名称 可自定义
适用环境 开发、生产 根据项目情况选择
JDBC URL jdbc:postgresql://ServerIP:Port/Database
- ServerIP:交互式分析实例的经典网络地址
- Port:交互式分析实例的经典端口地址
- Database:交互式分析的数据库名
- 示例:jdbc:postgresql://demo-cn-shanghai-internal.hologres.aliyuncs.com:80/postgres
用户名 当前账号的Access ID
密码 当前账号的Access Key

2.新建API

A.在DataWorks的数据服务页面,单击新建 > 生成API > 向导模式
image.png
B.在弹框中填写生成API配置信息示例如下,填写完并单击确认。
image.png

3.配置API参数

新建API成功之后,单击新建得API,进入配置页面进行参数配置,操作步骤如下:
A.选择数据源类型、数据源名称和数据表名称。
image.png

  • 数据源类型为PostgreSQL。
  • 数据源名称为您之前步骤新建的数据源。
  • 数据表名称为您在HoloStudio中新建的外部表

B.配置环境变量
image.png
C.选择参数。勾选您要作为API请求参数的字段和作为返回参数的字段。本案例是为了查询各航班动态,因此要返回所有数据,不设请求参数。
image.png
D.单击页面右侧的返回参数,设置参数描述信息。若不设置请求参数,需要勾选返回参数中的返回结果分页,避免单次查询性能过大影响查询结果。
image.png

4.API测试

完成API参数配置后,单击保存将配置信息保存,即可进入API测试。
单击右上角的测试,填写API请求参数,单击开始测试即可。若页面右下角显示测试成功API调用延迟时间,如下图所示,则表明测试成功,可以看到通过交互式分析直接加速查询MaxCompute表数据可以达到毫秒级返回,相比比直接通过MaxCompute SQL查询性能有显著提升。image.png

4.发布API

API测试成功之后即可将API发布,单击页面右上角发布,发布成功后,单击右上角服务管理进行API信息查看
image.png
选择左侧菜单栏API调用,即可获取AppCode(简单身份认证)和 AppKey、AppSecret(加密签名身份认证),请妥善保管该信息,在调用API时需要进行认证,并避免泄漏。
image.png

完成以上所有步骤说明已经成功通过交互式分析加速读取MaxCompute中的数据,并生成数据API了,可将当前API进行注册并发布到API市场进行售卖,也可使用API对接第三方分析工具。本案例将会使用该API对接DataV,实现MaxCompute数据的最终可视化。

数据可视化

生成数据API后,可将数据对接BI工具进行可视化展现,本案例采用DataV进行可视化展现,具体操作步骤如下:

1.DataV配置数据源信息

登录DataV控制台,在页面导航栏单击我的数据--添加数据,并进行配置信息填写
image.png

配置项 说明 备注
类型 DataWorks数据服务 必须
自定义数据源名称 自定义
项目 DataWorks工作空间 下拉可选择
Region 选择与DataWorks相同的Region
AppKey/AppSecret API发布后会自动生成,在DataWorks--数据服务--服务管理--API调用可查看 详情请参见发布API步骤

2.创建DataV可视化调用数据服务API

A.在DataV首页单击我的可视化,新建可视化,可以选择模版进行创建,也可自行选择插件。本案例是为了轮播各航班动态,只需要插入一个轮播插件即可
B.给各个插件配置数据源

  • 选中轮播插件,单击数据源位置,配置数据源为数据服务API名,并配置过滤器:return data.data.rows;

image.png

  • 配置表的标题项,与API里字段一一对应

image.png

  • 根据个人喜好对各插件进行美化,包括不限于字3体、字号、颜色、标题等

3.最终数据可视化展现

DataV通过将API的数据配置完成之后,最终展现的页面如下:

image.png

  同时,若MaxCompute中的数据有自动更新,需要在交互式分析中再次查询,即可更新数据(不会进行schma的自动更新),DataV也会做自动同步更新。
完整的MaxCompute数据经过交互式分析加速查询,并生成数据服务API,最终实现可视化的操作步骤如上,赶紧学起来吧!

若有任何问题,欢迎加入钉钉群咨询
image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章