核心概念
Reactive Data Process,简称:mass-rdi
mass-rdi 是一个基于akka架构上构建的分布式高可用ETL平台,可以把一个job中子任务按照拓扑关系在集群中不同的节点上并行执行, 高效利用集群资源;提供多个工具节点,可监控文件数据情况,对数据及任务进行监控告警,异常处理等。其中工作流定义相对简洁轻量级, 可作为构建数据仓库、或大数据平台上的调度工具。
技术架构
MassData 平台架构图
整个 mass-rdi 架构采用伪去中心化的设计,使用角色来区分节点所拥有的功能。当前已有角色有:
- leader: 用于整个RDP集群管理,节点加入、退出,任务分配、调度
- worker: 实际执行数据处理任务
- console: 管理控制台,包括:任务管理、任务编排、监控等功能
每个节点都拥有完整的功能,通过启动时设置role(节点角色)来指明当前节点启用的功能组。这意味着,一个节点可以同时担任多种角色(推荐每个节点角色功能单一)。 每个角色可以独立部署于不同机器上,支持高可用性(HA)。
// 节点中包含以下模块:调度模块,执行模块,告警模块,日志模块,持久化模块。
由 Akka 强力驱动
支持数据源或存储:
- RMDBs: PostgreSQL、MySQL、Oracle、DM(达梦数据库)
- HDFS、Hive、HBase
- Elasticsearch
- Cassandra
- MongoDB
- FTP/sFTP
- Excel/CSV
功能
任务调度
- 定时调度(间隔时间、日历时间)
- 任务分拆、分派
- 分布式任务^
数据导入、导出
从SQL、NoSQL、文件(Excel、CSV……)将数据导到其它的SQL、NoSQL、文件(Excel、CSV……)。
数据清洗、转换
可在数据EL(Extract, Load)时实时对数据进行清洗、转换,也可对离线数据进行清洗、转换。包括但不限如下功能:
- 数据格式化(去空白字符,时间、日期、数字、金额格式化)
- 字段合并、分割
- 字段比较、去重
- 数据转换,根据自定义函数转换数据为另一种形式的数据
- Excel/CSV数据表单动态导入(可配置数据例映射存储的字段)
- ……
图形、可编程化任务配置
- 提供图形化可拖拽任务流程配置
- 集成基于Web的数据清洗、转换代码编辑器
数据处理可视化
可视化显示数据流处理过程,可对数据处理过程、状态、处理数据量进行实时监控