数据推送

数据推送功能是DataWorks提供的一项数据服务,通过SQL查询数据源获取数据并将其推送至Webhook。可以通过简单配置,实现定期将所需的业务数据推送至多个不同的Webhook。本文将为您介绍数据推送功能的配置与使用。

数据推送简介

DataWorks提供了数据推送服务,该服务可以创建推送任务,在任务内编写单表或多表查询的SQL代码来圈定数据范围,并添加富文本或表格等内容来组织推送消息的内容。可以通过配置周期任务,定时将数据推送至目标Webhook中。

image

支持的数据源类型与推送渠道

  • 支持推送的数据源类型:

    • MySQL(兼容StarRocks/Doris)

    • PostgreSQL(兼容Snowflake/Redshift)

    • Hologres

    • MaxCompute(ODPS)

    • ClickHouse

  • 支持的推送渠道:钉钉群、飞书群、企业微信群以及Teams。

数据推送服务使用限制

  • 数据推送功能推送至不同对象时的数据大小限制:

    • 推送目标为钉钉,推送数据大小不超过20KB

    • 推送目标为飞书,推送数据大小不超过30KB,图片小于10MB

    • 推送目标为企业微信,每个机器人发送的消息不能超过20条/分钟

    • 推送目标为Teams,推送大小不大于28KB

    说明

    钉钉移动端和企业微信暂不支持Markdown中定义的表格的渲染,建议在推送内容中使用表格组件来展示数据内容。飞书与Teams移动版支持正常展示Markdown中定义的表格。

  • 仅以下地域的DataWorks工作空间可使用数据推送功能:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、西南1(成都)、新加坡、美国(硅谷)、美国(弗吉尼亚)。

前提条件

在支持地域已创建数据源。DataWorks创建数据源具体操作,请参见创建并管理数据源

操作步骤

步骤一:创建数据推送任务

步骤二:配置数据推送任务

步骤三:数据推送设置

步骤四:测试数据推送任务

步骤五:发布推送任务

步骤一:创建数据推送任务

  1. 进入数据服务。

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

  1. 新建数据推送任务。

    数据服务的左侧导航栏中,单击服务开发 > 数据推送切换到数据推送页下,单击image选择新建数据推送,设置数据推送任务名称后,单击确定,进入数据推送任务配置页面。

    image

步骤二:配置数据推送任务

准备工作(可选)

为了便于您快速完成数据推送,后续内容将以MaxCompute表数据查询结果推送为例进行说明,本示例中,使用表名为sales,通过数据推送功能将每日每部门销售金额,以及销售金额相较于前一天的变化量,推送至指定渠道,如需实操,请提前在对应环境准备好sales表,以下为sales表的建表与数据插入语句。建表详情请参见创建并使用MaxCompute表

CREATE TABLE IF NOT EXISTS sales (
    id BIGINT COMMENT '唯一标识符',
    department STRING COMMENT '部门名称',
    revenue DOUBLE COMMENT '收入金额'
) PARTITIONED BY (ds STRING);

