历史版本37 :FineDB表结构 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink版本
功能变动
4.1.7.3

1)fine_dp_work_exec_record表迁移到logdb中,表名不变,后续数据均写入迁移后数据表。升级后会将历史运行记录迁移到LogDB

2)fine_dp_conf_entity_x表:

  • 移除namespace为DPFileEntityStore、DPTimeoutRetryStore、DPNoticeStore、DPWorkPriorityStore、DPStrategyStore、BiTableEntityStore、DPBIAttributeStore的派生表

  • 新增namespace——DPFineBackupStore,含义为是否回退到某个版本的配置

3)新增fine_dp_data_dev_work表

4)新fine_dp_data_dev_backup表

4.1.8.11)新增namespace为PipelineGroup、PipelineMapConfig、PipelineTable2Group的派生表

2)namespace为PipelineSourceTable的派生表升级为了PipelineSourceTableV1,并移除了reSync字段

3)namespace为PipelineTargetTable的派生表升级为了PipelineTargetTableV1,并移除了sourceTableId和mapType字段

4)namesapce为PipelineTaskV1的派生表升级为了PipelineTaskV2,并移除了sourceTypeName和targetTypeName字段

5)fine_dp_dev_global_param表新增了config, param_type字段

1.2 功能说明

本文主要介绍 FDL 相关的 FineDB 表结构,平台相关的 FineDB 表结构请参见:FineDB 表结构

2. 数据开发模块编辑

2.1 数据开发 ER 图

表间关系如下所示:

20.png

2.2 fine_dp_dev_global_param

全局参数定义表:定义和存储全局参数配置。

字段名类型说明
id
varchar主键字段uuid
createTimevarchar参数创建时间 「时间戳格式」
creatorvarchar参数创建用户
namevarchar参数名
updateDetaillongtext修改用户和修改时间列表
valuevarchar参数的值:静态参数的值,动态参数的调试值
datatypevarchar

静态参数的类型,包含日期(DATE)、文本(STRING)、布尔(BOOLEAN)、数值(NUMBER)四

动态参数的该值为空

configlongtext动态参数的配置,包括reader和output,4.1.8.1版本新增该字段
param_typevarchar参数类型,值域为{"DYNAMIC", "STATIC"},4.1.8.1版本新增该字段

2.3 fine_dp_conf_entity_x

数据开发任务配置表,包括当前版本、任务目录、任务路径、消息通知配置、超时重试配置、优先级配置、任务检测状态等配置(以子表形式存在)。

这张表的表结构比较特殊,在这张物理表内存储了多个子表,每个子表通过 namespace 来进行区分。子表的具体内容,存储在 entity_value 字段中。

字段名
类型说明
idvarchar主键字段uuid
entity_keyvarchar

版本+任务id作为key,在子表空间内是唯一

示例值:"#4.1.5.5_2f91cf4b-a82b-4641-8b39-db82ed3fc17c"

namespacevarchar命名空间,用来区分子表
value_classvarchar子表对应的序列化实体类
entity_valuelongtext不同实体的具体 json 配置
timestampbigint记录生成的时间

该字段目前不被使用

values_indexlongtext该字段目前不被使用
values_lengthint该字段目前不被使用
is_deletedint该字段目前不被使用
is_segmentint
该字段目前不被使用
key_classvarchar该字段目前不被使用
segment_lengthint该字段目前不被使用

不同 namespace 的 entity_value 的格式及含义

4.0.25 之前版本:

namespace子表存储的内容子表字段含义
DPFileEntityStore定时任务文件相关配置fileId文件id,用来唯一标识文件
envPath文件路径
createTime文件创建时间

4.0.25 及之后版本-4.1.7.3 版本:

namespaceentity_value 字段存储的内容entity_value json字段内的键名键名的含义
DPFineDBVersionStore定时任务文件版本号version当前定时任务文件版本号
DPFileEntityStore定时任务文件相关配置:任务文件夹id
当前节点id
pid

父节点id

若在根路径下,pid为_DP_ROOT_CATALOG_,用于构建任务和目录树结构

createTime创建时间
creatorId创建用户id    
type节点类型,文件夹为PACKAGE
nextNodeId

下一个兄弟节点Id

4.1.6.5 及之后版本存在该字段

定时任务文件相关配置:任务实体id当前节点id
pid父节点id,若不在根路径下,pid为uuid,用于构建任务和目录树结构
name定时任务名称
createTime创建时间
publishTime

上线时

4.1.6.5 及之后版本存在该字段

describe

