数据开发治理平台 WeData 事件推送

事件推送是 WeData 提供的项目级事件推送能力。当任务或工作流的运行状态发生变化时,WeData 可以将对应事件主动推送到腾讯云事件总线 EventBridge,再由 EventBridge 根据事件规则将事件路由到下游系统。

相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。

一、什么是事件推送

事件推送适用于外部系统需要及时感知 WeData 任务或工作流状态的场景,可减少通过 WeData OpenAPI 轮询状态产生的等待和调用开销。

事件推送链路包括以下环节:

1. WeData 产生任务实例或工作流实例状态事件。

2. WeData 推送通道根据事件类型和任务或工作流范围进行过滤。

3. WeData 将符合条件的事件推送到绑定的 EventBridge 自定义事件集。

4. EventBridge 根据事件规则进行匹配,并将事件投递到下游目标。

二、适用场景

场景 说明
BI 报表刷新 数仓任务执行成功后,通知 BI 系统刷新报表缓存或触发数据拉取
数据质量告警 任务执行失败后,将事件发送到监控平台,触发告警或工单流程
跨平台编排 将 WeData 任务完成事件作为其他调度系统的触发信号
数据应用联动 数据产出完成后,通知数据服务层刷新缓存或更新 API 数据
运营监控大屏 接收任务运行状态事件,更新监控大屏数据
IM 消息通知 任务执行失败后,由下游系统向相关负责人发送通知

三、WeData 与 EventBridge 的职责

配置位置 主要职责
WeData 推送通道 选择需要产生的事件类型,并按任务或工作流范围进行基础过滤
EventBridge 事件规则 根据事件模式进行进一步匹配和路由
EventBridge 投递目标 将匹配的事件发送到下游腾讯云服务或业务系统

四、支持的事件类型

WeData 支持任务调度项目和工作流调度项目。不同调度模式下可选择的事件类型不同。

五、任务实例事件

任务调度项目支持以下事件:

事件类型 事件编码 触发时机
任务开始运行 task.instance.running 任务实例从等待状态变为运行中
任务执行成功 task.instance.succeeded 任务实例执行成功
任务执行失败 task.instance.failed 任务实例重试耗尽后最终执行失败
任务等待资源 task.instance.waiting_resource 任务实例进入等待资源状态
任务等待上游 task.instance.waiting_upstream 任务实例等待上游依赖完成

六、工作流实例事件

工作流调度项目支持以下事件:

事件类型 事件编码 触发时机
工作流开始运行 workflow.instance.running 工作流实例开始执行
工作流执行成功 workflow.instance.succeeded 工作流内所有任务执行成功
工作流执行失败 workflow.instance.failed 工作流实例执行失败

七、事件内容说明

WeData 按 CloudEvents 规范将事件推送到 EventBridge。用于配置事件规则的关键字段如下:

字段 说明
source 事件源,固定为 wedata.cloud.tencent
type EventBridge 中的事件类型,格式为 wedata:{事件编码},例如 wedata:task.instance.succeeded
data 事件业务数据,字段随事件类型变化

八、任务实例事件的 data 字段

适用事件:task.instance.running、task.instance.succeeded、task.instance.failed、task.instance.waiting_resource、task.instance.waiting_upstream。

字段 类型 必有 说明
projectId String 是 WeData 项目 ID
projectName String 是 WeData 项目名称
taskId String 是 任务 ID
taskName String 是 任务名称
taskType String 是 任务类型,例如 SHELL、HIVE_SQL、SPARK_SQL、DATA_INTEGRATION
instanceId String 是 实例 ID
status String 是 实例状态:RUNNING、SUCCEEDED、FAILED、WAITING_RESOURCE 或 WAITING_UPSTREAM
dataTime String 是 实例数据时间,格式为 YYYY-MM-DD
scheduledTime String 是 计划调度时间,ISO 8601 格式,使用 UTC 时区
startTime String 否 实例开始运行时间,ISO 8601 格式,使用 UTC 时区;等待类状态可能为空
endTime String 否 实例结束时间,ISO 8601 格式,使用 UTC 时区;仅成功或失败状态有值
duration Integer 否 运行耗时,单位为秒;仅成功或失败状态有值
retryCount Integer 否 已重试次数;仅失败状态有值
errorMessage String 否 失败原因摘要;仅失败状态有值,最长 1024 个字符
inChargeId String 是 任务负责人 ID
inChargeName String 是 任务负责人名称
folderId String 否 任务所在文件夹 ID
folderName String 否 任务所在文件夹路径
resourceGroupId String 否 任务使用的资源组 ID
tenantId String 是 租户 ID
region String 是 WeData 项目所在地域

九、工作流实例事件的 data 字段

适用事件:workflow.instance.running、workflow.instance.succeeded、workflow.instance.failed。

字段 类型 必有 说明
projectId String 是 WeData 项目 ID
projectName String 是 WeData 项目名称
workflowId String 是 工作流 ID
workflowName String 是 工作流名称
instanceId String 是 工作流实例 ID
status String 是 工作流实例状态:RUNNING、SUCCEEDED 或 FAILED
scheduledTime String 是 计划调度时间,ISO 8601 格式,使用 UTC 时区
startTime String 是 工作流开始运行时间
endTime String 否 工作流结束时间;仅成功或失败状态有值
duration Integer 否 运行耗时,单位为秒
totalTaskCount Integer 是 工作流内任务总数
succeededTaskCount Integer 否 已成功的任务数
failedTaskCount Integer 否 已失败的任务数
failedTaskNames String 数组 否 失败的任务名称列表;仅失败状态有值
errorMessage String 否 工作流失败原因摘要;仅失败状态有值
inChargeId String 是 工作流负责人 ID
inChargeName String 是 工作流负责人名称
tenantId String 是 租户 ID
region String 是 WeData 项目所在地域

十、测试事件的 data 字段

执行测试推送时,EventBridge 中的事件类型为 wedata:test.connectivity。

字段 类型 说明
projectId String WeData 项目 ID
projectName String WeData 项目名称
channelId String 推送通道 ID
channelName String 推送通道名称
testTime String 测试发起时间
message String 固定值 This is a connectivity test event from WeData.

十一、使用限制

·单个项目最多创建 10 条推送通道。

·项目管理员默认拥有事件推送相关权限。项目也可以通过成员与角色管理,为自定义角色配置事件推送下的“推送通道”和“推送日志”权限;用户可执行的操作以其角色权限为准。

·推送日志默认展示近 24 小时的记录,单次最长可查询近 7 天;超过 7 天的日志会自动清理。

·EventBridge 的事件规则数、投递目标数、消息大小和投递频率等限制由 EventBridge 维护,请以 EventBridge 控制台和产品文档为准。

十二、相关文档

·EventBridge 事件模式

·EventBridge 链路追踪

赞 (0)
上一篇 4天前
下一篇 4天前