1 什么是数据流
在实际工厂中,一条忙碌的生产线通常会存在以下几个关键节点:一个原材料入口、若干中间环节、一个成品出口。
在finetube中,一个数据流任务就好比一条生产线一样,也需要以下几个关键步骤:一个输入组件、若干中间组件、一个或者多个输出组件。
1.1 概念图
1.2 消息格式
由于每个不同的数据源的数据结构都不尽相同,所以finetube产品内部规定了自己的消息格式,所有的外部数据源接入到finetube时都会转化为内部格式的一种或多种。
1.2.1 键值对
最常见的也是使用最多的一种格式,以Key-Value形态存储的消息格式(以下简称KVP),一个KVP格式的消息就是一组Key-Value对象组成的集合,最直观的对比就是关系型数据库里的一行数据:字段名-字段值。
1.2.2 JSON
另一种常用格式是以json对象为基础数据结构构建的,它和KVP不同的地方在于JSON是支持嵌套的,json的value也可以是另一个json,所以它的存储能力比KVP强大得多,但同时也复杂得多。
通常我们需要一个json格式化组件来把一个json格式的消息解析成一个或者多个KVP格式的消息。
2 创建流任务
2.1 手动添加
点击 数据集成 >> 数据流任务 >>添加 即可创建一个新的数据流任务
2.2 从文件导入
点击 数据集成 >> 数据流任务 >> 从文件导入 即可使用ftr文件导入一个或者多个数据流任务
2.3 布局
如上图所示,流任务配置页面主要分为三个区域:
组件栏:所有可用的组件都在这里,可以使用鼠标拖动一个需要的组件放入到右侧画布内
工具栏:一些可操作按钮都在这里,保存、刷新、调试等等按钮。
画布主体区域:这是唯一可自由编辑的区域,我们的流程图都是这里完成
2.4 常用操作
操作 | 描述 |
---|---|
保存 | 点击工具栏最左侧保存按钮可以保存当前任务 |
启动 | 点击工具栏启动按钮可以启动当前任务 |
连接俩个组件 | 有俩种方式可以连接组件: 1、鼠标右键点击源组件 -> 下一步 -> 主输出 -> 鼠标左键点击目标组件 2、鼠标移至源组件上 -> 按住鼠标滚轮 -> 鼠标移至目标组件上 -> 释放滚轮 |
删除连线 | 点击连线 -> 点击左侧删除按钮 -> 点击确定 |
删除组件 | 鼠标右键点击组件 -> 点击删除按钮 |
复制组件 | 有俩种方式可以复制组件: 1、鼠标右键单击组件 -> 鼠标左键点击画布内任一个空白格子 -> Ctrl+V粘贴 2、鼠标移至想要复制的组件上 -> Ctrl+C复制 -> 鼠标左键点击画布内任一个空白格子 -> Ctrl+V粘贴 |
批量操作 | 点击工具栏多选按钮,呼出批量操作系列按钮,支持全选、批量复制、批量删除和取消多选状态等操作 |
组件配置 | 鼠标双击组件图标打开组件配置页面 |
3 流任务配置
3.1 流程设计
数据流任务的核心都在这里,负责数据的采集、转换、装载等。
一个流任务至少需要一个输入组件(组件栏里面绿色的)作为数据流入口,具体每一个组件的详细解释请参考 组件清单详解
3.2 全局参数
3.3 执行计划
3.3.1 并发控制
当一个任务里存在多个输入组件时,即存在多个任务流时,可以选择任务运行时多个任务流之间是串行还是并行执行。
串行:多个任务流一次执行,执行顺序不定
并行:启用多个线程同时执行所有的任务流
3.3.2 数据调度策略
此选项解释较复杂,后续待补充文档
3.3.3 执行方式
这里分配任务执行的计划,有以下3种模式可供选择:
模式 | 描述 |
---|---|
执行一次 | 任务只执行一次,完成之后即停止,此为默认模式 |
简单重复执行 | 可以循环执行的模式,可以配置一个时间间隔,每隔一段时间都将重新执行一遍任务 |
固定时间执行 | 也叫做定时任务,可以根据配置的时间在特定的时间点触发任务执行,如下图所示: 此配置项的效果是当任务处于运行状态时,每天凌晨2点整都会执行一次流程设计里配置的任务流 |
3.4 异常处理
3.4.1 忽略主键冲突
此选项是冗余的,默认都是忽略主键冲突异常,可选可不选。
3.4.2 错误处理策略
当任务运行过程中发生错误时,有以下几种处理方式可供选择:
策略 | 描述 |
---|---|
立刻停止 | 最严格的模式,任何一个组件只要发生错误整个任务流立即停止,不能容忍任何错误的发生,此为默认模式 |
错误数据达到阈值时停止 | 可以容忍少量的错误发生,当业务场景数据不是特别敏感时可以选择此种模式,只有当错误数据量达到配置的阈值时任务才会停止。可能会造成少量数据丢失 |
忽略错误继续运行 | 最为宽松的策略,无论发生多少错误任务都不停止,一般不推荐此种策略。 |
3.4.3 任务重启
当任务因为发生错误而停止时可以通过配置此选项以支持任务自动重启,如下图所示:
以上配置的效果是当任务发生错误时不会立刻处于中断状态,而是会暂时处于重启状态(等待重启),调度引擎会尝试重新启动任务3次,每次间隔5分钟,如果3次之后依然发生错误则任务变为中断状态,重启失败。
3.4.4 消息提醒
消息提醒支持系统消息和邮件消息。
触发时机可以选择一下3种:
触发时刻 | 描述 |
---|---|
任务完成时 | 当任务成功执行完毕时,此时任务状态变为 完成,触发 任务完成时 消息提醒 |
任务暂停时 | 当任务执行失败但是配置了任务重启,此时任务状态变成 重启,触发 任务暂停时 消息提醒 |
任务中断时 | 当任务执行失败并且没有配置重启或者重启失败,此时任务状态变成 中断,触发 任务中断时 消息提醒 |
3.4.5 运行监控
这里可以查看任务运行时每个组件的状态