camunda数据库表结构详细说明
本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎的数据库架构和ER模型,Camunda7.19.0共49张表,包括了BPMN流程引擎、DMN规则引擎、CMMN引擎、历史数据、用户身份等方面的表结构定义,以及表与表之间的关联关系。
1、camunda数据库结构综述
Camunda流程引擎的数据库架构由多个表组成。表名称都以ACT开头。第二部分是表的用例的两个字符标识。此用例也将与服务API大致匹配。
- ACT_RE_*:RE代表存储库。带有此前缀的表包含“静态”信息,如流程定义和流程资源(图片、规则等)。
- ACT_RU_*:RU代表运行时间。这些是包含流程实例、用户任务、变量、作业等运行时数据的运行时表。引擎仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表保持小而快。
- ACT_ID_*:ID代表身份。这些表包含用户、组等标识信息。
- ACT_HI_*:HI代表历史。这些表包含历史数据,如过去的流程实例、变量、任务等。
- ACT_GE_*:通用数据,用于各种用例。
流程引擎的主表是流程定义、执行、任务、变量和事件订阅的实体。它们之间的关系如下面的UML模型所示。
流程定义(ACT_RE_PROCDEF)
ACT_RE_PROCDEF表包含所有已部署的流程定义。它包括版本详细信息、资源名称或挂起状态等信息。
流程执行(ACT_RU_EXECUTION)
ACT_RU_EXECUTION表包含所有当前执行。它包括流程定义、父执行、业务键、当前活动和有关执行状态的不同元数据等信息。
待办任务(ACT_RU_TASK)
ACT_RU_TASK表包含所有正在运行的流程实例的所有打开的任务。它包括相应的流程实例、执行以及元数据(如创建时间、受理人或截止日期)等信息。
流程变量(ACT_RU_VARIABLE)
ACT_RU_VARIABLE表包含所有当前设置的流程或任务变量。它包括变量的名称、类型和值,以及有关相应流程实例或任务的信息。
事件订阅(ACT_RU_EVENT_SUBSCR)
ACT_RU_EVENT_SUBSCR表包含所有当前存在的事件预订。它包括预期事件的类型、名称和配置,以及有关相应流程实例和执行的信息。
数据库版本日志(ACT_GE_SCHEMA_LOG)
ACT_GE_SCHEMA_LOG表包含数据库模式版本的历史记录。当对数据库模式进行更改时,会将新条目写入表中。创建数据库时,将添加初始条目。每个更新脚本都会添加一个新条目,其中包含ID、数据库更新到的版本以及更新的日期和时间(时间戳)。
要从模式日志中检索条目,可以使用schemaLogQuery-API:
List<SchemaLogEntry> entries = managementService.createSchemaLogQuery().list();
指标日志(ACT_RU_METER_LOG)
ACT_RU_METER_LOG表包含运行时指标的集合,这些指标有助于得出有关Camunda平台的使用情况、负载和性能的结论。度量以Java长范围中的数字形式报告,并计算特定事件的发生次数。有关如何收集指标的详细信息,请参阅指标用户指南:https://docs.camunda.org/manual/7.19/user-guide/process-engine/metrics/.
运行时指标默认配置。MetricsReporter的默认配置将每15分钟在ACT_RU_METER_LOG中为每个度量创建一行。
任务指标日志(ACT_RU_TASK_METER_LOG)
ACT_RU_TASK_METER_LOG表包含一组与任务相关的指标,这些指标有助于得出有关BPM平台的使用情况、负载和性能的结论。任务度量包含任务代理人的假名和固定长度值及其出现时间。有关如何收集任务指标的详细信息,请参阅指标用户指南.
每次将任务分配给任务接受者时,都会在ACT_RU_TASK_METER_LOG中创建一行。
2、camunda表结构-实体关系图
数据库不是公共API的一部分。数据库架构可能会因次要和主要版本更新而更改。
请注意:以下图表基于MySQL数据库模式,对于其他数据库,关系图可能略有不同。
下面的实体关系图可视化数据库表及其显式外键约束,按BPMN引擎、DMN引擎、CMMN引擎、引擎历史记录和标识分组。请注意,图表不会将表之间的隐式连接可视化。
2.1、BPMN流程引擎
BPMN引擎共20张表,它们的实体定义和表关系如下:
BPMN引擎数据库表说明:
表名称 |
表用途说明 |
ACT_GE_PROPERTY |
流程引擎参数信息表 |
ACT_GE_SCHEMA_LOG |
数据库版本日志表 |
ACT_RE_PROCDEF |
BPMN流程模型定义表 |
ACT_RE_DEPLOYMENT |
BPMN流程模型部署表 |
ACT_RE_CAMFORMDEF |
流程表单定义表 |
ACT_GE_BYTEARRAY |
二进制数据存储表(BPMN模型、表单、脚本、决策表等流程引擎所需的二进制数据) |
ACT_RU_TASK_METER_LOG |
Task任务性能指标日志表 |
ACT_RU_EXECUTION |
流程引擎执行实例表 |
ACT_RU_JOB |
定时器作业运行表 |
ACT_RU_JOBDEF |
定时器作业定义表 |
ACT_RU_VARLABLE |
流程运行时变量表 |
ACT_RU_EXT_TASK |
外部任务待办表 |
ACT_RU_INCIDENT |
运行时异常记录表 |
ACT_RU_AUTHORIZATION |
资源授权权限表 |
ACT_RU_FILTER |
流程查询过滤器定义表 |
ACT_RU_METER_LOG |
流程指标日志记录表 |
ACT_RU_TASK |
待办任务表 |
ACT_RU_EVENT_SUBSCR |
事件订阅表 |
ACT_RU_IDENTITYLINK |
流程处理用户ID关联表 |
ACT_RU_BATCH |
流程批处理信息表 |
2.2、DMN决策引擎
DMN引擎数据库表说明:
表名称 |
表用途说明 |
ACT_RE_DECISION_DEF |
DMN决策定义表 |
ACT_RE_DECISION_REQ_DEF |
DMN决策需求定义表 |
2.3、CMMN案例引擎
CMMN(案例)引擎共5张表,其中待办任务和变量表,复用流程引擎的ACT_RU_TASK和ACT_RU_VARLABLE表。
CMMN(案例)引擎数据库表说明:
表名称 |
表用途说明 |
ACT_RE_CASE_DEF |
CMMN模型定义表 |
ACT_RU_CASE_EXECUTION |
CMMN实例执行信息表 |
ACT_RU_CASE_SENTRY_PART |
CMMN案例实例中的哨兵条件配置和评估结果信息表 |
ACT_RU_TASK |
待办任务表,跟BPMN引擎复用一张表 |
ACT_RU_VARLABLE |
流程运行时变量表,跟BPMN引擎复用一张表 |
2.4、实例历史记录表
camunda流程实例历史记录表共18张表,为了允许不同的配置并使表更加灵活,历史表不包含外键约束。
流程实例历史记录数据库表说明:
表名称 |
表用途说明 |
ACT_HI_PROCINST |
流程实例的历史记录表 |
ACT_HI_ACTINST |
活动实例的历史记录表 |
ACT_HI_ATTACHMENT |
流程附件的历史记录表 |
ACT_HI_BATCH |
批处理的历史记录表 |
ACT_HI_COMMENT |
流程审批意见的历史记录表 |
ACT_HI_DETAIL |
流程变量详情的历史记录表 |
ACT_HI_EXT_TASK_LOG |
外部任务执行日志的历史记录表 |
ACT_HI_IDENTITYLINK |
待办处理用户关系的历史记录表 |
ACT_HI_INCIDENT |
流程异常事件的历史记录表 |
ACT_HI_JOB_log |
定时作业的历史记录表 |
ACT_HI_OP_log |
操作日志的历史记录表 |
ACT_HI_TASKINST |
流程待办任务的历史记录表 |
ACT_HI_VARINST |
流程变量的历史记录表 |
ACT_HI_DECINST |
DMN决策实例的历史记录表 |
ACT_HI_DEC_IN |
DMN决策变量输入的历史记录表 |
ACT_HI_DEC_OUT |
DMN决策变量输出的历史记录表 |
ACT_HI_CASEINST |
CMMN实例的历史记录表 |
ACT_HI_CASEACTINST |
CMMN活动实例的历史记录表 |
2.5、组织用户身份表
用户身份数据库表说明:
表名称 |
表用途说明 |
ACT_ID_USER |
用户信息表 |
ACT_ID_GROUP |
群组信息表 |
ACT_ID_MEMBERSHIP |
用户群组关系表 |
ACT_ID_INFO |
用户扩展信息表 |
ACT_ID_TENANT |
租户信息表 |
ACT_ID_TENANT_MEMBER |
租户成员表 |
更详细数据库表结构说明:https://blog.csdn.net/wxz258/article/details/109048818
在线体验工作流引擎功能:http://www.yunchengxc.com