数据集更新
当数据库中的数据发生变化时,需要将更新的内容同步到数据集中。
数据库数据变化分类
列类型发生变化
数据库中某一字段的类型发生变化时,在 HENGSHI 系统中需要使用变更后的数据类型,必须更新数据,然后在字段管理中将字段类型手动功修改为变更后的类型。
表中增加行/删除行
数据库中行数据更新时,在 HENGSHI 系统中,依赖该表创建的直连数据集与开启了加速引擎的数据集的表现是不同的:
1.直连数据集:数据库中的行数据更新时,刷新网页,数据集元信息不更新,但是添加行/删除行造成的行数据变化体现在数据集(在数据集中可见新添加的行,已删除行不再显示在数据集中);
2.开启加速引擎的数据集:数据库中的行数据更新时,刷新网页,数据集元信息不更新,行数据也不更新;
执行更新数据后,二者的元信息、数据都更新。
表添加列
数据库中某一表新增了部分字段,要在 HENGSHI 系统中查看新增字段时,必须更新数据,更新后新增的字段不出现在数据管理页中,在字段管理中的“已禁用字段”分组中列出这些字段,由用户自定义是否启用该字段。
表删除列
数据库中删除表中部分字段时,会影响该表在 HENGSHI 系统中的操作,大致分为两种:
1.删除未被引用的列时:在 HENGSHI 系统中依赖该表创建的数据集,只显示表头,更新数据后,数据集正常显示;
2.删除被新添列依赖的列时:在 HENGSHI 系统中依赖该表创建的数据集,需要删除依赖该列的新增列,才能通过更新数据恢复数据集。
数据更新
数据更新主要是更新数据集的元信息。数据更新支持立即更新、更新计划、增量更新、全量更新。
立即更新
点击立即更新,数据集开始更新,此时,更新状态为“正在更新”,更新状态后的时间记录了等待更新的时长,开始更新后,统计更新“已耗费”的时间。
更新计划
设定更新计划后,数据集在设定的时间点同步数据库中表的变化。点击更新计划,在弹出的窗口中列出了执行计划设置项,勾选‘开启执行计划’,按需添加更新计划,包括基本信息、调度信息、告警信息。
- 基本信息:设置执行时重试次数及任务的优先级。任务优先级分高、中、低三个级别。高级别的任务优先处理。
- 调度信息:
- 设置任务的调度时间,可设置多个调度时间。 支持按小时、天、周、月的方式设置执行计划。
- 小时:可设置每小时的第几分钟更新。
- 天:可以设置每天具体的时间点更新。
- 周:可以设置每周的周几的具体时间点更新,可以多选。
- 月:可以设置每月的第几天的具体时间点更新,可以多选。
- 自定义:可以自行设置更新的时间点。
- 设置任务的前置依赖,可设置多个前置依赖任务。
- 设置依赖等待时间。
- 设置任务的调度时间,可设置多个调度时间。 支持按小时、天、周、月的方式设置执行计划。
- 告警信息:开启失败告警,当任务执行失败后,会以邮件形式通知到收件人。
如上图所示,设定每周的周一0:15分更新。点击“确定”,完成更新计划的设定。
更新时间始终显示最近一次完成更新的时间。
根据不同的需求场景,用户也可以选择在更新计划弹窗中关闭更新计划来统筹调整数据的更新。
用户还可以进入系统设置->任务管理->数据集更新->修改计划
来重新定义某个数据集的更新计划,也可以直接在数据集更新列表中直接开启、关闭更新计划。
详见任务管理。
另外,复合数据集数据更新时可以忽略上游依赖触发事件。对很多用户来说复合数据集是高频使用的功能,例如联合数据集,合并数据集,聚合数据集等。将复合数据集导入引擎的时候有时候会遇到一个问题,就是其上游数据集也是导入引擎的状态,且更新比较频繁的情况下,会触发这个复合数据集的更新。有时候我们希望复合数据集有一个自己的更新计划不被上游数据集触发,减少数据同步和写入的压力。
提示
多表联合、数据聚合、数据合并三种数据集的更新:依赖的数据集更新时,触发该数据集完成自动更新。
请注意
数据集更新失败时,更新状态显示为“更新失败”,请点击“立即更新”或者联系管理员。
更新设置
点开更新设置,弹出数据更新方式,用户可以根据需要选择全量更新还是增量更新。全量更新保证了数据准确性,而增量更新注重提升数据更新的效率。
- 更新方式
- 全量更新是指更新数据集全部内容。全量更新准确性高,适用于数据量小、更新频率低的数据集。
- 增量更新是指更新数据集部分内容,用户通过指定增量字段,决定更新哪些数据内容。适用于数据量大、更新频率高的数据集。
- 增量更新仅适用于通过“sql 查询/直连”方式建立的数据集。
- 增量字段建议选择数字、日期、时间字段,方便进行比对,确认哪些数据需要更新。
- 键字段:键字段用来做主键和分布键。键字段有两个功能。
- 增量更新时用来做主键。
- 建表时用来做主键和分布键。 在建表时如果设置建表属性,优先使用建表属性的配置,键字段此时不生效。
- 建表属性:在数据同步表创建过程中自定义分区字段和索引字段,对数据进行分散存储。 建表属性仅在第一次建表时生效。 目前支持建表属性的数据源包括 Greenplum、Apache Doris、StarRocks 和 ClickHouse。
数据分批更新
当更新的数据量比较大时,更新时间可能超过了源数据库的查询时间,导致数据更新失败。此时可以通过配置项 ETL_SRC_MYSQL_PAGE_SIZE 设置一次更新数据的最大上限,当超过该上限时数据进行分批更新。数据分批更新适用增量更新、设置键字段的全量更新场景,目前只有 MySQL 数据源支持数据分批更新。
提示
请联系技术人员配置 ETL_SRC_MYSQL_PAGE_SIZE。
更新管理
数据集更新支持应用更新管理和数据集更新管理。
应用更新管理
应用更新管理是对应用内的数据集统一进行更新管理,设置更新计划。具体步骤如下。
- 在数据集中点击红框中的数据集更新按钮,进入应用更新管理页面。
- 应用更新管理页面显示应用的数据集大小、应用数据集的更新频率、更新时间、更新状态、启用计划、应用更新的数据集个数等信息。
- 点击数据集更新管理页面,在应用更新时更新一栏勾选需要包含在应用整体更新范围内的数据集。
- 返回应用更新管理页面,更新数据集一栏中显示步骤3中勾选的应用整体更新的数据集数量。
- 点击操作的三点菜单,设置更新方式。
- 点击三点菜单的更新记录查看数据集更新历史。
数据集更新管理
数据集更新管理页面显示应用内的单个数据集的更新设置信息。这里可以对数据集进行立即更新、设置更新计划、查看更新记录、查看更新状态、确认下次更新时间,进行更新设置,还可以控制数据集是否与应用一起更新。
数据集加载失败
在数据连接不可用等情况下,会出现数据集加载失败的问题,光标悬在加载失败的提示上可以看到失败原因。