[发明专利]SQL脚本元数据的更新方法、装置及系统无效
申请号: | 201010239660.7 | 申请日: | 2010-07-28 |
公开(公告)号: | CN102339298A | 公开(公告)日: | 2012-02-01 |
发明(设计)人: | 何鸿凌;陈仲亮;魏春辉;李政;陶涛;林旭;薛勇 | 申请(专利权)人: | 中国移动通信集团公司;广州石竹计算机软件有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中誉威圣知识产权代理有限公司 11279 | 代理人: | 丛芳;彭晓玲 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 脚本 数据 更新 方法 装置 系统 | ||
技术领域
本发明涉及元数据管理领域,具体涉及一种SQL脚本元数据的更新方法、装置及系统。
背景技术
数据仓库领域的元数据管理需要确保元数据的及时更新,以反映数据仓库系统的最新情况。当抽取、转换、装载ETL(Extract,transform,load,简称ETL)和数据处理过程的程序块发生修改后,就需要更新该程序块相应的SQL脚本元数据。元数据更新过程可划分为两个环节:首先是一个自动解析的过程,解析该程序块中包含的SQL脚本,获取其数据流语义并转换为元数据;然后是一个元数据入库的过程,将所生成的元数据按一定的规则写入元数据存储库。
第一个环节的自动解析过程通过三个步骤来完成,步骤一:直接从ETL和数据处理过程的程序代码中提取、从数据库日志中提取或者从ETL和数据处理过程的运行日志中提取ETL和数据处理过程的SQL脚本;步骤二:利用编译技术对这些SQL脚本进行词法、语法和语义分析,生成抽象语法树,以此作为语义分析的基础;步骤三:对SQL脚本的抽象语法树进行语义分析,获取其数据流语义信息并转换成元数据。第二个环节是SQL脚本元数据入库过程,每个元数据对象入库时,需要根据对象命名对元数据存储库中的对象进行匹配;如果找不到相同命名的对象,则认为这是一个新增的对象,将其添加到元数据存储库中;如果找到相同命名的对象,则认为这是同一个对象,这时需要考虑采用积极策略还是保守策略来处理,其中,积极策略是以新生成的对象的所有属性值覆盖元数据存储库中的老对象的属性值,以新对象的关联关系替换老对象的关联关系,保守策略则不改动老对象的属性值和关联关系,只填写老对象的空属性值并追加关联关系。
当新增程序块第一次运行时,元数据存储库中并没有该程序块的SQL脚本元数据。该程序块所输出的SQL脚本经过解析处理后生成元数据,并添加到元数据存储库中。当这些程序块重复运行时,如果继续解析处理程序块运行所输出的SQL脚本,则获取的元数据在入库处理时就存在如何与存储库中已存在的元数据合并的问题。由于SQL脚本的元数据对象并没有确定的命名方式可以对其进行唯一标识,利用对象命名与存储库中已存在的对象进行匹配是很不可靠的,不能据此找到同一个SQL脚本元数据对象,导致更新效率不高。如果程序块发生修改,修改后的程序块需要进行元数据更新,这些元数据入库时同样遇到如何与元数据存储库中已有元数据合并的问题。此外,如果程序块存在多条运行路径,当次运行就只能输出了其中一条运行路径的SQL脚本,使得解析这些SQL脚本所生成的元数据并不能完整描述整个程序块中的SQL脚本数据流语义。
现有SQL脚本元数据更新方案存在如下不足:
(1)在元数据入库时,以对象命名进行匹配,进而决定元数据是否入库,难以确保当ETL和数据处理过程程序块重复运行或者发生修改时元数据更新的质量,更新效率不高;
(2)当次运行只能输出了一条运行路径的SQL脚本记录在运行日志中,且以对象命名进行匹配,导致根据运行日志获取SQL脚本时,在程序块中存在分支、循环的情况下很难确保元数据更新的质量,更新效率不高。
发明内容
本发明的第一目的是提出一种效率高的SQL脚本元数据的更新方法。
本发明的第二目的是提出一种效率高的SQL脚本元数据的更新装置。
本发明的第三目的是提出一种效率高的SQL脚本元数据的更新系统。
为实现上述第一目的,本发明提供了一种SQL脚本元数据的更新方法,包括:解析程序块中包含的SQL脚本,获取元数据;判断SQL脚本与元数据库已记录SQL脚本是否为同一脚本;在判定为不同脚本时,将元数据更新至元数据库。
为实现上述第二目的,本发明提供了一种SQL脚本元数据的更新装置,包括:解析模块,用于解析程序块中包含的SQL脚本,获取元数据;判断模块,用于判断SQL脚本与元数据库已记录SQL脚本是否为同一脚本;处理模块,用于在判定为不同脚本时,将元数据更新至元数据库。
为实现上述第三目的,本发明提供了一种SQL脚本元数据的更新系统,包括:元数据库,用于记录SQL脚本的元数据及SQL脚本的修改信息;SQL脚本元数据的更新装置,用于解析SQL程序块中包含的SQL脚本获取元数据;并判断SQL脚本与元数据库已记录SQL脚本是否为同一脚本;以及在判定为不同脚本时,将元数据更新至元数据库。
本发明各个实施例中,在判定是否为同一SQL脚本后进行元数据的更新操作,避免了现有技术中在元数据入库时以对象命名进行匹配而导致更新效率不高的不足,提升更新效率。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团公司;广州石竹计算机软件有限公司,未经中国移动通信集团公司;广州石竹计算机软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010239660.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:关态无功耗单键轻触电子多控开关
- 下一篇:密闭型压缩机的储液罐结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置