4.1.6.5 及之后版本存在该字段

checkState

任务校验状

4.1.6.5 及之后版本存在该字段

publishState

任务上线状

4.1.6.5 及之后版本存在该字段

creatorId创建用户id 
type节点类型,任务实体为ENTIT
nextNodeId

下一个兄弟节点Id

4.1.6.5 及之后版本存在该字段

DPTimeoutRetryStore

超时限制配

失败重试配置

脏数据容忍配置

2.png

值示例:

{

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

 "timeoutConfig": {  //超时限制配置

        "hour": 1,

        "minute": 0,

        "enabled": true  //是否开启:true 为开启,fasle 为未开启

    },

    "retryConfig": {    //失败重试配置

        "max": 3,  //重跑次数

        "delayMinute": 2,  //间隔时间

        "enabled": true //是否开启:true 为开启,fasle 为未开启

    },

    "errorLimitConfig": {   //脏数据容忍配置

        "enable": true, //是否开启:true 为开启,fasle 为未开启

        "limit": 1000  //脏数据阈值

    }

}


DPNoticeStore记录 结果通知 数据

值示例:

{

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

    "notice": {

        "notification": true, //结果通知按钮是否开启        

        "noticeConfig": {   //结果通知

            "notify": true, //任务异常通知、任务失败提醒是否勾选,这两项默认勾选,且无法修改

            "notifyInDetail": true, //具体报错信息是否勾选

            "notifyDirtyData": true, //脏数据通知是否勾选

            "notifyDirtyDataInDetail": true, //脏数据汇总信息是否勾选

            "notifyDDLChangeEvent": true //源表结构变化通知是否勾选

        },

        "userGroup": {  //平台用户组

            "users": [ //用户

                "1(1)"

            ],

            "depts": null, //部门

            "roles": null, //角色

            "roleStr": null //角色的 id,为前端开发逻辑,不涉及业务逻辑

        },

        "noticeChannels": [ //通知渠道

            {

                "type": "sms", //sms:短信;platform:平台;email:邮件;client:客户端

                "toUserGroup": false, //平台用户组

                "smsReceiver": [ //收件人

 

                ],

                "smsNotify": false

            },

        ]

    }

}

DPWorkPriorityStore记录 任务属性 数据

值示例:

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

    "taskPriority": 2,  //任务优先级。最低:-2;低:-1;中:0;高:1;最高:2

    "customLogLevel": true, //日志等级是否打开true/false

    "logLevel": "ERROR" //日志级别:包括ERROR、WARN、INFO

}

注:由于 FDL 需要支持版本的升级和回退,因此不同的文件版本会对应不同的记录。是以  文件版本号 + 文件ID 作为entity_key的值的。

历史版本的记录也保留在这个表中,如果需要过滤当前版本的信息,需要对 entity_key 的值先进行筛选。

4.1.7.3 及之后版本:

1)移除 namespace 为DPFileEntityStore、DPTimeoutRetryStore、DPNoticeStore、DPWorkPriorityStore、DPStrategyStore、BiTableEntityStore、DPBIAttributeStore 的派生表。

2)新增 namespace:DPFineBackupStore,含义为是否回退到某个版本的配置。值为:"true"/"false"

2.4 fine_dp_work_last_record

FDL4.0.30.2 版本新增。

最近一次运行记录表,只记录每个任务最近一次运行记录,新的运行记录会对旧的运行记录做覆盖。

字段
类型说明
id
varchar主键字段uuid,实例id
dirtyDataNumbigint脏数据条数
finishTimebigint任务完成时间
lastModifiedTimebigint最近修改时间
pathvarchar运行实例统计信息和任务快照存储路径。值示例:dpworks/record/2024-03-13/04c51446-0053-48f3-b507-bad1bdf46592.log
sourceExecuteIdvarchar被重试的实例id,重试时有值,否则为null
startTimebigint任务开始时间
taskIdvarchar任务id
taskStatus  varchar任务运行状态,包括初始状态(INITIAL)、构建失败(BUILD_FAIL)、排队中(QUEUING)、运行中(RUNNING)、任务成功(SUCCESS)、任务执行报错(ERROR)、任务失效(INVALID)、任务中断(INTERRUPT)
triggerByvarchar触发者,手动触发为用户名;调度触发则为调度计划id
triggerMethodvarchar任务触发类型,包括定时触发(FIX_TIME)、手动触发(MANUAL)、手动重试(MANUAL_RETRY)、时间触发(EVENT)
triggerTime  bigint触发时间

2.5 fine_dp_work_exec_record

