[自研开源] MyData 数据集成任务的流程介绍 v0.7.1
详细介绍:MyData 基于 Web API 的数据集成平台 v0.7.0
部署文档:用 Docker 部署 MyData v0.7.1
使用手册:MyData 使用手册v0.7.1
交流 Q 群:430089673
MyData 后端结构
MyData 的后端由 3 个子服务组成,分别是管理服务
、任务服务
、业务数据服务
;
管理服务:通过项目、数据标准、应用 API、环境的管理 配置出同步业务数据的任务;
任务服务:根据配置的任务 定时调用应用 API 和数据服务 实现业务数据的传输和存储;
数据服务:封装业务数据的隔离机制和读写操作;
依赖的组件:
MySQL:存储管理数据;
Redis:缓存管理数据和任务;
MongoDB;存储业务数据;
下图从数据流角度 展示 3 个子服务的关联:
注:开源版本采用单体 SpringBoot;
任务服务
配置任务
任务主要包括:项目环境、数据标准、应用 API、任务类型、字段映射、任务周期;
项目环境:确定应用 API 的统一前缀地址;
数据标准:明确集成的业务数据的数据结构;
应用 API: 业务数据的传输通道;
任务类型:明确数据的传输方向,
提供数据
表示从应用 API 读取业务员数据、消费数据
表示向应用 API 发送业务数据;字段映射:配置接口响应结构中 与标准数据字段的映射关系;
任务周期:定期执行任务的时间间隔,格式为 cron 表达式;
任务流程
数据集成的任务执行流程如下图:
任务服务启动时(即 MyData 系统启动),查询所有运行状态的任务;
根据任务的 cron 表达式,计算任务的下次执行时间;
计算任务的下次执行时间 与 当前时间的时间差,以时间差作为缓存失效期 将任务存入 redis 缓存;
通过监听 redis 的 key 失效事件,获得待执行的任务;
将任务加入待执行的线程池,随后即可执行
根据任务类型分别执行
提供数据
和消费数据
流程;提供数据
调用应用 API,获取 json 格式数据;
根据任务中字段映射 解析 json 为业务数据 Map 集合;
调用数据服务 将业务数据存入 MongoDB;
消费数据
根据任务所选数据标准,查询业务数据;
再根据字段映射,将业务数据 转为指定的 json 对象集合;
调用应用 API,传输 json 数据;
保存任务执行日志;
版权声明: 本文为 InfoQ 作者【LIEN】的原创文章。
原文链接:【http://xie.infoq.cn/article/77b166308c819b675bc8dd83e】。文章转载请联系作者。
评论