本页内容

增量加载数据

Process Intelligence Process Intelligence 流程智能席位或更高等级可用。只有此方案或更高等级的席位可以使用此功能。 比较方案 需要Process Intelligence席位或更高席位

什么是增量加载数据?

增量数据加载(也称为增量加载)允许您追加新行到现有数据表中,而无需替换原始数据。当事件日志数据随时间增长时,这种方式非常有用。您无需重新上传整个数据集,即可让流程挖掘分析保持最新。

常见场景包括:

  • 每日或每周导出数据:追加新交易、订单或案例数据。
  • 持续监控流程:定期添加最新数据,让仪表板保持最新。
  • 不断增长的事件日志:逐步添加来自ERP系统、CRM工具或其他来源的新事件。
ProcessMind数据集“替换数据”上传区域

info

增量文件必须与原始上传文件具有相同的列结构(列名和顺序)。增量文件中的额外列会被忽略。缺失的列将产生null值。

要求

  • 数据表必须已有包含数据的初始上传文件。
  • 增量文件必须与原始上传文件采用相同格式
    • CSV文件需要使用CSV增量文件
    • Parquet文件需要使用Parquet增量文件
    • ORC文件需要使用ORC增量文件
    • JSONL文件需要使用JSONL增量文件
  • 不支持Excel(XLSX/XLS/XLSB)和XES文件的增量上传,请先将其转换为CSV。
  • 增量文件中的列名应与原始上传文件一致。
  • 增量文件可以使用gzip压缩(.gz),但内部格式必须与原始上传格式一致。

info

有关所有支持的文件格式,请参阅支持的数据格式页面。

上传增量数据

通过API

使用ProcessMind API以编程方式上传增量文件。有关完整的端点详情,请参阅API参考:数据页面。

工作流如下:

  1. 获取增量文件的预签名上传URL:

    GET /v1/tenant/{tenantId}/datatables/{dataTableId}/uploads/presignedurl
        ?delta=true&filename=delta.csv&filesize=1024&filelastmodified=1704067200000
  2. 使用预签名URL上传增量文件

    curl -X PUT --upload-file "delta.csv" \
        -H "Content-Type: text/csv" \
        "{PreSignedUploadUrl}"

上传完成后,ProcessMind会自动处理增量文件,并将其与原始数据合并。您可以轮询GET /datatables/{dataTableId},直到hasDataLoadedtrue,以确认处理完成。

通过界面

您也可以在ProcessMind应用中数据集的常规选项卡中触发增量数据加载:

  1. 追加开关切换,使上传区域从替换数据变为追加数据
  2. 将新文件拖入追加数据区域,或点击该区域浏览并选择文件。

ProcessMind会将文件作为增量文件上传,并与现有数据一起处理。增量上传需要明确指定,普通的替换上传不会被自动识别为增量上传。

查看上传部分

完成一次或多次增量上传后,数据表的上传历史会包含一个uploadParts数组,用于跟踪每个文件:

{
	"uploadHistory": {
		"uploadParts": [
			{
				"key": "datatable/123/2.csv",
				"fileName": "orders-january.csv",
				"fileSize": 524288,
				"uploadedAt": "2024-01-15T10:00:00Z"
			},
			{
				"key": "datatable/123/3.csv",
				"fileName": "orders-february.csv",
				"fileSize": 419430,
				"uploadedAt": "2024-02-15T10:00:00Z"
			}
		]
	}
}

最佳实践

  • 统一列名:所有文件使用一致的列名,避免数据对齐问题。
  • 按时间顺序上传:条件允许时按时间顺序上传,使上传历史反映数据时间线。
  • 合理控制增量文件大小:分批上传适量数据;数量过多的小文件可能会降低处理速度。
  • 监控行数:每次上传增量文件后检查行数,确认数据已正确加载。

warning

增量上传会追加数据,不会更新或替换现有行。如果需要更正之前上传的数据,请重新上传整个数据集。

架构不匹配时的处理方式

ProcessMind不会强制要求各上传部分使用严格一致的架构。这意味着:

  • 额外列会在处理增量文件时被忽略:系统只使用原始上传架构中存在的列。
  • 缺少的列会使增量行中对应字段的值为空或为null。
  • 不同的列名会被视为完全不同的列:增量行中预期列的值将为null。

为获得最佳结果,请确保所有增量文件与原始上传文件具有相同的列结构。

info

对于CSV和JSONL格式,所有值在内部都会按字符串读取,因此不会出现类型不匹配错误。对于Parquet和ORC格式,列数据类型会根据文件架构保留。在所有情况下,如果某列要求数值数据,而您上传了不兼容的值,下游分析或模拟可能会产生意外结果。