4.1.7.3 以及之后的版本,迁移到 logdb 中,表名不变。

查询运行记录时:

1)查询最近一次,实际上去查 finedb 的 fine_dp_work_last_record 的数据

2)查询全量数据,实际上去查 finedb 的 fine_dp_work_last_record 和 logdb 的 fine_dp_work_exec_record 聚合后去重的数据。

历史运行记录表,新的运行记录直接进行插入。

表结构同 fine_dp_work_last_record(本文 2.4 节内容)。

注:定时任务每执行一次,都会生成一条执行记录。

2.6 fine_dp_work_delete

4.0.17 版本新增。

任务删除备份表,被删除的任务需要记录删除时的任务id和任务名。

字段
类型说明
id
varchar

主键字段uuid,任务id

taskNamevarchar任务名称

2.7 fine_dp_plan_calendar

调度日历 表,保存用户上传的调度日历。

字段
类型说明
idvarchar主键字段uuid,实例id
namevarchar日历名字
filenamevarchar导入日历时文件名
dateslongtext日历日期
startTimebigint日历开始时间
endTimebigint日历结束时间
quartz_calendar_namevarcharQUARTZ_CALENDAR表中的日历名
timezone_idvarchar时区

2.8 fine_dp_plan_calendar_cata

日历目录表,记录用户创建的调度日历保存的目录结构。

字段
类型说明
idvarchar主键字段uuid,实例id
entity_keyvarchar对应日历id
namespacevarchar命名空间
value_classvarchar目录条目对应的DO类型
entity_valuelongtext目录条目名字、所在位置、创建时间、所在树位置

2.9 fine_dp_plan_schedule

定时/事件调度、单一/批量调度表,包括四种情况,简单说明:

plan_detail 列的 type 字段schedule_type 列的 TIME 值schedule_type 列的 EVENT 值
WORK_SCHEDULE_PLAN单任务定时调度单任务事件调度
SCHEDULE_PLAN批量任务定时调度批量任务事件调度

fine_dp_plan_schedule 表结构如下表所示:

字段
类型说明
idvarchar主键字段uuid
add_timevarchar创建时间
plan_detailvarchar

值示例:

{

    "id": "82606bf6-4ccf-4ba9-907a-3b417334511e", //计划id

    "name": "调度1-定时B", //计划名

    "type": "WORK_SCHEDULE_PLAN" //计划类型:单任务计划:WORK_SCHEDULE_PLAN;批量计划:SCHEDULE_PLAN

}

plan_idvarchar计划id
schedulelongtext

调度配置-定时调度:

字段
含义
id调度id,值等于表中的schedule_id
scheduleOpen是否开启调度
startTime调度开始时间
frequency

调度的执行频率配置:

type
含义
0未开启
1只执行一次
2简单重复执行
3明细频率设置
4表达式设定
endTime调度结束时间
type调度的类型,TIME代表定时调度
calendar调度日历
调度配置-事件调度:
字段含义
id
调度id
scheduleOpen是否开启调度
dependentTasks依赖的任务列表
condition执行条件
type调度的类型,EVENT代表事件调度
schedule_idvarchar调度id
schedule_typevarchar调度类型,包括定时调度(TIME)、事件调度(EVENT)

2.10 fine_dp_plan_work

计划(不区分定时调度和事件调度)和任务的对应关系表,一个计划可以对应多个任务。

字段
类型说明
idvarchar主键字段uuid
plan_idvarchar执行计划id
work_idvarchar任务id
work_typevarchar任务类型,比如定时任务(TIMING)

2.11 fine_dp_data_dev_backup

4.1.7.3 版本,新增该表。数据开发任务配置表的备份表,value的数据与fine_dp_data_dev_work一致

字段
类型说明
idvarchar主键字段uuid
work_idvarchar任务id作为key
versionvarchar任务的版本号
project_versionvarchar配置的版本号
backup_versionvarchar备份的版本号
namespacevarchar命名空间,用来区分子表的
valuelongtext不同实体的具体json配置
create_timelong创建时间
update_timelong更新时间

2.12 fine_dp_data_dev_work

4.1.7.3 版本,新增该表。数据开发任务配置表,任务目录、消息通知配置、超时重试配置、优先级配置、集群策略配置、输出到BI配置

字段
类型说明
idvarchar主键字段uuid
work_idvarchar任务id作为key
versionvarchar任务的版本号
project_versionvarchar配置的版本号(懒升级使用)
namespacevarchar命名空间,用来区分子表的
valuelongtext不同实体的具体json配置
create_timelong创建时间
update_timelong更新时间

