如何分析DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践

55次阅读
没有评论

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

行业资讯    
服务器    
云计算    
如何分析 DataWorks 数据服务 +MaxCompute Lightning 对接 DataV 最佳实践

如何分析 DataWorks 数据服务 +MaxCompute Lightning 对接 DataV 最佳实践,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1. 概述

数据服务 (https://ds-cn-shanghai.data.aliyun.com)   是 DataWorks 产品家族的一员,提供了快速将数据表生成 API 的能力,通过可视化的向导,一分钟“零代码”就可以生成 API,让 API 开发从未有过如此便捷!同时支持自定义 API 查询 SQL 功能,对您的个性化复杂查询逻辑支持照样不在话下。

DataWorks 数据服务提供 HTTP API 服务,采用 Serverless 架构,您只需关注 API 本身的查询逻辑,无需关心运行环境等基础设施,零运维成本。

DataWorks 提供了涵盖“数据集成 - 数据开发 - 机器学习 - 数据服务”全链路数据研发平台,数据服务作为连接数据应用与数据仓库的桥梁,通过 MaxCompute Lightning 加速引擎,数据服务可以直接将原本只能离线查询的 MaxCompute 表直接生成数据 API 并进行实时查询,免去了您手工同步数据的烦恼,数据服务是您将数仓建设成果服务化输出的最佳工具。

目前,DataWorks 数据服务已经与数据可视化的神器——DataV(https://data.aliyun.com/visual/datav)深度打通,数据服务生成的 API,可以直接在 DataV 中进行可视化展现。您无需手工同步数据,无需编写复杂的 Java 代码,无需搭建 WebServer,普通数据开发工程师、算法开发工程师、数据分析师甚至是产品业务人员,都可以使用数据服务“开发”数据 API,然后快速在 DataV 中调用 API 和展示来自 MaxCompute 的数据成果。数据服务为您解决了从数仓开发和数据大屏展现之间的最后一公里。

下面将重点介绍通过数据服务快速将 MaxCompute 表生成实时查询 API 并对接 DataV 进行大屏分析展现的使用方法。

2. 使用数据服务一分钟生成 API

通过数据服务生成 API 主要包含创建数据源 - 配置 API- 发布 API 三个步骤,本文将简要介绍使用方法。

2.1 新建数据源

数据服务支持丰富的数据源类型,基本上常见数据源都囊括了,包含:
关系型数据库:RDS/DRDS/MySQL/PostgreSQL/Oracle/SQL Server
分析型数据库:AnalyticDB(ADS)
NoSQL 数据库:TableStore(OTS)/MongoDB
大数据存储:Lightning(MaxCompute)

在数据服务中的“服务开发”点击新建按钮,在下拉菜单中选择“新建数据源”。

随后将打开数据集成中的数据源页面,在这里可以新建您需要访问的数据源。

注意:JDBC 扩展参数中的“sslmode=require prepareThreshold=0”是必须的,不可删除,否则会无法连接。

2.2 新建 API

创建好数据源后,回到数据服务产品页面,我们就可以进行 API 的生成配置了,本文以向导模式生成 API 为例。

点击 服务开发 -“新建”-“生成 API”-“向导模式”,以向导模式可视化配置的方式生成 API。在弹出的对话框中填写 API 基本信息,这里以查询成交金额增长趋势 API 为例,如下所示:

然后点击右侧的“返回参数”,设置参数描述信息。
注意:如果不设置请求参数,则需要开启“返回结果分页”开关,进行分页查询,以避免单次查询返回数据量过大影响性能。

到此,一个 API 就已经生成好了,是不是超简单!

2.3 发布 API

API 测试通过后就可以进行发布。点击工具条右方的“发布”即可将 API 发布。发布后,可以点击项部导航条中的“服务管理”查看 API 详情。若您要调用 API,请查看“服务管理”-“API 调用”页面,数据服务提供了简单身份认证(AppCode)和加密签名身份认证(AppKey AppSecret)两种认证方式,您可以自由选择。下方将介绍在 DataV 中进行数据服务 API 的调用。

是不是有点小激动?“开发”一个 API 如来没有过如此简单!这简直不能称之为“开发”!

3. 在 DataV 中调用数据服务的 API

接下来要进行 DataV 数据大屏的配置,主要分为“添加数据”-“新建可视化”两个步骤。

3.1 添加数据服务为数据源

依次点击“我的数据”-“添加数据”,在“类型”中选择“DataWorks 数据服务”,填写数据源名称,然后选择您的 DataWorks 项目(工作空间)。DataV 对接数据服务采用的是更加安全的加密签名身份认证,因此这里需要填写 AppKey 和 AppSecret。

添加好数据服务数据源后,就可以在大屏中进行数据展示了。

3.2 在大屏中调用数据服务 API

在“我的可视化”中点击“新建可视化”,本文选择了“智能工厂”模板,如下所示:

模板中的组件自带了静态数据,下面将通过将模板中间的“基本折线图”改为调用上面创建好的“查询成交金额增长趋势”的 API 为例,讲解如何在组件中使用数据服务 API。

选中基本折线图组件,切换到数据面板,在“数据源类型”中选择“DataWorks 数据服务”,然后选择刚刚创建的数据源“我的数据服务”,选择“查询成交金额增长趋势”这个 API,再设置查询参数,这里将 pageSize 设置为“31”以查询一个月的数据。

点击“查看数据响应结果”可以看到 API 的查询结果。
然后填写字段映射关系,在“x”中填写“date”将日期作为横轴,在“y”中填写“amount”将成交金额作为纵轴。 

可以看到,当前 x 和 y 无法匹配到字段。这是由于 DataV 对数据格式有一定要求,不能识别结构较深的字段,因此这里要添加一个数据过滤器,过滤掉不必要的字段,在本例中直接返回“rows”数组即可。

勾选“使用过滤器”,点击“新建过滤器”,这里支持编写 JS 代码对数据结果进行二次过滤和处理,过滤器的 data 参数为 API 返回结果 JSON 对象。在本例中,我们只需要返回 API 结果中的 rows 数组,故只需要输入代码 return data.data.rows; 即可,然后在下方就可以查看过滤后的结果,点击“完成”即可。

添加好过滤器后就可以看到此时字段已经可以匹配成功了。

但此时折线图并没有正确展示,由于 API 返回的日期格式与组件默认的格式不一样,因此我们还需要设置一下折线横轴的日期格式。切换到“配置”面板,在“x 轴”-“轴标签”中选择数据种类为“时间型”,数据格式选择本 API 所返回的格式“2016/01/01”,即可看见折线图已经可以正常展示了。

最后预览一下,看看成品。

至此,我们就完成了通过数据服务将 MaxCompute 表生成 API,然后在 DataV 数据大屏中进行展示的所有步骤。采用类似的步骤,将大屏的其他组件的数据源都配置为 DataWorks 数据服务 API 就可以完成整个大屏的创作,是不是感觉很 easy!

4. 总结

DataWorks 数据服务与 DataV 进行无缝打通后,则不需要使用 DataV 中的 API 数据源去填写一个 URL 调用 API,直接新建一个 DataWorks 数据服务作为数据源,就可以直接选用数据服务中的 API,无需每个 API 都设置 AppKey 和 AppSecret 认证信息,并且支持通过表单填写 API 参数,使用起来十分快捷方便和安全可靠。通过数据服务,您可以将 MaxCompute 中加工好的数据结果,直接在 DataV 中进行呈现,“数据开发 - 数据服务 - 数据分析展现”一气呵成!

最后,提供一些小贴士及注意事项,供大家参考:

DataWorks 数据服务向导模式生成 API 只支持单表简单条件查询,脚本模式支持用户编写查询 SQL 语句,支持多表关联查询、函数以及复杂条件。大家可以根据自己的需求灵活选择。

Lightning 采用的 PostgreSQL 的语法,故在编写 SQL 时,要注意使用 PostgreSQL 函数,而不是 MaxCompute 的 UDF。目前 Lightning 还只支持 max_pt 这个 MaxCompute UDF,可用于获取当前最新分区。还有,连接字符串时使用“||”。

Lightning 目前只支持秒级查询,并且查询的 MaxCompute 不宜过大(控制在 GB 级),尽量将分区作为请求参数,尽量避免扫描过多分区,否则会比较慢。

如果您要求毫秒级 API 查询,则建议采用关系型数据库、NoSQL 数据库或 AnalyticDB 作为数据源。

DataV 组件要求的数据格式是个数组,数据服务生成的 API 返回结果是个带有错误码的完整 JSON,因此要使用过滤器对 API 结果进行处理。您可以选择在 DataV 中添加过滤器,也可以选择直接在数据服务配置 API 时添加过滤器。一般来说,对于未分页查询的 API,直接返回“data”数组就行,对于分页查询的 API 直接返回“data.rows 数组。

若你要在 DataV 的折线图或柱状图中添加多个系列,DataV 一般要求每个系列的数据是一个对象,并通过字段“s”来区分系列,此时要注意使用过滤器进行格式转换。

看完上述内容,你们掌握如何分析 DataWorks 数据服务 +MaxCompute Lightning 对接 DataV 最佳实践的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

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