导入 Pro

操作:导入记录 Pro标准版+

介绍

导入 Pro 插件在普通导入功能的基础上提供了增强功能。

安装

此插件依赖异步任务管理插件,使用前需先开启异步任务管理插件。

功能增强

20251029172052

  • 支持异步导入操作,独立线程执行,支持大量数据导入。

20251029172129

  • 支持高级导入选项。

使用手册

异步导入

在执行导入之后,导入的流程将在独立的后台线程中执行,无需用户手动配置。在用户界面中,执行导入操作后,右上方会显示当前正在执行的导入任务,并且实时展示任务进度。

index-2024-12-30-09-21-05

导入结束后,可在导入任务中查看导入结果。

关于并发

如果想要限制异步任务并发执行时对系统资源的占用,可以使用下面几个环境变量来控制

  • ASYNC_TASK_MAX_CONCURRENCY

限制异步任务并发执行数量,默认值为3

  • ASYNC_TASK_CONCURRENCY_MODE

指定并发执行限制模式,可选值为 appprocess ,默认为 app

该环境变量值设为 app 时,限制每个子应用最大可并发执行异步任务数为 ASYNC_TASK_MAX_CONCURRENCY 指定值。

该环境变量值设为 process 时,限制进程中所有子应用并发执行任务数之和不能超过 ASYNC_TASK_MAX_CONCURRENCY 指定值。

  • ASYNC_TASK_WORKER_MAX_OLDASYNC_TASK_WORKER_MAX_YOUNG

限制执行异步任务的worker线程可分配的最大老年代堆内存(Mb)和新生代堆内存(Mb)

关于性能

为了评估大规模数据导入的性能表现,我们在不同场景、字段类型及触发配置下进行对比测试(具体在不同服务器、数据库配置下可能会有差异,仅供参考):

数据量字段类型导入配置处理时长
100万条字符串、数字、日期、邮箱、长文本• 触发工作流:否
• 重复标识:无
约1分钟
50万条字符串、数字、日期、邮箱、长文本、多对多• 触发工作流:否
• 重复标识:无
约16分钟
50万条字符串、数字、日期、邮箱、长文本、多对多,多对一• 触发工作流:否
• 重复标识:无
约22分钟
50万条字符串、数字、日期、邮箱、长文本、多对多,多对一• 触发工作流:异步触发通知
• 重复标识:无
约22分钟
50万条字符串、数字、日期、邮箱、长文本、多对多,多对一• 触发工作流:异步触发通知
• 重复标识:更新重复,且有5万重复数据
约3个小时

根据上述性能测试结果以及现有的一些设计,对影响因素有以下说明和建议:

  1. 重复记录处理机制:当选择更新重复记录仅更新重复记录选项时,系统会逐条执行查询和更新操作,这会显著降低导入效率。如果你的 Excel 中存在无用的重复数据,将会进一步显著影响导入速度,建议在导入前对 Excel 中无用的重复数据进行清理(如使用专业工具进行去重),然后再导入系统,这样能避免浪费不必要的时间。

  2. 关系字段处理效率:系统处理关系字段时采用逐条查询关联的实现方式,这在大数据量场景下会成为性能瓶颈。对于简单关系结构(如两表一对多关联),建议采用分步导入策略:先导入主表基础数据,待完成后再建立表间关系。如业务需求必须同时导入关系数据,请参考上表中的性能测试结果合理规划导入时间。

  3. 工作流处理机制:不建议在大规模数据导入场景下启用工作流触发,主要基于以下两方面考虑:

    • 导入任务状态显示为100%,并不会立即结束,系统仍需额外时间处理工作流执行计划的创建。此阶段系统会为每条导入数据生成相应的工作流执行计划,占用导入线程,但不会影响已导入数据的使用。
    • 导入任务完全结束后,大量工作流的并发执行可能导致系统资源紧张,影响整体系统响应速度和用户体验。

以上 3 条影响因素,会考虑后续进一步优化。

导入配置

导入选项-是否触发工作流

20251029172235

在导入时可选择是否触发工作流。如勾选此选项且该数据表绑定了工作流(数据表事件),导入将逐行触发工作流执行。

导入选项-识别重复记录

20251029172421

勾选此选项,选择对应模式,则导入时会识别重复记录,并进行处理。

导入配置中的选项将作为默认值应用,管理员可以控制是否允许上传者修改这些选项(除了触发工作流选项外)。

上传者权限设置

20251029172516

  • 允许上传者修改导入选项

20251029172617

  • 禁用上传者修改导入选项

20251029172655

模式说明
  • 跳过重复记录: 根据“依据字段”的内容查询已有记录,如果记录已存在,就直接跳过这一行;如果不存在,则作为新记录导入。
  • 更新重复记录: 根据“依据字段”的内容查询已有记录,如果记录已存在,就更新这行记录;如果不存在,则作为新记录导入。
  • 仅更新重复记录: 根据“依据字段”的内容查询已有记录,如果记录已存在,就更新这条记录;如果不存在,则跳过。
依据字段

系统根据此字段值识别行是否为重复记录。