不同 namespace 值及其含义:

namespaceentity_value 字段存储的内容entity_value json字段内的键名键名的含义
DPFileEntityStore定时任务文件相关配置:任务文件夹id
当前节点id
pid

父节点id

若在根路径下,pid为_DP_ROOT_CATALOG_,用于构建任务和目录树结构

createTime创建时间
creatorId创建用户id    
type节点类型,文件夹为PACKAGE
nextNodeId

下一个兄弟节点Id

4.1.6.5 及之后版本存在该字段

定时任务文件相关配置:任务实体id当前节点id
pid父节点id,若不在根路径下,pid为uuid,用于构建任务和目录树结构
name定时任务名称
createTime创建时间
publishTime

上线时

4.1.6.5 及之后版本存在该字段

describe

4.1.6.5 及之后版本存在该字段

checkState

任务校验状

4.1.6.5 及之后版本存在该字段

publishState

任务上线状

4.1.6.5 及之后版本存在该字段

creatorId创建用户id 
type节点类型,任务实体为ENTIT
nextNodeId

下一个兄弟节点Id

4.1.6.5 及之后版本存在该字段

DPTimeoutRetryStore

超时限制配

失败重试配置

脏数据容忍配置

2.png

值示例:

{

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

 "timeoutConfig": {  //超时限制配置

        "hour": 1,

        "minute": 0,

        "enabled": true  //是否开启:true 为开启,fasle 为未开启

    },

    "retryConfig": {    //失败重试配置

        "max": 3,  //重跑次数

        "delayMinute": 2,  //间隔时间

        "enabled": true //是否开启:true 为开启,fasle 为未开启

    },

    "errorLimitConfig": {   //脏数据容忍配置

        "enable": true, //是否开启:true 为开启,fasle 为未开启

        "limit": 1000  //脏数据阈值

    }

}


DPNoticeStore记录 结果通知 数据

值示例:

{

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

    "notice": {

        "notification": true, //结果通知按钮是否开启        

        "noticeConfig": {   //结果通知

            "notify": true, //任务异常通知、任务失败提醒是否勾选,这两项默认勾选,且无法修改

            "notifyInDetail": true, //具体报错信息是否勾选

            "notifyDirtyData": true, //脏数据通知是否勾选

            "notifyDirtyDataInDetail": true, //脏数据汇总信息是否勾选

            "notifyDDLChangeEvent": true //源表结构变化通知是否勾选

        },

        "userGroup": {  //平台用户组

            "users": [ //用户

                "1(1)"

            ],

            "depts": null, //部门

            "roles": null, //角色

            "roleStr": null //角色的 id,为前端开发逻辑,不涉及业务逻辑

        },

        "noticeChannels": [ //通知渠道

            {

                "type": "sms", //sms:短信;platform:平台;email:邮件;client:客户端

                "toUserGroup": false, //平台用户组

                "smsReceiver": [ //收件人

 

                ],

                "smsNotify": false

            },

        ]

    }

}

DPWorkPriorityStore记录 任务属性 数据

值示例:

    "id": "2f91cf4b-a82b-4641-8b39-db82ed3fc17c",   //任务id

    "taskPriority": 2,  //任务优先级。最低:-2;低:-1;中:0;高:1;最高:2

    "customLogLevel": true, //日志等级是否打开true/false

    "logLevel": "ERROR" //日志级别:包括ERROR、WARN、INFO

}

DPStrategyStore集群调度策略
id任务id
dispatchType集群调度策略
DPBIAttributeStore输出到BI配置{

  "workId": "585fab47-4fa5-4a22-8bc2-899b75a70ede",

  "workName": "任务7",

  "stepNameMap": {

    "fc23a871-0136-40e4-b364-0667b31b5faa": {

      "stepId": "fc23a871-0136-40e4-b364-0667b31b5faa",

      "nodeId": "774323fc-6a23-4a69-ab3d-9bd1cb32d22b",

      "stepName": "writer"

    }

  },

  "nodeNameMap": {

    "774323fc-6a23-4a69-ab3d-9bd1cb32d22b": "数据同步"

  },

  "stepTableMap": {

    "fc23a871-0136-40e4-b364-0667b31b5faa": "gbase_1011_01"

  },

  "id": "585fab47-4fa5-4a22-8bc2-899b75a70ede"

}

