本文基于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模型所示。

camunda7数据库schame和表结构介绍-LMLPHP

流程定义(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张表,它们的实体定义和表关系如下:

camunda7数据库schame和表结构介绍-LMLPHP

BPMN引擎数据库表说明:

2.2、DMN决策引擎

camunda7数据库schame和表结构介绍-LMLPHP

DMN引擎数据库表说明:

2.3、CMMN案例引擎

CMMN(案例)引擎共5张表,其中待办任务和变量表,复用流程引擎的ACT_RU_TASK和ACT_RU_VARLABLE表。

camunda7数据库schame和表结构介绍-LMLPHP

CMMN(案例)引擎数据库表说明:

2.4、实例历史记录表

camunda流程实例历史记录表共18张表,为了允许不同的配置并使表更加灵活,历史表不包含外键约束。

camunda7数据库schame和表结构介绍-LMLPHP

流程实例历史记录数据库表说明:

2.5、组织用户身份表

camunda7数据库schame和表结构介绍-LMLPHP

用户身份数据库表说明:

更详细数据库表结构说明:https://blog.csdn.net/wxz258/article/details/109048818

在线体验工作流引擎功能:http://www.yunchengxc.com

03-04 09:55