一、自动更新的意义
自动更新使数据保持良好的现势性,具有良好现势性的数据可以准确反映最新情况,为领导者决策分析判断提供有力保障。
一年一度的国土变更调查就是国家为了及时全面查清我国土地利用状况,掌握详实准确的土地基础数据现势情况,为提高土地资源的信息化管理和社会化运用,国民经济平稳健康发展以及国土资源的合理开发和可持续利用提供保障。
同样,在环境监测、大气污染、天气预报、交通导航和疫情防控等方方面面,具有良好现势性的数据都很重要。
二、更新控制因子
1、什么是更新控制因子
更新控制因子是数据现势性的判断者,是为了区分数据的现势性情况,避免数据出现重复或者遗漏而确定的一个临界值,是随着更新变化的一个值。我们把控制因子分为“时间控制因子”和“主键控制因子”两种。
“时间控制因子”就是通过数据记录的时间来判断数据的现势性。很简单,在“时间控制因子”之前时间的数据为旧数据,不需要更新;在“时间控制因子”之后时间的数据为新数据,是需要更新的数据。
“主键控制因子”是通过自增的主键来判断数据的现势性。主键的值大于“主键控制因子”即为新数据;自然,主键的值小于“主键控制因子”为旧数据。
2、“时间控制因子”与“主键控制因子”的区别
“时间控制因子”可以清楚判断数据的时效,但记录时间的精度有限,一般记录的时间精确到“秒”,有时甚至是“小时”或者“天”,这样数据记录的时间必然会有重复情况。倘若某一次更新在重复时间处中断,那么数据会出现更新遗漏。
“主键控制因子”因为是自增主键的缘故,很好的避免了“时间控制因子”更新遗漏情况,但是它不能反映数据的时效。
三、控制因子索引建立
1、为什么建立索引
建立索引可以大大加快数据的检索速度,显著减少查询时间,提高系统性能,方便快速查询到新的数据。
2、如何建立索引
在已有数据的情况下,通过添加的方式建立索引。不同数据库索引建立方式不尽相同,以MySQL数据库为例。
使用如下代码添加索引:
ALTER TABLE `cdmz`.`表名` ADD INDEX `主键字段`(`主键名`) USING BTREE;
当然索引比较少时,可以手动添加;但如果要添加的索引比较多时FME就登场了,利用“AttributeCreator”、“SQLExecutor”等转换器可以实现自动化建立索引。
表 1索引字段表
FME搭建的模板会根据“索引字段表”自动生成代码并运行添加索引。
图 1添加索引模板
图 2模板自动生成的代码
四、FME Desktop更新模板搭建
1、控制因子记录表建立
建立控制因子记录是为了方便获取增量数据时进行调用,虽然我们已经建立了索引,但每次获取增量数据时同时可以获得控制因子,记录下控制因子可以节省查询时间,何乐而不为呢。
表 2控制因子记录表
2、数据标准建立
同类数据来源不同,数据标准往往也不尽相同,为方便统一使用各方数据,需要结合各方数据情况融合整理一套统一的数据标准。
例如根据某省各市大气监测小时数据,整理如下数据标准。
表 3数据标准
3、确定多源数据映射关系
建立数据标准后,需要根据各市源数据标准确定源数据与标准数据映射关系。
整理如下映射关系:
表 4字段映射关系表
4、搭建更新模板
做好准备工作我们按如下思路搭建更新模板:
- 获取增量数据——根据更新控制因子查询出各市增量数据;
- 字段映射修改——根据字段映射关系表修改各市源字段到标准字段;
- 标准结构写入——根据数据标准给数据写入标准结构;
- 属性清洗改造——根据确定的属性填写规范清洗改造数据;
- 目标数据输出——将数据写入目标数据库;
- 控制因子更新——从改造后的增量数据获取新的控制因子并更新到控制因子记录表。
最终搭建更新模板如下图:
图 3更新模板
五、FME Server自动更新
1、确定更新开始时间及频率
完成更新模板的搭建后,利用FME Server可以实现模板的自动运行,在此之前应先确定各数据源的更新频率及模板第一次运行的开始时间,以便在源数据更新后及时准确的更新增量数据。
2、配置自动更新任务
确定更新开始时间及频率后即可在FME Server配置自动更新任务。任务配置分为计划任务配置和任务模板配置。
计划任务配置:主要配置任务的名称、分类、描述、计划类型、计划的频率、起止时间等参数。
图 4FME Server计划任务配置
任务模板配置:主要配置计划任务的模板以及模板运行所需要的参数。
图 5FME Server任务模板配置
3、自动更新任务成果
计划任务配置完成后,FME Server就会按照既定配置自动更新数据。
图 6大气监测小时数据更新成果