BiTableEntityStore输出到BI配置{

  "connName": "gbase",

  "tableName": "fdl.1011_01",

  "type": null,

  "biConnName": null,

  "tableNameInBI": "gbase_1011_01",

  "valid": true,

  "catalogId": "eaa72e612e9b4ab78110744738a809d7",

  "engineType": 1,

  "createUserId": "b5f0c2ee-640f-4039-a4d4-918b55354898",

  "pathInBi": null,

  "nameInBi": "gbase_1011_01",

  "dbTableName": "fdl.1011_01"

}

3. 数据管道编辑

3.1 数据管道 ER 图

表间关系如下所示:

23.png

3.2 fine_dp_pipeline_task

管道任务配置表。

表内存储了多个子表,每个子表通过 namespace 来进行区分。子表的具体内容,存储在 entity_value 字段中。

字段
类型说明
idvarchar主键字段uuid
entity_keyvarchar子表逻辑id,在子表空间内是唯一的
namespacevarchar

命名空间,用来区分entity_value 中的内容

value_classvarchar反序列化的class;已不再使用
entity_valuelongtext子表的具体内容,为json格式。可以理解为正常表一行的内容,现在被压缩为一个字段了,json的key就是表的字段名,value就是字段值
create_timebigint创建时间
update_timebigint修改时间

4.1.8.1 及之后版本说明:

1)新增 namespace 为PipelineGroup、PipelineMapConfig、PipelineTable2Group 的派生表。

2)namespace 为 PipelineSourceTable 的派生表升级为了 PipelineSourceTableV1,并移除了 reSync 字段。

3)namespace 为 PipelineTargetTable 的派生表升级为了 PipelineTargetTableV1,并移除了 sourceTableId 和 mapType 字段。

4)namesapce 为 PipelineTaskV1 的派生表升级为了 PipelineTaskV2 ,并移除了 sourceTypeName 和 targetTypeName 字段

不同 Namespace 的 entity_value 的格式及含义

namespace
entity_value
DPPipelineFileEntityStore(目录树节点)

1712472376988006.png

//文件夹的配置

{

    "id": "048c2506-ddcb-4781-95d2-bcc3daf2c978",  //文件夹id

    "pid": "_PIPELINE_ROOT_CATALOG_",

    "name": "管道测试", //文件夹名称

    "createTime": 1710585997109, //文件夹创建时间

    "type": "PACKAGE" //文件夹

}

//管道任务

{

    "id":"ed392335-442a-4714-a6db-1f9f2dfbbc20",    //管道任务id

    "pid":"048c2506-ddcb-4781-95d2-bcc3daf2c978",  //上层节点id

    "name":"管道任务测试",                            //管道任务名称

    "createTime":1710586066979,                     //创建时间

    "type":"ENTITY"                                 //节点类型

}

PipelineTaskV2(任务实体)

任务文件夹

{

    "id": "ed392335-442a-4714-a6db-1f9f2dfbbc20",     //管道任务id

    "status": "RUNNING",                              //管道任务状态,详见PipelineTaskStatus类

    "syncType": "FULL_AND_INCREMENTAL",                 //同步类型,全量加增量还是仅增量

    "sourceType": "mysql",                            //源端目标端数据连接

    "sourceTypeName": "MySQL",    //4.1.7.3 及之后版本删除该字段

    "sourceConnectionName": "mysqlpf", //来源端数据连接名称

    "targetType": "postgresql",

    "targetTypeName": "PostgreSQL",    //4.1.7.3 及之后版本删除该字段

    "targetConnectionName": "pg", //目标端数据连接名称

    "firstStartTime": 1710586067545,                //初次启动时间

    "createTime": 1710586066923,              //创建时间

    "updateTime": null,

    "workerNodeId": "IN_MEMORY_VIRTUAL_NODE"        //在集群中运行的节点id,单机模式为IN_MEMORY_VIRTUAL_NODE

}

PipelineConfigV1(任务配置)
记录以下页面的信息:

4.png

同步类型选择「仅增量同步」时,可选择增量同步起点:

5.png

6.png

7.png

值示例:

