1. 概述编辑
FineDB 数据库存储了工程中除平台属性配置以外的所有信息,包括管道任务、定时任务信息等。
本文主要说明 FineDataLink 特有的数据表。
2. 数据开发模块编辑
2.1 任务配置表:fine_dp_conf_entity_x
在fine_dp_conf_entity_x这张表中,存储了关于定时任务的所有配置相关的信息。
这张表的表结构比较特殊,在这张物理表内存储了多个子表,每个子表通过 namespace 来进行区分。子表的具体内容,存储在 entity_value 字段中。
下表展示了fine_dp_conf_entity_x主要字段的含义。
字段名 | 数据类型 | 长度 | 非空 | 说明 |
---|---|---|---|---|
id | VARCHAR | 255 | TRUE | 自动生成的uuid |
namespace | VARCHAR | 255 | TRUE | 命名空间,用来区分entity_value 中的内容 枚举型变量
|
timestamp | bigint | 20 | TRUE | 记录生成的时间戳 |
entity_key | VARCHAR | 4000 | TRUE | 子表逻辑id,在子表空间内是唯一的。 |
entity_value | LONGTEXT | TRUE | 子表的具体内容,为json格式。可以理解为正常表一行的内容,现在被压缩为一个字段了,json的key就是表的字段名,value就是字段值。 |
不同 Namespace 的 entity_value 的格式及含义
4.0.25 之前版本:
namespace | 子表存储的内容 | 子表字段 | 含义 |
---|---|---|---|
DPFileEntityStore | 定时任务文件相关配置 | fileId | 文件id,用来唯一标识文件 |
envPath | 文件路径 | ||
createTime | 文件创建时间 |
4.0.25 及之后版本:
namespace | entity_value 字段存储的内容 | entity_value json字段内的键名 | 键名的含义 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DPFileEntityStore | 定时任务文件相关配置 | id | 节点id,用来唯一标识任务或者文件夹 | ||||||||||
pid | 父节点id | ||||||||||||
name | 节点名称 | ||||||||||||
createTime | 节点创建时间 | ||||||||||||
type | 节点类型:ENTITY-任务;PACKAGE-文件夹 | ||||||||||||
DPAttributeStore | 定时任务定时调度配置(4.0.27 及之后版本请参见:本文 2.5 节内容) | id | 文件id,与上述fileId一致 | ||||||||||
name | 文件路径,与上述envPath一致 | ||||||||||||
scheduleOpen | 定时调度是否开启 | ||||||||||||
startTime | 定时调度开始时间 | ||||||||||||
frequency | 定时调度的执行频率
value根据不同的类型有不同的解释,不再赘述 | ||||||||||||
endTime | 定时调度结束时间 | ||||||||||||
notify | 是否开启结果通知 | ||||||||||||
DPFineDBVersionStore | 定时任务文件版本号 | version | 当前定时任务文件版本号 | ||||||||||
WorkBasicAttributeStore | ETL任务的基本属性 | id | 文件id | ||||||||||
workBasicAttribute | 任务属性:
|
注:由于FDL需要支持版本的升级和回退,因此,不同的文件版本会对应不同的记录。是以 文件版本号 + 文件ID 作为entity_key的值的。
历史版本的记录也保留在这个表中,如果需要过滤当前版本的信息,需要对 entity_key 的值先进行筛选。
2.2 执行记录表:fine_dp_work_exec_record
4.0.16及之前的版本
执行记录表:fine_dp_execute_record_x
记录了定时任务的执行情况,包括执行的开始时间、结束时间、执行结果、报错信息等。
与任务配置表不同,执行记录表是一个简单结构的表,并不存在子表结构,因此结构相对简单。下面介绍主要字段及含义。
字段 | 数据类型 | 长度 | 非空 | 说明 |
---|---|---|---|---|
id | VARCHAR | 255 | TRUE | 自动生成的uuid |
executeId | VARCHAR | 255 | FALSE | 与id值一致 |
startTime | BIGINT | 20 | FALSE | 任务开始时间 |
finishTime | BIGINT | 20 | FALSE | 任务结束时间 |
taskId | VARCHAR | 255 | FALSE | 任务Id。与任务配置表中namespace为DPFileEntityStore的子表里的fileId一一对应。 |
taskStatus | VARCHAR | 255 | FALSE | 任务执行状态
|
triggerMethod | VARCHAR | 255 | FALSE | 任务触发方式:
|
versionTime | BIGINT | 20 | FALSE | 执行记录的版本时间 |
errorLog | LONGTEXT | 20 | FALSE | 出错日志。若任务执行成功则为空 |
注:定时任务每执行一次,都会生成一条执行记录。
人员关联表:fine_dp_user_x
在执行记录表中,并没有记录任务是由哪个用户触发的。这些信息存在了 fine_dp_user_x 这张表中。
字段 | 含义 |
---|---|
id | 主键id |
rId | 关联id,与id一致。用来和fine_dp_execute_record_x表的executeId字段进行关联的 |
username | 用户名 |
4.0.17及之后的版本 fine_dp_work_exec_record
执行记录表中,记录了定时任务的执行情况,包括执行的开始时间、结束时间、执行结果、执行详细信息等。
与任务配置表不同,执行记录表是一个简单结构的表,并不存在子表结构,因此结构相对简单。下面介绍主要字段及含义。
字段 | 数据类型 | 长度 | 非空 | 含义 |
---|---|---|---|---|
id | VARCHAR | 255 | TRUE | 执行id |
startTime | BIGINT | 20 | FALSE | 任务开始时间 |
finishTime | BIGINT | 20 | FALSE | 任务结束时间 |
taskId | VARCHAR | 255 | FALSE | 任务Id。与任务配置表中namespace为DPFileEntityStore的子表里的fileId一一对应。 |
taskStatus | VARCHAR | 255 | FALSE | 任务执行状态:
|
triggerMethod | VARCHAR | 255 | FALSE | 任务触发方式:
|
triggerBy | VARCHAR | 255 | FALSE | 触发者(如果是定时调度触发的,则为system,4.0.27之后版本变为 fine_dp_plan_schedule 中的 planId ) |
path | VARCHAR | 255 | FALSE | 运维详细信息的路径,这个是相对路径(在WEB-INF下的相对路径) |
注:定时任务每执行一次,都会生成一条执行记录。
最近一次执行记录表:fine_dp_work_last_record(FDL4.0.30.2版本新增)表结构同 fine_dp_work_exec_record,保存每个任务的最近一次执行记录。
2.3 任务删除记录表:fine_dp_work_delete(4.0.17版本新增)
该表中记录所有已删除的任务id以及任务名称
字段 | 数据类型 | 长度 | 非空 | 说明 |
---|---|---|---|---|
id | VARCHAR | 255 | TRUE | 任务Id。与任务配置表中namespace为DPFileEntityStore的子表里的fileId一一对应 |
taskName | VARCHAR | 255 | FALSE | 任务被删除时的任务名称 |
通过fine_dp_work_delete表和fine_dp_work_exec_record表关联可以获取已删除的任务的执行记录。
2.4 任务操作历史记录表:fine_dp_operate_history
该表记录了数据开发任务、数据管道任务的编辑记录。每次触发了保存操作,都会在这个表里面增加一条记录。
字段 | 含义 |
---|---|
id | uuid |
operate_time | 操作的时间戳 |
operate_type | 操作的类型: EDIT ---- 保存任务 |
operate_user | 操作的用户 |
task_id | 任务id |
task_name | 任务名字 |
task_path | 任务路径 |
task_type | 任务类型: DATA_DEVELOP ---- 数据开发任务 PIPELINE_DEVELOP ---- 数据管道任务 |
2.5 定时调度配置表:fine_dp_plan_schedule和fine_dp_plan_work
由于添加了调度计划(一个调度计划可以包含多个任务),定时调度配置分为了两个表:
fine_dp_plan_schedule:实际保存了调度配置。
fine_dp_plan_work:保存了调度配置要作用的对象。
它们之间通过 plan_id 关联。表结果如下:
2.5.1 fine_dp_plan_schedule
字段 | 含义 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
plan_id | 计划id | ||||||||||||||||||||||||||
plan_detail | 计划详情,有三个字段:
| ||||||||||||||||||||||||||
schedule_id | 调度id | ||||||||||||||||||||||||||
schedule | 调度配置,有6个字段:
| ||||||||||||||||||||||||||
schedule_type | 调度类型(目前只有定时调度) | ||||||||||||||||||||||||||
add_time | 计划添加的时间 |
2.5.2 fine_dp_plan_work
字段 | 含义 |
---|---|
plan_id | 计划id |
work_id | 任务id |
work_type | 任务类型 |
2.6 定时任务全局参数表 fine_dp_dev_global_param
字段 | 含义 |
---|---|
id | 参数id |
name | 参数名 |
value | 参数值 |
datatype | 参数数据类型 |
creator | 参数创建用户 |
createTime | 参数创建时间 「时间戳格式」 |
updateDetail | 参数变更明细 |
2.7 日历 fine_dp_plan_calendar
字段 | 含义 |
---|---|
id | 日历id |
name | 用户设置的日历名 |
quartz_calendar_name | quartz中保存的日历名 |
dates | 日历中日期明细,数组转成字符串保存 |
filename | 上传的文件名称 |
start | 日历开始的日期 |
end | 日历结束的日期 |
timezone_id | 时区;上传日历时服务器的时区 |
2.8 日历目录 fine_dp_plan_calendar_cata
字段 | 含义 |
---|---|
id | 日历目录节点id |
entity_key | 日历id;对应上表的日历id |
namespace | 命名空间 |
value_class | 对应的日历类 |
entity_value | 日历信息;创建时间、类型节点/目录、父节点 |
3. 管道任务编辑
3.1 管道任务配置表 fine_dp_pipeline_task
与定时任务的配置表相似。
表内存储了多个子表,每个子表通过 namespace 来进行区分。子表的具体内容,存储在 entity_value 字段中。
字段名 | 数据类型 | 长度 | 非空 | 说明 |
---|---|---|---|---|
id | VARCHAR | 255 | TRUE | 自动生成的uuid |
namespace | VARCHAR | 255 | TRUE | 命名空间,用来区分entity_value 中的内容 枚举型变量
|
value_class | VARCHAR | 255 | TRUE | entity 对应的 Java 类 |
entity_key | VARCHAR | 4000 | TRUE | 子表逻辑id,在子表空间内是唯一的。 |
entity_value | LONGTEXT | TRUE | 子表的具体内容,为json格式。可以理解为正常表一行的内容,现在被压缩为一个字段了,json的key就是表的字段名,value就是字段值。 |
不同 Namespace 的 entity_value 的格式及含义
PipelineTask:任务基本信息
描述 | |
---|---|
id | 管道任务 ID |
taskName | 索引 |
status | 任务状态 IDLE - 空闲 RUNNING - 运行中 ERROR - 错误 PAUSED - 暂停 |
syncType | 同步类型 FULL_AND_INCREMENTAL - 全量 + 增量 |
sourceType | 数据源类型,如 mysql、oracle |
sourceTypeName | 数据源类型展示名称,如 MySQL、Oracle |
sourceConnectionName | 数据源数据连接名称 |
targetType | 数据去向类型 |
targetTypeName | 数据去向展示名称 |
targetConnectionName | 数据去向数据连接名称 |
firstStartTime | 任务首次启动时间 |
createTime | 任务创建时间 |
updateTime | 任务上次修改时间 |
PipelineDraft:管道任务暂存信息
描述 | |
---|---|
id | 管道任务 ID |
taskName | 索引 |
originalTaskName | 对应的管道任务名称 |
syncType | 同步类型 |
sourceType | 数据源类型 |
sourceTypeName | 数据源类型展示名称 |
sourceConnectionName | 数据源数据连接名称 |
targetType | 数据去向类型 |
targetTypeName | 数据去向展示名称 |
targetConnectionName | 数据去向数据连接名称 |
editStatus | 已完成的进度 默认是 0,第一步校验完成该值为 1,第二步校验完成该值为 2... |
createTime | 任务创建时间 |
updateTime | 任务上次修改时间 |
字段名 | 描述 |
---|---|
id | 任务或暂存 id |
sourceConfig | 数据源配置 |
targetConfig | 数据去向配置 |
controlConfig | 管道控制配置 |
PipelineSourceTable:源表信息
描述 | |
---|---|
id | 表 id |
targetTableId | 对应目标表 id,关联字段 PipelineTargetTable 的 id |
database | 源数据库名 |
schema | 源模式名 |
table | 源表名 |
topic | 实时同步对应的 Kafka topic 名称 |
fullSyncFinished | 是否已经完成全量同步 |
reSync | 是否重新同步 |
columns | 源表字段 |
PipelineTargetTable:目标表信息
描述 | |
---|---|
id | 目标表 id |
sourceTableId | 对应源表 id,关联字段 PipelineSourceTable 的 id |
database | 目标库名 |
schema | 目标模式名 |
table | 目标表名 |
columns | 目标表字段 |
3.2 管道任务断点续传配置表 fine_dp_pipeline_savepoint
数据类型 | 长度 | 非空 | 说明 | |
---|---|---|---|---|
ID | VARCHAR | 255 | TRUE | 记录ID |
TABLE_ID | VARCHAR | 255 | FALSE | 断点对应表的 ID |
TASK_ID | VARCHAR | 255 | TRUE | 断点对应任务的 ID |
TYPE | VARCHAR | 255 | TRUE | 断点类型 |
CREATE_TIME | BIGINT | 64 | FALSE | 创建时间 |
UPDATE_TIME | BIGINT | 64 | FALSE | 更新时间 |
VALUE | VARCHAR | 16777216 | TRUE | JSON 格式,实际断点保存的值,不同类型的断点保存的值不同。 |
3.3 管道任务执行记录表 fine_dp_pipeline_execute
描述 | 数据类型 | 长度 | |
---|---|---|---|
ID | 记录ID | VARCHAR | 255 |
TASK_ID | 任务ID | VARCHAR | 255 |
TABLE_FULL_NAME | 来源表的完整名称 | VARCHAR | 255 |
TYPE | 执行记录类型。PIPELINE_TASK - 任务级别。PIPELINE_TABLE - 表级别。 | VARCHAR | 255 |
LAST_START_TIME | 上一次启动时间 | BIGINT | 64 |
LAST_LOG_TIME | 上一次记录时间 | BIGINT | 64 |
WORK_DURATION | 任务实际工作时长(若任务中途有中断,则中断时间不会统计在内) | BIGINT | 64 |
READ_RECORD_COUNT | 读取行数 | BIGINT | 64 |
INSERT_RECORD_COUNT | 插入行数 | BIGINT | 64 |
UPDATE_RECORD_COUNT | 更新行数 | BIGINT | 64 |
DELETE_RECORD_COUNT | 删除行数 | BIGINT | 64 |
TO_SYNC_RECORD_COUNT | 待同步行数 | BIGINT | 64 |
ERROR_RECORD_COUNT | 失败行数 | BIGINT | 64 |
READ_TOTAL_TRAFFIC | 读取数据量(单位Byte) | BIGINT | 64 |
INSERT_TRAFFIC | 插入数据量(单位Byte) | BIGINT | 64 |
UPDATE_TRAFFIC | 更新数据量(单位Byte) | BIGINT | 64 |
DELETE_TRAFFIC | 删除数据量(单位Byte) | BIGINT | 64 |
TO_SYNC_TRAFFIC | 待同步数据量(单位Byte) | BIGINT | 64 |
3.4 数据管道表结构变化依赖表 fine_dp_pipeline_schema
数据管道 MySQL 数据源处理表结构变化时依赖的表。
描述 | 数据类型 | 长度 | |
---|---|---|---|
ID | 记录ID | VARCHAR | 255 |
TASK_ID | 任务 ID | VARCHAR | 255 |
TABLE_FULL_NAME | 表名称 | VARCHAR | 255 |
TABLE_CHARSET | 表字符编码 | VARCHAR | 255 |
SCHEMA_VALUE | 表结构记录 | VARCHAR | 16777216 |
POSITION | 断点位置 | VARCHAR | 255 |
COMMIT_TIME | 提交时间 | BIGINT | 64 |
3.5 管道任务脏数据记录表
管道任务中如果捕获到脏数据后,会将脏数据的基本信息存储在这个表中。
4.0.29 及之后版本,表名称(fine_dp_pipeline_dirty):
字段名称 | 描述 |
---|---|
id | 脏数据id,唯一标识一条脏数据 |
task_id | 任务id |
task_table_id | 表id |
timestamp | 脏数据捕获时间 |
primary_key | 主键信息,一个json字符串。 例子: { "before": "更新前主键", "after": "更新后主键" } |
error_type | 异常类型 |
error_params | 异常信息 |
fdl_topic | 业务数据所在的topic |
fdl_offset | 该脏数据在指定topic的offset |
4.0.27、4.0.28版本,表名称(fine_dp_pipeline_dirty_data):
字段名称 | 描述 |
---|---|
id | 脏数据id,唯一标识一条脏数据 |
task_id | 任务id |
task_table_id | 表id |
timestamp | 脏数据捕获时间 |
primary_key | 主键信息,一个json字符串。 例子: { "before": "更新前主键", "after": "更新后主键" } |
error_type | 异常类型 |
error_params | 异常信息 |
topic | 业务数据所在的topic |
offset | 改脏数据在指定topic的offset |
4. 数据服务编辑
4.1 文件树:fine_dp_service_catalog
不同 namespace 对应的明细:
namespace | 说明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DataServiceAPICatalogDO(API目录) 4.0.27 及之后版本 |
| ||||||||||||
DataServiceAppCatalogDO(应用目录) |
|
4.2 API 详情:fine_dp_service_task
字段 | 含义 |
---|---|
taskId | api任务的id |
creator | 创建者 |
description | 描述 |
isOnline | api是否上线 |
requestMethod | 请求方式 |
version | 任务版本,跟随FDL版本一起 |
requestContentType | 请求的content-type |
taskDetail | api任务的具体配置,与任务类型、数据源类型一一对应 |
4.3 应用详情:fine_dp_service_app
字段 | 含义 | ||||||||
---|---|---|---|---|---|---|---|---|---|
appId | 应用id | ||||||||
authInfo | 认证信息
| ||||||||
creator | 创建者 | ||||||||
description | 描述信息 |
4.4 API和应用的绑定关系:fine_dp_service_mapping
字段 | 含义 | ||||||
---|---|---|---|---|---|---|---|
apiId | api的id | ||||||
appId | 应用id | ||||||
expireTime | 过期时间
| ||||||
rateLimit | 访问限制
|