FineDataLink实战案例分享【0925周】

楼主
我是社区第567266位番薯,欢迎点我头像关注我哦~

本周新增四方案:

  • 活动日程信息更新至企业微信日程
  • 仅在工作日执行定时任务
  • 订单补录数据按日汇总增量更新方案
  • 解析并关联多个JSON数组字段

1、活动日程信息更新至企业微信日程

1.1 应用场景

用户有些日程信息是通过 FR 填报到数据库或者保存到简道云中,原始信息可能会被其他部门进行增删改操作,因此用户希望将日程数据在企业微信中记录,方便在活动开始前对相关的同学做到自动提醒。

1.2 实现思路

准备工作:

1)将简道云或线下收集的日程信息,保存到数据库中,为后续更新到企业微信日程做准备。

2)应用在调用日程接口前,需要先获得日程的使用权限,本文示例是通过「自建应用」调用日程接口。

3)通过 创建日历接口 创建一个全新的日历,且记下该日程的 cal_id 参数,在调用日程相关接口时会用到该参数。

FineDataLink 定时任务实现思路:

1)调用 日程 相关接口时,需要用到 access_token 参数,因此通过 调用 access_token 接口,获取 access_token 值。

2)将保存到数据库中的日程信息整合到一张表中,作为来源表;通过 获取日历下的日程列表 接口,获取日程详细信息,作为目标表;比对来源表和目标表的数据:

  • 新增日程数据:输出某些字段作为参数,这些参数可拼接为 创建日程 接口的 body 数据。

  • 修改日程数据:输出到 changed 表。

  • 删除日程数据:输出到 deleted 表。

3)拼接 创建日程 接口的 body 信息,输出为参数,调用 创建日程 接口,新增日程信息。

4)通过 deleted 表中的日程名称字段,从 获取日历下的日程列表 接口信息中过滤出要删除的日程信息,将 schedule_id 字段输出为参数,调用 删除日程参与者 接口,删除日程。

5)将 changed 表中的日程名称字段输出为参数,从 获取日历下的日程列表 接口信息中过滤出要修改的日程信息,再与 changed 表数据进行关联,生成 更新日程 接口的 Body 数据,并作为参数输出;调用 更新日程 接口,修改日程。

1.3 实现过程

请参见文档:活动日程信息更新至企业微信日程

2、仅在工作日执行定时任务

2.1 应用场景

用户希望定时任务仅在工作日运行。

2.2 实现思路

调用判断当天是否为工作日的接口,若当天是工作日,进行常规后续节点运行;若当天不是工作日,可运行虚拟节点。如下图所示:

2.3 实现过程

请参见文档:仅在工作日执行定时任务

3、订单补录数据按日汇总增量更新方案

3.1 应用场景

用户业务系统订单表包含:订单ID、订单金额、订单交易日期、订单创建日期。正常情况下「订单交易日期」和「订单创建日期」在同一天,但可能会存在业务人员补录订单的情况,比如原本 9.1号交易的数据,在 9.10 号才补录进系统,此时订单创建日期为 9.10 号,订单交易日期为 9.1 号。

在搭建数仓的时候,ODS 层数据按照订单创建日期做增量更新,可正常进行更新;

DM 层数据按照「交易日期」按日汇总每日的订单金额,并设置每次调度增量更新订单交易日期前五天的数据,但是由于补录数据不确定补录时间,例如 9.21 日更新前 5 天的数据,但9.21日补录了「订单交易日期」为 9.1、9.2 日的数据,此时先删后更新的增量更新方案无法对补录的数据进行增量同步。

注:标黄为 9.21 补录的历史交易数据。

3.2 解决思路

  • 首先对于没有补录的对应「订单交易日期」数据增量更新近 5 天的数据。

  • 筛选出「订单创建日期」>「订单交易日期」的订单,取出其中的交易日期,代表此交易日期补录了数据,需要重新计算按日汇总订单金额。

3.3 实现过程

请参见文档:订单补录数据按日汇总增量更新方案

4、解析并关联多个JSON数组字段

4.1 应用场景

用户的 JSON 数据中包含多个数组字段,如下图所示:

希望解析数组字段,且解析后的字段一一对应。如下图所示:

4.2 实现思路

「JSON 解析」算子中,选择要解析的 JSON 字段后,修改 JSON 路径。

4.3 实现过程

请参见文档:解析并关联多个JSON数组字段

 

 

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 996浏览人数
最后回复于:2023-9-25 11:26

返回顶部 返回列表