{   //管道配置

    "id": "ed392335-442a-4714-a6db-1f9f2dfbbc20",

    //源端配置,只有选择仅增量时才能选择startPoint

    "sourceConfig": {

        "connectionType": "mysql",

        "connectionName": "mysqlpf", //源端数据连接名称

        "readMode": { //读取方式

            "name": "Binlog",

            "startPoint": "", //增量同步起点

            "format": "",

            "schemaRegistryUrl": ""

        },

        "syncType": "FULL_AND_INCREMENTAL",

        "incrementalSyncPoint": null

    },

    //目标端配置

    "targetConfig": {

        "connectionType": "postgresql",

        "connectionName": "pg", //目标端数据连接名称

        "database": "",

        "schema": "test", //模式

        "sourceChangeStrategy": {

            "sourceDeleteData": "PHYSICAL_DELETE"

        },

        "addUpdateTimestampColumn": false,

        "applyDdl": false,

        "enableHighSpeedLoad": false,

        "enableNoPrimary": false

    },

    "controlConfig": {

        //脏数据阈值

        "errorQueueConfig": {

            "limitNum": 1000

        },

        //通知配置

        "notifyConfig": {

            "notification": false,

            "notifyContent": {

                "taskError": true,

                "syncingSourceTableDeleted": false,

                "notifyInDetail": false,

                "ddl": false

            },

            "userGroup": {

                "users": null,

                "depts": null,

                "roles": null,

                "roleStr": null

            },

            "noticeChannels": []

        },

        //重试配置

        "retry": {

            "max": 3,

            "delayMinute": 2,

            "enabled": true

        },

        //日志配置

        "logConfig": {

            "customLogLevel": false,

            "logLevel": "WARN"

        }

    }

}

PipelineSourceTableV1(源表信息)

PipelineTargetTableV1(目标表信息)


记录以下页面的信息:
8.png

PipelineSourceTableV1(源表信息):

字段名
描述
id表 id
targetTableId对应目标表 id,关联字段 PipelineTargetTable 的 id
database源数据库名
schema源模式名
table源表名
topic实时同步对应的 Kafka topic 名称
fullSyncFinished是否已经完成全量同步
reSync是否重新同步,4.1.7.3及之后版本删除该字段
invalid一般表示是否发生了 ddl 被改名
columns源表字段

PipelineTargetTableV1(目标表信息):

字段名
描述
id目标表 id
sourceTableId对应源表 id,关联字段 PipelineSourceTableV1 的 id,4.1.7.3及之后版本删除该字段
database目标库名
schema目标模式名
table目标表名
toTableMode目标表类型:已存在表还是自动建表
mapType字段映射类型,4.1.7.3及之后版本删除该字段
columns目标表字段
PipelineGroup

分组表

"id": "ed392335-442a-4714-a6db-1f9f2dfbbc20_14f6d8b29044f9094b49932790dd0888",     //分组id

    "name": "test_group",                             //分组名称

    "columns": [{

        "name": "id",

        "type": 12,

        "typeName": "varchar",

        "size": 10,

        "scale": 0,

        "dialectTypeName": "varchar(10)",

        "label": "id",

        "editable": false,

        "nullable": false,

        "logicalPk": false,

        "comment": null,

        "level": 0,

        "sourceColumnName": "id",

        "deleted": false,

        "invalid": false,

        "columnDelete": false,

        "partitioned": false,

        "pk": true

    }, {

        "name": "timecolumn",

        "type": 93,

        "typeName": "timestamp",

        "size": 29,

        "scale": 6,

        "dialectTypeName": "timestamp",

        "label": "timecolumn",

        "editable": false,

        "nullable": true,

        "logicalPk": false,

        "comment": null,

        "level": 0,

        "sourceColumnName": "timecolumn",

        "deleted": false,

        "invalid": false,

        "columnDelete": false,

        "partitioned": false,

        "pk": false

    }, {

        "name": "mysql_update_time",

        "type": -5,

        "typeName": "int8",

        "size": 19,

        "scale": 0,

        "dialectTypeName": "int8",

        "label": "mysql_update_time",

        "editable": false,

        "nullable": true,

        "logicalPk": false,

        "comment": null,

        "level": 0,

        "sourceColumnName": "mysql_update_time",

        "deleted": false,

        "invalid": false,

        "columnDelete": false,

        "partitioned": false,

        "pk": false

    }]

}

PipelineMapConfig

分组表映射:

{

    "id": "ed392335-442a-4714-a6db-1f9f2dfbbc20_2324345354694b49932790dd0888",     //映射id

    "sourceId": "ed392335-442a-4714-a6db-1f9f2dfbbc20_14f6d8b29044f9094b49932790dd0888",                              //来源id

    "targetId": "ed392335-442a-4714-a6db-1f9f2dfbbc20_14f6d8b29044f9094b49932790dd0888", // 目标id

    "columnTypeName": "NAME",   // 字段映射方式

    "tableMapType": "GROUP_TO_TABLE"   // 表映射方式,分组表-普通表(GROUP_TO_TABLE)。普通表-普通表(TABLE_TO_TABLE)

}

PipelineTable2Group

