DataWorks数据服务对接DataV最佳实践

DataV通过与DataWorks数据服务的对接,通过交互式分析Hologres连接DataWorks数据服务开发并生成API,快速在DataV中调用API并展现MaxCompute的数据分析结果。

数据服务对接DataV产生背景

MaxCompute是阿里巴巴集团自主研究的快速、完全托管的TB、PB和EB级数据仓库解决方案。当今社会数据收集的方式不断丰富,行业数据大量积累,导致数据规模已增长到传统软件行业无法承载的海量级别。MaxCompute服务于批量结构化数据的存储和计算,已经连续多年稳定支撑阿里巴巴全部的离线分析业务。

过去,如果您想要通过DataV展示海量数据的分析结果,需要自建一套离线数据计算自动导入MySQL的任务流程,过程繁琐且成本高。现在通过DataWorks为您提供的数据集成 > 数据开发 > 数据服务的全链路数据研发平台,结合MaxCompute即可快速搭建企业数仓。

DataWorks数据服务提供了快速将数据表生成API的功能,通过可视化的向导模式操作,无需代码便可快速生成API,然后通过DataV调用API并在大屏中展示数据分析结果,高效实现数仓的开发和数据的展示。

前提条件

要想实现DataWorks数据服务与DataV的对接,您需要提前准备好数据源,并开通什么是DataV-Board

新建数据源

数据服务支持丰富的数据源类型,如下所示:

  • 关系型数据库:RDS、DRDS、MySQL、PostgreSQL、Oracle和SQL Server

  • 分析型数据库:AnalyticDB

  • NoSQL数据库:TableStore和MongoDB

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据服务,在下拉框中选择对应工作空间后单击进入数据服务

  2. 鼠标悬停至image,单击新建数据源,跳转至数据源列表页面。

  3. 单击新增数据源,在新增数据源对话框中,选择数据源类型为Hologres

    本文将以Hologres数据源为例,通过Hologres数据源可以直接实时查询MaxCompute中的数据。

    1. 配置新增Hologres数据源的相关参数。

      说明

      如果是标准环境,请同时配置开发生产环境。

      参数

      描述

      数据源名称

      数据源名称必须以字母、数字、下划线组合,且不能以数字和下划线开头。

      数据源描述

      对数据源进行简单描述,不得超过80个字符。

      Hologres实例

      需要同步的Hologres实例ID。切换地域,找到目标Hologres实例。

      说明

      如果没有Hologres实例,可根据界面提示,单击创建实例

      数据库名

      Hologres的数据库名称。

    2. 单击测试连通性

    3. 测试连通性通过后,单击完成

新建API

数据源创建完成后,进入数据服务页面。本文以向导模式生成API为例,为您介绍如何新建API。

  1. 单击左上角的图标,选择全部产品 > 数据服务,进入数据服务页面。

  2. 鼠标悬停至image,选择新建API > 生成API

  3. 配置生成API对话框中的参数。

    参数

    描述

    API名称

    支持中文、英文、数字、下划线,且只能以英文或中文开头,4~50个字符。

    API Path

    API存放的路径,例如/user

    协议

    目前支持HTTP和HTTPS协议。

    请求方式

    目前支持GET和POST请求方式。

    返回类型

    目前仅支持JSON返回类型。

    描述

    对API进行简要描述。

    目标文件夹

    业务流程中的API存放文件夹。

  4. 配置完成后,单击确认,即可进入API参数配置页面。

配置API参数

  1. 选择表模块, 选择数据源类型Hologres、数据源名称数据表名称

    说明
    • 您需要提前在数据集成中配置好数据源,数据表下拉框支持表名搜索。

    • 创建好API后,会自动跳转至数据表配置页面,您可以直接进行配置。

  2. 选择好数据表后,下方的选择参数模块会自动列出该表的所有字段。勾选需要设为请求参数设为返回参数的字段,分别添加至请求参数和返回参数列表中。选择参数

  3. 编辑请求参数信息。

    单击页面右侧的请求参数,设置参数名称参数类型操作符是否必填示例值默认值描述请求参数

  4. 编辑返回参数信息。

    单击页面右侧的返回参数,设置别名参数类型示例值描述,并可以使用过滤器等高级配置。

    image

    说明
    • 如果选择公共服务资源组,开启分页后的每页数据记录最多支持2000条。

    • 如果选择独享服务资源组,开启分页后的每页数据记录最多支持10000条。

