《一种通用的元数据校验及导出方法.pdf》由会员分享,可在线阅读,更多相关《一种通用的元数据校验及导出方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103617168 A (43)申请公布日 2014.03.05 CN 103617168 A (21)申请号 201310500801.X (22)申请日 2013.10.22 G06F 17/30(2006.01) (71)申请人 芜湖大学科技园发展有限公司 地址 241002 安徽省芜湖市弋江区高新技术 开发区长江南路 83 号 (72)发明人 黄少伟 陈颖 胡平 汪国武 (74)专利代理机构 安徽合肥华信知识产权代理 有限公司 34112 代理人 余成俊 (54) 发明名称 一种通用的元数据校验及导出方法 (57) 摘要 本发明公开一种通用的元数据校验及导出 。
2、方法, 程序构建即插即用式的通用的元数据导出 模块, 可热插拔到分散自律电力数据管理平台 中。模块支持将电力数据管理平台中任意以三层 HashMap 形式存放的元数据以自定义的方式导出 到关系型数据库中, 本发明将位于 Felix 容器 (内 存) 中的元数据持久存储到关系型海量数据库中, 使得元数据具备历史可回溯特征, 同时也有效降 低了下游各数据查询和分析子系统方便灵活地获 取实时或历史元数据的难度。 (51)Int.Cl. 权利要求书 2 页 说明书 5 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图1页 (10)申请公布号。
3、 CN 103617168 A CN 103617168 A 1/2 页 2 1. 一种通用的元数据校验及导出方法, 其特征在于 : 程序构建即插即用式的通用的元 数据导出模块, 所述元数据导出模块逻辑结构如下 : 导出配置的定义, 编辑元数据导出所必要的配置信息, 配置信息保存在 UI 或配置文件 中 ; 导出配置的校验, 检查 UI 或配置文件中的导出配置信息是否与实际元数据一致 ; 已有数据库的校验, 选择导出到已存在的数据库时, 检查元数据以及导出配置是否与 已有数据库的结构一致 ; 元数据快照的持久存储, 将内存中以三层 HashMap 形式存放的元数据序列化为本地文 件 ; 手动运。
4、行方式, 用户通过操作模块提供的 UI 来自定义和校验导出配置信息并执行导 出 ; 自动运行方式, 实现自律分散的即插即用电力数据管理平台中输出层定义的接口, 并 通过手动运行方式下得到的含有导出配置信息的配置文件完成元数据的校验和导出逻辑。 2. 根据权利要求 1 所述的一种通用的元数据校验及导出方法, 其特征在于 : 所述导出 配置的定义包括时标定义、 Tag/Key 定义, 导出配置的定义过程如下 : 步骤 1 : 手动方式启动模块, 选择要导出的元数据 ; 步骤 2 : 对于元数据中的每个 Tag, 选择或编辑是否导出该 Tag、 该 Tag 对应数据库表的 名称、 导出该 Tag 下。
5、的哪些 Key、 每个 Key 对应的数据库字段名称和类型、 是否含有时标、 时 标对应的 Tag/Key。 3. 根据权利要求 1 所述的一种通用的元数据校验及导出方法, 其特征在于 : 所述导出 配置的校验包括元数据校验、 时标校验、 已存在数据库校验, 导出配置的校验过程如下 : 步骤 1 : 检查要导出的元数据是否不包含任何 Tag ; 步骤 2 : 检查配置文件是否不包含任何 Tag ; 步骤 3 : 检查配置文件是否包含了名称为空的 Tag ; 步骤 4 : 检查配置文件指定的要导出的元数据的一个或多个 Tag 是否未出现在配置文 件中 ; 步骤 5 : 检查配置文件是否缺少要导出。
6、的元数据是否含有时间标记的信息或该信息是 否非法 ; 步骤 6 : 检查配置文件是否缺少时间标记对应的 Tag/Key 名称, 或该 Tag/Key 是否存在 于元数据中 ; 步骤 7 : 检查配置文件是否缺少时标对应的日期和时间格式 ; 步骤 8 : 检查配置文件是否未指定是否导出某个 Tag/Key 的信息或该信息非法 ; 步骤 9 : 检查配置文件是否未指定某个 Tag 对应的表名或表名非法 ; 步骤 10 : 检查配置文件是否未指定某个 Key 对应的字段名或字段名非法 ; 步骤 11 : 检查配置文件是否未指定某个 Key 对应的字段类型或字段类型非法 ; 步骤 12 : 检查配置文。
7、件中是否存在多个 Tag 对应的表名相同的情况 ; 步骤 13 : 检查配置文件中是否存在某一 Tag 下的多个 Key 对应的字段名相同的情况 ; 步骤 14 : 检查配置文件中是否存在所有 Tag 都指定为不导出或某一 Tag 下的所有 Key 都指定为不导出的情况。 权 利 要 求 书 CN 103617168 A 2 2/2 页 3 4. 根据权利要求 1 所述的一种通用的元数据校验及导出方法, 其特征在于 : 所述已有 数据库的校验基于要导出的元数据, 对已有数据库的表、 字段及字段类型进行检查, 已有数 据库的校验过程如下 : 步骤 1 : 检查导出配置中指定的已有库是否存在 ; 。
8、步骤 2 : 检查导出配置中是否存在 “以历史方式向由第三方系统创建的数据库进行导 出” 的情况 ; 步骤 3 : 检查配置文件指定的表名在指定的已有库中是否存在 ; 步骤 4 : 检查配置文件指定的字段名在指定的已有库中是否存在 ; 步骤 5 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的类型一 致 ; 步骤 6 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的类型一 致。 5. 根据权利要求 1 所述的一种通用的元数据校验及导出方法, 其特征在于 : 将任意以 三层 HashMap 形式存放的元数据在某一时刻的快照以对象序列化的方式持久保存于本地 文件, 并在。
9、需要时对其反序列化以得到元数据的快照。 6. 根据权利要求 1 所述的一种通用的元数据校验及导出方法, 其特征在于 : 自律分散 的即插即用数据平台可以通过手动运行方式下得到的含有导出配置信息的配置文件, 自动 完成元数据的校验和导出逻辑, 过程如下 : 步骤 1 : 以手动方式运行本模块 ; 步骤 2 : 用户操作模块的 UI, 选择和编辑导出配置信息, 并将配置信息保存为配置文 件 ; 步骤 3 : 启动自律分散的即插即用数据平台, 并以可视化拖曳的方式在数据平台的输 出层创建本模块的实例 ; 步骤 4 : 为实例指定配置文件, 并启动实例, 此后数据平台将通过输出层接口定义的回 调方法触。
10、发元数据的校验和导出逻辑。 权 利 要 求 书 CN 103617168 A 3 1/5 页 4 一种通用的元数据校验及导出方法 技术领域 0001 本发明涉及电力系统数据处理方法领域, 具体为一种通用的元数据校验及导出方 法。 背景技术 0002 自律分散的即插即用数据平台采用以三层 HashMap 形式表示的元数据作为统一 结构来存储各种格式的电力数据。元数据虽解决了异构数据归一化的问题, 但受限于内存 容量等因素, 其无法满足生产环境下对海量历史数据进行查询和分析的需求。 0003 目前众多的电力应用大多采用关系型数据库来存储海量历史生产数据, 但它们各 自基于的数据标准和格式往往不同,。
11、 从而导致了数据库表结构的不同。 因此, 现有电力系统 在不修改代码的前提下, 几乎不可能复用其他系统的生产数据, 从而增加了下游各数据查 询和分析子系统的开发难度和成本。 发明内容 0004 为了克服上述现有技术的不足, 本发明的目的是提供一种通用的元数据校验及导 出方法。 0005 为了达到上述目的, 本发明所采用的技术方案为 : 一种通用的元数据校验及导出方法, 其特征在于 : 程序构建即插即用式的通用的元数 据导出模块, 所述元数据导出模块逻辑结构如下 : 导出配置的定义, 编辑元数据导出所必要的配置信息, 配置信息保存在 UI 或配置文件 中 ; 导出配置的校验, 检查 UI 或配置。
12、文件中的导出配置信息是否与实际元数据一致 ; 已有数据库的校验, 选择导出到已存在的数据库时, 检查元数据以及导出配置是否与 已有数据库的结构一致 ; 元数据快照的持久存储, 将内存中以三层 HashMap 形式存放的元数据序列化为本地文 件 ; 手动运行方式, 用户通过操作模块提供的 UI 来自定义和校验导出配置信息并执行导 出 ; 自动运行方式, 实现自律分散的即插即用电力数据管理平台中输出层定义的接口, 并 通过手动运行方式下得到的含有导出配置信息的配置文件完成元数据的校验和导出逻辑。 0006 所述的一种通用的元数据校验及导出方法, 其特征在于 : 所述导出配置的定义包 括时标定义、 。
13、Tag/Key 定义, 导出配置的定义过程如下 : 步骤 1 : 手动方式启动模块, 选择要导出的元数据 ; 步骤 2 : 对于元数据中的每个 Tag, 选择或编辑是否导出该 Tag、 该 Tag 对应数据库表的 名称、 导出该 Tag 下的哪些 Key、 每个 Key 对应的数据库字段名称和类型、 是否含有时标、 时 标对应的 Tag/Key。 说 明 书 CN 103617168 A 4 2/5 页 5 0007 所述的一种通用的元数据校验及导出方法, 其特征在于 : 所述导出配置的校验包 括元数据校验、 时标校验、 已存在数据库校验, 导出配置的校验过程如下 : 步骤 1 : 检查要导出。
14、的元数据是否不包含任何 Tag ; 步骤 2 : 检查配置文件是否不包含任何 Tag ; 步骤 3 : 检查配置文件是否包含了名称为空的 Tag ; 步骤 4 : 检查配置文件指定的要导出的元数据的一个或多个 Tag 是否未出现在配置文 件中 ; 步骤 5 : 检查配置文件是否缺少要导出的元数据是否含有时间标记的信息或该信息是 否非法 ; 步骤 6 : 检查配置文件是否缺少时间标记对应的 Tag/Key 名称, 或该 Tag/Key 是否存在 于元数据中 ; 步骤 7 : 检查配置文件是否缺少时标对应的日期和时间格式 ; 步骤 8 : 检查配置文件是否未指定是否导出某个 Tag/Key 的信息。
15、或该信息非法 ; 步骤 9 : 检查配置文件是否未指定某个 Tag 对应的表名或表名非法 ; 步骤 10 : 检查配置文件是否未指定某个 Key 对应的字段名或字段名非法 ; 步骤 11 : 检查配置文件是否未指定某个 Key 对应的字段类型或字段类型非法 ; 步骤 12 : 检查配置文件中是否存在多个 Tag 对应的表名相同的情况 ; 步骤 13 : 检查配置文件中是否存在某一 Tag 下的多个 Key 对应的字段名相同的情况 ; 步骤 14 : 检查配置文件中是否存在所有 Tag 都指定为不导出或某一 Tag 下的所有 Key 都指定为不导出的情况。 0008 所述的一种通用的元数据校验及。
16、导出方法, 其特征在于 : 所述已有数据库的校验 基于要导出的元数据, 对已有数据库的表、 字段及字段类型进行检查, 已有数据库的校验过 程如下 : 步骤 1 : 检查导出配置中指定的已有库是否存在 ; 步骤 2 : 检查导出配置中是否存在 “以历史方式向由第三方系统创建的数据库进行导 出” 的情况 ; 步骤 3 : 检查配置文件指定的表名在指定的已有库中是否存在 ; 步骤 4 : 检查配置文件指定的字段名在指定的已有库中是否存在 ; 步骤 5 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的类型一 致 ; 步骤 6 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的。
17、类型一 致。 0009 所述的一种通用的元数据校验及导出方法, 其特征在于 : 将任意以三层 HashMap 形式存放的元数据在某一时刻的快照以对象序列化的方式持久保存于本地文件, 并在需要 时对其反序列化以得到元数据的快照。 所述的一种通用的元数据校验及导出方法, 其特征在于 : 自律分散的即插即用数据平 台可以通过手动运行方式下得到的含有导出配置信息的配置文件, 自动完成元数据的校验 和导出逻辑, 过程如下 : 步骤 1 : 以手动方式运行本模块 ; 说 明 书 CN 103617168 A 5 3/5 页 6 步骤 2 : 用户操作模块的 UI, 选择和编辑导出配置信息, 并将配置信息保。
18、存为配置文 件 ; 步骤 3 : 启动自律分散的即插即用数据平台, 并以可视化拖曳的方式在数据平台的输 出层创建本模块的实例 ; 步骤 4 : 为实例指定配置文件, 并启动实例, 此后数据平台将通过输出层接口定义的回 调方法触发元数据的校验和导出逻辑。 0010 本发明将自律分散的即插即用数据平台中的元数据以可定义的方式持久存储到 关系型数据库中, 使得元数据具备历史可回溯特征, 同时也有效降低了下游各数据查询和 分析子系统方便灵活地获取实时或历史元数据的难度。 0011 本发明与现有的技术相比, 具有如下优点 : (1) , 模块即插即用, 可定义程度高。模块以 OSGi 的 Bundle 。
19、形式热插拔到数据管理平 台中, 所有可配置部分均存放在独立的配置文件中或通过数据管理平台的 UI 指定。 0012 (2) , 代码清晰分层, 可扩展性高。模块被划分为 Model、 Dao、 Biz 及 UI 等逻辑层, 层间单向依赖, 对电网应用的快速需求变更具有很好的适应性。 0013 (3) , 同时支持 MySQL 和 Oracle 数据库, 多个模块的并发写出效率较高。其中, MySQL用于模块的快速部署、 测试及演示 ; Oracle用于实际的生产环境。 以历史方式导出元 数据时, 自动按时标建立表索引, 保证海量数据的查询效率。 0014 (4) , 完善的校验逻辑和详细的提示。
20、信息。无论是手动还是自动运行方式, 模块均 提供了各种可能出现的无意或恶意的导出配置的校验逻辑以及详细的错误提示信息。 附图说明 0015 图 1 为本发明功能及逻辑划分图。 0016 图 2 为本发明手动运行方式下导出配置信息的保存流程图。 0017 图 3 为本发明元数据导出到数据库的流程图。 具体实施方式 0018 一种通用的元数据校验及导出方法, 程序构建即插即用式的通用的元数据导出模 块, 元数据导出模块逻辑结构如下 : 导出配置的定义, 编辑元数据导出所必要的配置信息, 配置信息保存在 UI 或配置文件 中 ; 导出配置的校验, 检查 UI 或配置文件中的导出配置信息是否与实际元数。
21、据一致 ; 已有数据库的校验, 选择导出到已存在的数据库时, 检查元数据以及导出配置是否与 已有数据库的结构一致 ; 元数据快照的持久存储, 将内存中以三层 HashMap 形式存放的元数据序列化为本地文 件 ; 手动运行方式, 用户通过操作模块提供的 UI 来自定义和校验导出配置信息并执行导 出 ; 自动运行方式, 实现自律分散的即插即用电力数据管理平台中输出层定义的接口, 并 通过手动运行方式下得到的含有导出配置信息的配置文件完成元数据的校验和导出逻辑。 说 明 书 CN 103617168 A 6 4/5 页 7 0019 导出配置的定义包括时标定义、 Tag/Key 定义, 导出配置的。
22、定义过程如下 : 步骤 1 : 手动方式启动模块, 选择要导出的元数据 ; 步骤 2 : 对于元数据中的每个 Tag, 选择或编辑是否导出该 Tag、 该 Tag 对应数据库表的 名称、 导出该 Tag 下的哪些 Key、 每个 Key 对应的数据库字段名称和类型、 是否含有时标、 时 标对应的 Tag/Key。 0020 导出配置的校验包括元数据校验、 时标校验、 已存在数据库校验, 导出配置的校验 过程如下 : 步骤 1 : 检查要导出的元数据是否不包含任何 Tag ; 步骤 2 : 检查配置文件是否不包含任何 Tag ; 步骤 3 : 检查配置文件是否包含了名称为空的 Tag ; 步骤 。
23、4 : 检查配置文件指定的要导出的元数据的一个或多个 Tag 是否未出现在配置文 件中 ; 步骤 5 : 检查配置文件是否缺少要导出的元数据是否含有时间标记的信息或该信息是 否非法 ; 步骤 6 : 检查配置文件是否缺少时间标记对应的 Tag/Key 名称, 或该 Tag/Key 是否存在 于元数据中 ; 步骤 7 : 检查配置文件是否缺少时标对应的日期和时间格式 ; 步骤 8 : 检查配置文件是否未指定是否导出某个 Tag/Key 的信息或该信息非法 ; 步骤 9 : 检查配置文件是否未指定某个 Tag 对应的表名或表名非法 ; 步骤 10 : 检查配置文件是否未指定某个 Key 对应的字段。
24、名或字段名非法 ; 步骤 11 : 检查配置文件是否未指定某个 Key 对应的字段类型或字段类型非法 ; 步骤 12 : 检查配置文件中是否存在多个 Tag 对应的表名相同的情况 ; 步骤 13 : 检查配置文件中是否存在某一 Tag 下的多个 Key 对应的字段名相同的情况 ; 步骤 14 : 检查配置文件中是否存在所有 Tag 都指定为不导出或某一 Tag 下的所有 Key 都指定为不导出的情况。 0021 已有数据库的校验基于要导出的元数据, 对已有数据库的表、 字段及字段类型进 行检查, 已有数据库的校验过程如下 : 步骤 1 : 检查导出配置中指定的已有库是否存在 ; 步骤 2 : 。
25、检查导出配置中是否存在 “以历史方式向由第三方系统创建的数据库进行导 出” 的情况 ; 步骤 3 : 检查配置文件指定的表名在指定的已有库中是否存在 ; 步骤 4 : 检查配置文件指定的字段名在指定的已有库中是否存在 ; 步骤 5 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的类型一 致 ; 步骤 6 : 检查配置文件指定的字段类型是否与指定的已有库中的相应字段的类型一 致。 0022 将任意以三层 HashMap 形式存放的元数据在某一时刻的快照以对象序列化的方 式持久保存于本地文件, 并在需要时对其反序列化以得到元数据的快照。 自律分散的即插即用数据平台可以通过手动运行方式。
26、下得到的含有导出配置信息的 说 明 书 CN 103617168 A 7 5/5 页 8 配置文件, 自动完成元数据的校验和导出逻辑, 过程如下 : 步骤 1 : 以手动方式运行本模块 ; 步骤 2 : 用户操作模块的 UI, 选择和编辑导出配置信息, 并将配置信息保存为配置文 件 ; 步骤 3 : 启动自律分散的即插即用数据平台, 并以可视化拖曳的方式在数据平台的输 出层创建本模块的实例 ; 步骤 4 : 为实例指定配置文件, 并启动实例, 此后数据平台将通过输出层接口定义的回 调方法触发元数据的校验和导出逻辑。 0023 如图 1 所示, 本发明通过程序构建通用的元数据导出模块, 可即插即。
27、用到分散自 律电力数据管理平台中。模块支持以手动操作 UI 和自动通过电力数据管理平台的输出层 接口回调 2 种工作方式完成导出配置的编辑、 校验、 保存、 载入以及元数据的持久存储。 0024 实施例 1, 手动方式下导出配置信息的保存。 0025 手动运行方式下, 用户可以将在 UI 中编辑的各种导出配置信息保存为配置文件 以供在数据平台中以自动方式对元数据进行校验和导出, 具体流程如图 2 所示。用户从数 据平台中选取要导出的元数据, 模块将动态生成 UI 以便用户选择和编辑与时标、 Tag/Key、 表 / 字段有关的导出配置信息, 并可在编辑完毕后将所有导出配置信息保存为属性文件。 。
28、0026 实施例 2, 将元数据导出到关系型数据库。 0027 从数据平台获取到元数据之后, 应根据之前保存的配置文件以及元数据中 Tag 和 Key 的映射关系, 动态创建数据库及各表的结构, 并将元数据导出到相应表中, 具体流程如 图 3 所示。 0028 图 3 包含了几个额外的流程。在首次执行导出时, 应创建 Root 库以记录导出历史 供下游模块查询 ; 检查 1 是指对手动方式的 UI 或自动方式指定的配置文件执行的校验逻 辑 ; 检查 2 是指当导出到已存在的特别是第三方应用系统创建的数据库时需要执行的校验 逻辑 ; 检查 3 是指对配置文件中各 Tag/ 表、 Key/ 字段的映射关系进行的校验逻辑。 说 明 书 CN 103617168 A 8 1/1 页 9 图 1 图 2 图 3 说 明 书 附 图 CN 103617168 A 9 。