子表和分组表的映射

{

    "id": "ed392335-442a-4714-a6db-1f9f2dfbbc20_fsefe35354694b49932790dwerfw4wef8",     //子表id

    "groupId": "ed392335-442a-4714-a6db-1f9f2dfbbc20_14f6d8b29044f9094b49932790dd0888",   // 分组id

    "columnNameMap": {  // 子表到分组表的字段名称映射

        "id": "id",

        "col1": "col1",

        "col2": "col2"

    }

}

3.3 fine_dp_pipeline_schema

源表结构与断点之间的关系。用来处理 ddl 事件 sql 解析相关逻辑。

字段
类型说明
idvarchar管道任务中源表的id
commit_timebigint记录创建的时间
positionvarchar断点位置
schema_valuelongtext表结构记录
table_charsetvarchar表的编码
table_full_namevarchar表名
task_idvarchar管道任务id

3.4 fine_dp_pipeline_savepoint

管道任务断点记录,用来断点续传。

字段
类型说明
idvarchar

记录ID

create_timebigint记录创建的时间;暂未用到
table_idvarchar源表id
task_idvarchar任务id
typevarchar断点类型
update_timebigint更新时间;暂未用到
valuelongtextJSON 格式,实际断点保存的值,不同类型的断点保存的值不同

3.5 fine_dp_pipeline_execute

管道任务执行记录与统计表

部分是表级的记录(下表中字段名为绿色),任务级别的记录由表级汇总得到。部分是任务级别的(下表中字段名为灰色)。

字段
类型说明
idvarchar任务id或源表id
delete_record_countbigint删除行数(表级)
delete_trafficbigint删除数据量(单位Byte)
error_record_countbigint失败行数
insert_record_countbigint插入行数
insert_trafficbigint插入数据量(单位Byte)
last_log_timebigint上一次任务记录时间
last_read_timebigint上次读取时FDL服务器的时间
last_start_timebigint上一次任务启动时间
last_write_timebigint上次写入时FDL服务器的时间
read_record_countbigint读取行数
read_total_trafficbigint读取数据量(单位Byte)
table_full_namevarchar来源表的完整名称
task_idvarchar任务id
to_sync_record_countbigint待同步行数
to_sync_trafficbigint待同步数据量(单位Byte)
typevarchar记录的类型,是表还是任务
update_record_countbigint更新行数
update_trafficbigint更新数据量(单位Byte)
work_durationbigint任务实际工作时长(若任务中途有中断,则中断时间不会统计在内)
last_massage_read_timebigint上次读取时对应的日志在数据库中的时间
last_massage_write_timebigint上次写入时对应的日志在数据库中的时间

3.6 fine_dp_pipeline_dirty

管道任务中如果捕获到脏数据后,会将脏数据的基本信息存储在这个表中。

4.0.29 及之后版本,表名称(fine_dp_pipeline_dirty):

字段名称
类型说明
idvarchar脏数据id,唯一标识一条脏数据
error_paramsvarchar不再使用
error_typevarchar脏数据的异常类型 enum 的名字
fdl_offsetbigint脏数据在指定topic的offset
primary_keyvarchar

主键信息,一个json字符串。

例子:

{

 "before": "更新前主键",

 "after": "更新后主键"

}

task_idvarchar任务id
task_table_idbigint表id
timestampbigint脏数据捕获时间
fdl_topicvarchar脏数据所在的topic
fdl_codeint该字段用来记录脏数据的一些标志位,长度为32位,也就可以标记32个不同状态
目前从右往左的前三位按序用来标记,插入、删除、更新
其中主键更新的脏数据会被视为删除+插入,对应的code二进制code就是11
error_messagevarchar报错java堆栈异常的errormessage
fdl_extralongtext额外的信息,比如错误堆栈,当前数据对应的断点信息等等,通过json格式进行存储

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 数据服务 ER 图

表间关系如下:

12.png

4.2 fine_dp_service_app

数据服务应用配置表。

字段
类型说明
idvarchar主键字段uuid;无实际作用
appIdvarchar应用id
authInfolongtext

认证信息

示例数据:

{

  "authType": "EmptyAuth",  // 当前生效的认证类型

  "authConfig": [ //认证的具体配置

    {

      "type": "EmptyAuth"   // 无认证

    },

    {

      "code": "AppCode a25787ba-fd6c-4f23-b46a-8b148c2ab1a9",

      "type": "AppCodeAuth"  // APPCode认证

    },

    {

      "secret": "",

      "type": "DigestSignatureAuth"  // 摘要认真

    }

  ],

  "type": "Auth"

}

