数据推送功能是DataWorks提供的一项数据服务,通过SQL查询数据源获取数据并将其推送至Webhook。可以通过简单配置,实现定期将所需的业务数据推送至多个不同的Webhook。本文将为您介绍数据推送功能的配置与使用。
数据推送简介
DataWorks提供了数据推送服务,该服务可以创建推送任务,在任务内编写单表或多表查询的SQL代码来圈定数据范围,并添加富文本或表格等内容来组织推送消息的内容。可以通过配置周期任务,定时将数据推送至目标Webhook中。
支持的数据源类型与推送渠道
-
支持推送的数据源类型:
-
MySQL(兼容StarRocks/Doris)
-
PostgreSQL(兼容Snowflake/Redshift)
-
Hologres
-
MaxCompute(ODPS)
-
ClickHouse
-
-
支持的推送渠道:钉钉群和飞书群。
数据推送服务使用限制
-
数据推送功能推送至不同对象时的数据大小限制:
-
推送对象为钉钉,推送数据大小不超过 20KB 。
-
推送对象为飞书,推送数据大小不超过 30KB ,图片小于 10MB 。
-
-
仅以下地域的DataWorks工作空间可使用数据推送功能:华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、西南1(成都)。
前提条件
在支持地域已创建数据源。DataWorks创建数据源具体操作,请参见 创建并管理数据源 。
操作步骤
步骤一:创建数据推送任务
-
进入数据服务。
登录 DataWorks控制台 ,切换至数据源所在地域,单击左侧导航栏的 数据服务 ,在下拉框中选择对应工作空间后单击 进入数据服务 。
-
新建数据推送任务。
在 数据服务 的左侧导航栏中,单击
切换到 数据推送 页下,单击 选择 新建数据推送 ,设置数据推送任务名称后,单击 确定 ,进入数据推送任务配置页面。
步骤二:配置数据推送任务
准备工作(可选)
为了便于您快速完成数据推送,后续内容将以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表所在环境。
目前数据推送支持的数据源类型,请参见 支持的数据源类型与推送渠道 。
编写查询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返回结果字段将自动填入
。若输出参数失败或有误,您可以关闭 自动解析参数 ,手动 新增参数 。您还可以通过
${变量名}
的方式在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}';
-
分段查询。
当数据表量庞大的场景下,数据推送支持您通过 Next Token 方式分段查询数据。您可点击代码编辑工具栏中的
查看使用说明。
配置推送内容
在 推送内容 模块,您可以通过 Markdown 和 表格 等方式编辑消息内容,该消息内容为推送至Webhook上的内容。
在 标题 栏自定义消息标题后,在正文栏单击 新增 ,即可选择通过 Markdown 或 表格 来编辑推送内容。以下为示例配置,您可以点击工具栏中的 预览 查看推送样式。
Markdown内容模块
-
使用参数变量 :在数据推送内容编写中,可以将 赋值参数 与 输出参数 ,以
${参数名称}
添加至富文本中,在数据推送任务运行时替换成相应的赋值数据或SQL的查询结果。-
赋值参数 :需要在
处为变量赋值 常量 或调度参数的 时间表达式 。 -
输出参数 :为SQL查询中
SELECT A,B… FROM TABLE
中的A,B…
字段名或字段别名,是查询出来的数据。
-
-
@相应成员 :可以在推送至飞书Webhook上时可以配置,实现自动@对应人员的功能。
-
Markdown模式默认采用富文本形式配置消息内容,在推送至飞书时使用@功能提醒相关人员查看消息,您可点击 切换至Markdown源码模式,通过
<at id="all" />
或<at email="username@example.com" />
可以实现。
-
-
Markdown除以上功能外,还支持 添加图片 、插入 钉钉Emoji 等功能。
表格内容模块
-
单击 新增一列 ,增加表格列数,可将 参数 关联在对应列上。
-
在推送对象为飞书Webhook时,单击创建好的表格列右侧,单击 打开 修改字段信息 对话框,对话框内,可以调整 目前字段 、 展示名 、 展示样式 以及 条件 ,实现推送内容显示效果的多样性。
-
目前字段 :可切换成其他 输出参数 字段。
-
展示名 :以表格形式推送至办公软件时,期望展示在表头的名称。
-
展示样式 :给表格 具体值 前或值后添加固定展示的前缀或后缀。
-
条件 :将表格 具体值 与配置的比较数值进行比较,可自定义 符合 与 不符合 时数值展示颜色,以及 附加标示符 。
说明-
Markdown富文本模式下表格创建方式可参考 Markdown官方表格教程 。
-
不同渠道的表格撰写方式不同,不同渠道推送支持表格内容如下:
-
钉钉 :支持Markdown表格和数据推送内置表格,不支持 修改字段信息 弹窗中对字段配置的 展示样式 和 条件 的显示效果。
-
钉钉移动端 :不支持显示表格。
-
飞书 :支持数据推送内容表格,以及在 修改字段信息 弹窗中对字段配置的 展示样式 和 条件 的显示效果。
-
-
步骤三:数据推送设置
创建数据推送对象
在配置 推送设置 前,需要先在 服务开发 页面的左下角单击 弹出设置页面,切换至 推送对象管理 页签,单击 创建数据推送对象 新建需要推送的对象。
创 建数据推送对象 时,需要如下配置:
-
类型 :选择需要推送的渠道类型。
-
对象名称 :自定义需要新建的推送对象名称。
-
Webhook :所选推送渠道中的Webhook链接。
推送设置
单击右侧 推送设置 即可设置推送任务的调度周期配置,调度资源配置以及推送对象配置,可实现数据推送任务按配置调度周期进行推送。具体的配置项有:
-
调度周期运行时间配置 :用以配置数据推送服务推送编辑好的推送内容的调度周期与调度的具体时间。
调度周期
指定时间
调度时间
范例
月
指定在每月内哪些天运行该推送任务
推送日内,该数据推送任务推送的时间
调度周期 :月
指定时间 :每月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时,该推送任务会在指定时间段内,按照配置的调度周期进行推送。
-
-
调度资源组 :配置任务的调度资源组,为数据推送任务周期性调度提供资源。
-
数据推送对象 :可将数据推送服务的已配置好的内容,推送至所选择的对象,只可以选择已创建好的推送对象,推送对象在 数据推送管理 处进行配置。
说明推送至钉钉Webhook时,需要添加推送机器人配置时
后,并且确保推送内容中包含该关键词才可推送成功。
步骤四: 测试数据推送任务
创建好数据推送任务后,您可以单击工具栏上的 保存 按钮,保存当前配置,然后单击 测试 进行开发态测试,用来测试数据推送是否可以正常推送。需要您手动为变量赋值常量。
数据推送任务推送 提交 发布 前,必须通过开发态测试推送,才可正常提交发布。
步骤五: 发布推送任务
管理 数据推送任务版本
-
确认开发过程中的测试无误后,请您点击 提交 ,若未提交推送任务,则推送任务只处于草稿状态,不会生成新的版本。
-
在提交服务后,会生成新版本,在右侧 版本 面板内找到已提交且 可发布 的版本,单击 发布 ,即可将该数据推送任务进行发布,实现按 推送设置 的配置进行周期推送。
在 版本 面板内可以对数据推送任务进行如下管理。
任务状态
操作
说明
发布
数据推送管理
点击跳转至 数据推送管理 页面,可以查看已经上线的任务详细信息,可参见 管理数据推送任务 。
可发布
发布
将对应版本的任务进行发布。
废弃
废弃对应版本的任务,并将任务状态切换为 废弃 。
离线 、 废弃
版本详情
查看对应版本数据推送任务的配置信息以及相应推送内容。
回滚
回滚到对应版本。
说明版本详情 、 回滚 两种操作在任务的所有状态下都存在且功能一致。
管理 数据推送任务
在数据推送任务发布成功后,在 版本 面板内的 操作 列单击 数据推送管理 或以
路径来到 数据推送任务 列表页面。该页面内可查看所有已发布的 数据推送任务 ,并展示其任务 ID 、 名称 、 数据源名称 、 数据源环境 、 节点模式 、 调度资源组 、 负责人 、 发布人 以及 最后发布时间 ,并且在 操作 列对已发布数据推送任务做如下操作:
操作类型 |
说明 |
下线 |
下线选中任务。 |
测试 |
跳转至 数据推送测试 ,可以对已上线的任务进行测试。 |
服务开发 |
跳转到选中任务的开发页面。 |
单击 名称 列的 即可跳转至所选任务的 版本详情 页面。
测试已上线数据推送任务
数据推送任务发布后,数据推送任务会根据您配置的送配置周期推送内容至指定的推送对象,您可以通过以下两种方式进入 数据推送测试页面 。
-
方式一 :
-
方式二 :
通过测试已上线的数据推送任务,可以确认数据推送任务是否能够正常推送数据,以及推送对象是否可以正常接收数据。