测试API

完成API参数的配置并保存后,单击上方的测试,即可进入API测试环节。

填写参数值,单击开始测试,即可在线发送API请求,在右侧可以查看API请求详情及返回内容。如果测试失败,请仔细查看错误提示并进行相应的修改重新测试。

发布API

  1. 完成API测试后,返回服务开发页面。单击提交,即可生成API版本信息。

  2. 您可在版本信息中选择状态可发布的API版本,单击操作栏中的发布,即可成功生成一个数据API。

  3. 发布完成后,单击上方服务管理查看API详情。服务管理

如果您需要调用API,请进入服务管理API调用页面,数据服务为您提供简单身份认证(AppCode)和加密签名身份认证(AppKey&AppSecret)两种认证方式,您可以自由选择。下文将为您介绍如何在DataV中进行数据服务API的调用。

在大屏中调用数据服务API

添加数据服务为数据源

  1. 登录DataV控制台。

  2. 找到左侧导航栏,单击数据准备 > 数据源,进入新增数据源页面,单击新建数据源

  3. 填写添加数据源对话框中的配置。

    image

    参数

    描述

    类型

    添加的数据源类型。

    自定义数据源名称

    数据源的显示名称,可以自由命名。

    Region

    选择您所在地域。

    项目

    选择DataWorks工作空间。

    AppKey/AppSecret

    拥有DataWorks数据服务中某一项目访问权限的账号的AppKeyID和AppSecret。

    说明

    您可以登录DataWorks数据服务控制台,进入服务管理 > API调用页面进行查看。API调用

创建看板

  1. 进入DataV控制台中的设计中心页面,单击左侧PC端

  2. 应用场景中选择一个模板,单击创建看板,本文以智能工厂生产看板模板为例。输入看板名称,在选择分组后单击创建看板image

    模板中的组件自带了静态数据,下文将以把模板下方的基本折线图改为调用上文创建好的数据服务API为例,为您介绍如何在组件中使用数据服务API。

配置看板

  1. 找到左边导航栏中的图层信息,选中底部面板中的ECharts基本折线图组件,单击切换到右侧的数据源页签,在数据源类型中选择DataWorks数据服务

  2. 选择刚刚创建的数据源和API,并设置查询参数,本示例将pageSize设置为31,以查询一个月的数据。

    image

  3. 单击查看数据返回结果,即可查看API的查询结果。

  4. 填写字段映射关系,在x中填写date,将日期作为横轴,在y中填写amount,将成交金额作为纵轴。

    image

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

  5. 勾选使用过滤器,单击新建按钮。此处支持编写JS代码对数据结果进行二次过滤和处理,过滤器的data参数为API返回结果JSON对象。

    本示例只需返回API结果中的rows数组,因此输入return data.data.rows;在下方预览过滤后的结果,并单击保存

    image

  6. 添加过滤器后,字段便会匹配成功。

    image

  7. 至此,便完成了通过数据服务将MaxCompute表生成API,然后在DataV数据大屏中进行展示的所有操作,效果如下图所示。image

注意事项

DataWorks数据服务与DataV进行无缝对接后,无需使用DataV中的API数据源去填写一个URL调用API,直接新建一个DataWorks数据服务作为数据源,便可直接选用数据服务中的API。无需每个API都设置AppKey和AppSecret认证信息,且支持通过表单填写API参数,操作快捷方便并安全可靠。

通过数据服务,您可以将MaxCompute中加工好的数据结果,直接在DataV中进行呈现,实现数据开发-数据服务-数据分析展现的全链路开发。

在开发过程中,请注意以下事项:

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

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

  • DataV组件要求的数据格式是个数组,数据服务生成的API返回结果是带有错误码的完整JSON,因此要使用过滤器对API结果进行处理。您可以选择在DataV中添加过滤器,也可以选择直接在数据服务配置API时添加过滤器。

    通常对于未分页查询的API,直接返回data数组即可,对于分页查询的API直接返回data.rows数组。

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