creatorvarchar创建用户名
descriptionvarchar应用描述
versionvarchar版本

4.3 fine_dp_service_catalog

数据服务的目录表,具体结构和fine_dp_conf_entity_x类似。

字段
类型说明
idvarchar主键字段uuid;无实际作用
entity_keyvarchar版本+任务id作为key,在子表空间内是唯一的
namespacevarchar

命名空

DataServiceAppCatalogDO  // 应用

DataServiceAPICatalogDO  // API

value_classvarcharentity_value序列化对应的实体类
entity_valuelongtextjson格式的配置信息

不同 namespace 对应的明细:

namespace说明

DataServiceAPICatalogDO(API目录)

4.0.27 及之后版本

字段
含义
idapi任务/文件夹的id
pid父文件夹的id
name名称
createTime创建时间
type类型:
  • ENTITY:api任务

  • PACKAGE:文件夹

DataServiceAppCatalogDO(应用目录)
字段
含义
id应用/文件夹的id
pid父文件夹的id
name应用/文件夹的名称
createTime创建时间
type

类型:

  • ENTITY:应用

  • PACKAGE:文件夹

4.4 fine_dp_service_mapping

应用和API的关联表。

字段
类型说明
idvarchar主键字段uuid;无实际作用
apiIdvarcharAPI的ID
appIdvarchar应用ID
expireTimebigint

有效期

  • -1表示无限制

  • 其他值代表对应的时间戳

rateLimitvarchar

访问限制:

字段
含义
limitCount单位时间内允许多少个访问请求
  • -1表示无限制

  • 其他值代表对应的限制个数

timeUnit

时间单位

  • MINUTES:分钟

  • HOURS:小时

  • DAYS:天

示例数据:频率最大100次/分钟

{

  "limitCount": 100,   // 单位时间最大访问次数

  "timeUnit": "HOURS", // 时间单位

  "type": "RateLimit"

}

4.5 fine_dp_service_task

API配置表。

字段
类型说明
idvarchar主键字段uuid;无实际作用
taskIdvarcharAPI的ID
taskTypevarchar冗余字段;目前未实际使用
taskDetaillongtextAPI配置信息
requestPathvarcharapi路径
requestMethodvarchar请求方法:post、get
isOnlinebit是否上线:1-上线,0-下线
isAuthActivebit目前未实际使用
descriptionvarcharAPI描述
timeoutbigint超时时间
versionvarchar版本
requestContentTypevarchar请求体类型

5. 库表管理编辑

5.1 库表管理ER图

1715776025683786.png

5.2 fine_datacenter_sql_script

SQL 脚本管理表:存储用户保存的 SQL 脚本数据。

字段
类型说明
idvarchar主键字段uuid
connectionvarchar所属数据连接
last_loglongtext最近一次日志,内容是日志对象json序列化后的字符串
contentlongtext脚本内容
create_timebigint脚本创建时间戳
namevarchar脚本名称
last_modified_timebigint脚本更新时间戳

5.3 fine_datacenter_updatelog

SQL脚本管理表:存储用户保存的sql脚本数据

字段类型说明
idvarchar主键字段uuid
script_idvarchar这条更新记录对应的脚本id
editorvarchar更新人
modified_timebigint更新时间

6. 公共模块编辑

6.1 公共模块 ER 图

表间关系如下:

1712542944180041.png

6.2 fine_dp_general_config

通用配置 表:定义和存储通用配置(基于数据连接,定义大小写转换规则)。

字段
类型说明
idvarchar主键字段uuid
configlongtext

数据连接名和对应的大小写转换规则,目前 transformation 包含全部转大写(UPPER_CASE)、全部转小写(LOWER_CASE

示例数据:

{"transformation":"UPPER_CASE","connections":["local_fdl_data"]}

create_timebigint配置创建时间
typevarchar通用配置类型,暂时只有AUTO_CREATE_TABLE_CASE
update_timevarchar配置修改时间

6.3 fine_dp_operate_history

最近编辑记录表:包括数据开发、数据管道模块的最近标记记录。

字段
类型说明
idvarchar主键字段uuid
operate_timebigint编辑时间
operate_typevarchar编辑类型,包括创建(CREATE)、删除(DELETE)、修改(EDIT)
operate_uservarchar编辑用户
task_idvarchar任务id
task_namevarchar任务名
task_pathvarchar任务路径
task_typevarchar任务类型,包括数据开发(DATA_DEVELOP)、数据管道(PIPELINE_DEVELOP)