-- 插入示例数据到分区
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (1, '部门1', 12000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (2, '部门2', 21000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (3, '部门3', 5000.00);
 
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (1, '部门1', 11000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (2, '部门2', 20000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (3, '部门3', 10000.00);

选择数据源

选择需要进行数据推送的数据源类型数据源名称,以及数据源环境(您可根据本次数据推送的开发表还是生产表来选择数据源环境),确定需要进行数据推送的数据表所在环境。若您需要实操,请确认您准备工作阶段创建的sales表所在环境。

image

说明

目前数据推送支持的数据源类型,请参见支持的数据源类型与推送渠道

编写查询SQL

  • 圈定数据推送范围与获取数据。

    编写查询SQL模块,可以通过单表或多表查询SQL来圈定数据推送内容,例如:

    -- 获取20240102各部门销售金额
    SELECT id, department, revenue FROM sales WHERE ds='20240102';
    -- 获取相较于前一天销售金额的变化量
    SELECT  a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id AND a.ds > b.ds WHERE a.ds = '20240102'AND b.ds = '20240101';

    SQL自定义完成后,SQL返回结果字段将自动填入参数 > 输出参数。若输出参数失败或有误,您可以关闭自动解析参数,手动新增参数

    image

    您还可以通过${变量名}的方式在SQL中配置自定义变量,该变量为赋值参数赋值参数可赋值时间表达式及常量),从而实现代码动态入参,可参见配置推送内容

    -- 结合调度参数实现时间变量的动态赋值。
    -- 每天获取最新的各部门销售金额
    SELECT id, department, revenue FROM sales WHERE ds='${date}';
    -- 同时获取相较于前一天销售金额的变化量
    SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id  and  a.ds > b.ds WHERE a.ds = '${date}' AND b.ds = '${previous_date}';

    image

  • 分段查询。

    当数据表量庞大的场景下,数据推送支持您通过 Next Token 方式分段查询数据。您可点击代码编辑工具栏中的代码帮助 > 代码模板 > Next Token查看使用说明。

配置推送内容

推送内容模块,您可以通过Markdown表格等方式编辑消息内容,该消息内容为推送至Webhook上的内容。

标题栏自定义消息标题后,在正文栏单击新增,即可选择通过Markdown表格来编辑推送内容。以下为示例配置,您可以点击工具栏中的预览查看推送样式。

Markdown内容模块

  • 使用参数变量:在数据推送内容编写中,可以将赋值参数输出参数,以${参数名称}添加至富文本中,在数据推送任务运行时替换成相应的赋值数据或SQL的查询结果。

    • 赋值参数:需要在参数 > 赋值参数处为变量赋值常量或调度参数的时间表达式

    • 输出参数:为SQL查询中SELECT A,B… FROM TABLE中的A,B…字段名或字段别名,是查询出来的数据。

  • @相应成员:可以在推送至飞书Webhook时配置,实现自动@对应人员的功能。

    • Markdown模式默认采用富文本形式配置消息内容,在推送至飞书时使用@功能提醒相关人员查看消息,您可点击image切换至Markdown源码模式,通过<at id="all" /><at email="username@example.com" />可以实现。

  • Markdown除以上功能外,还支持添加图片、插入钉钉Emoji等功能。image

表格内容模块

  • 单击新增一列,增加表格列数,可将参数关联在对应列上。

  • 在推送目标为飞书Webhook时,单击创建好的表格列右侧,单击image打开修改字段信息对话框,对话框内,可以调整目前字段展示名展示样式以及条件,实现推送内容显示效果的多样性。

    • 目前字段:可切换成其他输出参数字段。

    • 展示名:以表格形式推送至办公软件时,期望展示在表头的名称。

    • 展示样式:给表格具体值前或值后添加固定展示的前缀或后缀。

    • 条件:将表格具体值与配置的比较数值进行比较,可自定义符合不符合时数值展示颜色,以及附加标示符image

    说明
    • Markdown富文本模式下表格创建方式可参考Markdown官方表格教程

    • 不同渠道的表格撰写方式不同,不同渠道推送支持表格内容如下:

      • 钉钉:支持Markdown表格和数据推送内置表格,不支持展示修改字段信息弹窗中对字段配置的展示样式条件的显示效果,但钉钉移动端:不支持显示表格。

      • 飞书:支持数据推送Markdown表格和数据推送内置表格,可对表格进行渲染。

      • 企业微信:支持推送Markdown表格,但不支持对Markdown表格进行渲染。

      • Teams移动端:支持数据推送Markdown,可对表格进行渲染。

步骤三:数据推送设置

创建数据推送目标

在配置推送设置前,需要先在服务开发页面的左下角单击image弹出设置页面,切换至推送目标管理页签,单击创建数据推送目标新建需要推送的目标。

创建数据推送目标时,需要如下配置:

  • 类型:选择需要推送的渠道类型。

  • 对象名称:自定义需要新建的推送目标名称。

  • Webhook:所选推送渠道中的Webhook链接。

说明

image

推送设置

单击右侧推送设置即可设置推送任务的调度周期配置,调度资源配置以及推送目标配置,可实现数据推送任务按配置调度周期进行推送。具体的配置项有:

  • 调度周期运行时间配置:用以配置数据推送服务推送编辑好的推送内容的调度周期与调度的具体时间。

    调度周期

    指定时间

    调度时间

    范例

    指定在每月内哪些天运行该推送任务

    推送日内,该数据推送任务的调度时间

    调度周期:月

    指定时间:每月1号

    调度时间:08:00

    实际运行时间:每月1日的08:00该推送任务会运行。

    指定在每周内哪些天运行该推送任务

    推送日内,该数据推送任务的调度时间

    调度周期:周

    指定时间:星期一

    调度时间:09:00

    实际运行时间:每周星期一09:00该推送任务会运行。

    说明

    日周期为每日调度。

    推送日内,该数据推送任务的调度时间

    调度周期:日

    调度时间:08:00

    实际运行时间:每天08:00该推送任务会运行。

    小时

    说明

    可选择两种推送模式:

    • 按小时的时间间隔进行推送。

    • 按指定的小时和分钟进行推送。

    按小时的时间间隔进行推送

    开始时间:00:00

    时间间隔:1小时

    结束时间:23:59

    实际运行时间:每天从00:00-23:59每小时推送一次。

    按指定的小时和分钟进行推送

    指定小时:0时、1时

    指定分钟:10分

    实际运行时间:每天的00:10与01:10各推送一次。

  • 超时定义:可限制数据推送在开始运行后的时长,若超出配置的时长,则终止任务运行。

    • 系统默认:在系统默认状态下会根据负载情况动态调整任务超时定义,取值范围为3至7天不等。超时任务将被终止运行。

    • 范例自定义超时时间为1小时,推送任务达到推送时间点后超出1小时,该任务会被终止运行。

  • 生效日期:配置当前数据推送任务的生效时间,如果当前系统时间在配置的生效日期范围之外,任务将不会被自动调度运行。

    • 永久生效:数据推送任务将永久生效,不受生效日期限制。

    • 范例:配置指定时间范围为2024-01-01至2024-12-31时,该推送任务会在指定时间段内,按照配置的调度周期进行推送。

  • 调度资源组:可配置独享调度资源组Serverless资源组(通用型资源组),为数据推送任务提供调度资源组。资源组详情可参见:资源组管理

  • 数据推送目标:可将数据推送服务的已配置好的内容,推送至所选择的对象,只可以选择已创建好的推送目标,推送目标在数据推送管理处进行配置。

    说明

    推送至钉钉Webhook时,需要添加推送机器人配置时在安全设置 > 自定义关键词中配置关键词,并且确保推送内容中包含该关键词才可推送成功。

image

步骤四:测试数据推送任务

创建好数据推送任务后,您可以单击工具栏上的保存按钮,保存当前配置,然后单击测试进行开发态测试,用来测试数据推送是否可以正常推送。需要您手动为变量赋值常量。

image

说明

数据推送任务推送提交发布前,必须通过开发态测试推送,才可正常提交发布。

步骤五:发布推送任务

管理数据推送任务版本

  1. 确认开发过程中的测试无误后,请您点击提交,若未提交推送任务,则推送任务只处于草稿状态,不会生成新的版本。

  2. 在提交服务后,会生成新版本,在右侧版本面板内找到已提交且可发布的版本,单击发布,即可将该数据推送任务进行发布,实现按推送设置的配置进行周期推送。

    版本面板内可以对数据推送任务进行如下管理。

    任务状态

    操作

    说明

    发布

    数据推送管理

    点击跳转至数据推送管理页面,可以查看已经上线的任务详细信息,可参见管理数据推送任务

    可发布

    发布

    将对应版本的任务进行发布。

    废弃

    废弃对应版本的任务,并将任务状态切换为废弃

    离线废弃

    版本详情

    查看对应版本数据推送任务的配置信息以及相应推送内容。

    回滚

    回滚到对应版本。

    说明

    版本详情回滚两种操作在任务的所有状态下都存在且功能一致。

    image

管理数据推送任务

在数据推送任务发布成功后,在版本面板内的操作列单击数据推送管理或以服务管理 > 数据推送管理路径来到数据推送任务列表页面。

该页面内可查看所有已发布的数据推送任务,并展示其任务ID名称数据源名称数据源环境节点模式调度资源组负责人发布人以及最后发布时间,并且在操作列对已发布数据推送任务做如下操作:

操作类型

说明

下线

下线选中任务。

测试

跳转至数据推送测试,可以对已上线的任务进行测试。

说明

单击名称列的image即可跳转至所选任务的版本详情页面。

image

测试已上线数据推送任务

数据推送任务上线后,数据推送任务会根据您配置的推送设置,推送内容至指定的推送目标,您可以通过以下两种方式进入数据推送测试页面

  • 方式一服务管理 > 数据推送测试

  • 方式二服务管理 > 数据推送管理 > 数据推送任务

通过测试已上线的数据推送任务,可以确认数据推送任务是否能够正常推送数据,以及推送目标是否可以正常接收数据。

image