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