Sql脚本的结构化元数据生成方法及数据地图生成方法

文档序号:6452798阅读:209来源:国知局
专利名称:Sql脚本的结构化元数据生成方法及数据地图生成方法
技术领域
本发明涉及通信领域中数据管理技术,具体地,涉及SQL脚本的结构化元数据生成方法以及数据地图生成方法。
背景技术
目前,很多大型数据仓库系统的ETL和数据处理过程大多采用SQL脚本来实现。这需要将这些SQL脚本的数据处理逻辑整理成元数据,以便构建数据仓库系统的数据地图。其中数据处理过程中的SQL脚本包含了大量数据流语义信息,这些信息是构成数据仓库系统数据地图的主要部分。因此业界一直寻求有效手段对SQL脚本的数据流语义信息进行结构化描述和图形化展现。元数据对数据仓库系统的结构化描述是以元模型的语义表达能力为基础的。目前公认的数据仓库领域元模型标准是对象管理组织(Object Management Group,简称0MG)发布的公共仓库元模型(Common Warehouse Metamodel,简称CWM)规范。CWM规范中定义了转换(也称“Transformation”)包,以描述数据处理过程的数据流语义信息。图一为现有技术中Transformation包对数据转换处理(简称数据处理)过程的处理思路,如图一所示,数据转换处理活动(TransformationActivity)包含一组存在调度依赖关系的数据转换处理环节(TransformationSt印)。每个数据处理环节引用一个数据转换处理任务(TransformationTask)。每个数据处理任务由一个到多个数据转换处理单元(Transformation)组成。一个任务内的数据处理单元之间可能存在数据输出和输入的关联关系。一个Transformation可以引用外挂的程序、查询或者规则等任意操作对象,也可以通过转换映射(TransformationMap)或转换树(TransformationTree)描述其数据处理逻辑。Transformation包基于这种描述思路,设置了 13个类和这些类之间的12个关联关系,具体见表一表一转换包类划分和类之间的关联关系
权利要求
1.一种SQL脚本的结构化元数据生成方法,其特征在于,包括 根据SQL脚本数据流语义结构生成一组SQL脚本元模型;根据所述元模型对所述SQL脚本的数据处理逻辑进行结构化描述; 根据所述数据处理逻辑的结构化描述,生成SQL脚本元数据。
2.根据权利要求1所述的SQL脚本的结构化元数据生成方法,其特征在于,根据SQL脚本数据流语义结构生成一组SQL脚本元模型包括对公共仓库元模型中的转换包元模型进行扩展,建立包含作业层、SQL脚本层、数据转换处理层、关系代数操作层以及关系代数操作明细层的五层结构的SQL脚本元模型; 其中所述作业层包括一个类数据转换任务单元; 所述SQL脚本层包括一个类数据转换映射单元; 所述数据转换处理层包括一个类数据转换处理单元;所述关系代数操作层包括一个类关系代数操作单元,所述关系代数操作单元类进一步包含七个子类,包括选择操作子类、连接操作子类、分组操作子类、排序操作子类、投影操作子类、交并差集合操作子类和改名操作子类;所述关系代数操作明细层包括一个类字段级映射单元。
3.根据权利要求2所述的SQL脚本的结构化元数据生成方法,其特征在于,根据所述 SQL脚本元模型对所述SQL脚本的数据处理逻辑进行结构化描述包括识别所述SQL脚本的句型,使用所述元模型的数据转换映射类进行结构化描述,对每条SQL脚本生成一个数据转换映射对象;分析所述SQL脚本的数据处理逻辑,将所述SQL脚本展开为一至多个数据转换处理单元,使用所述元模型的数据转换处理单元类进行结构化描述,对每个数据转换处理单元生成一个数据转换处理对象;拆分所述数据转换处理单元,并提取其中包含的关系代数操作单元,使用所述元模型的关系代数操作单元类及其子类进行描述,对每个关系代数操作单元生成一个关系代数操作对象;分析所述关系代数操作单元,对其中的投影操作、交并差集合操作和改名操作细化为一至多个字段级映射单元,使用所述元模型的字段级映射单元类进行结构化描述,生成字段级映射对象。
4.根据权利要求3所述的SQL脚本的结构化元数据生成方法,其特征在于,识别所述 SQL脚本的句型,使用所述元模型的数据转换映射类进行结构化描述,对每条SQL脚本生成一个数据转换映射对象包括将数据处理过程中的每个程序块用所述元模型的数据转换任务类进行结构化描述,对每个程序块生成一个数据转换任务对象;将所述程序块中的每条SQL脚本用所述元模型的数据转换映射类进行结构化描述,对每条SQL脚本生成一个数据转换映射对象;根据所述数据转换任务对象和所述数据转换映射对象的组合关系,描述数据处理过程的程序块与SQL脚本之间的组合关系。
5.根据权利要求3所述的SQL脚本的结构化元数据生成方法,其特征在于,分析所述 SQL脚本的数据处理逻辑,将所述SQL脚本展开为一至多个数据转换处理单元,使用所述元模型的数据转换处理单元类进行结构化描述,对每个数据转换处理单元生成一个数据转换处理对象包括分析所述SQL脚本的数据处理逻辑,将SQL脚本中的查询子句分解为一至多个简单查询子句;将每个简单查询子句所对应的数据处理逻辑作为一个数据转换处理单元,用所述元模型的数据转换处理单元类进行结构化描述,生成一个数据转换处理对象;所述简单查询子句为查询子句的投影列表和“FROM”子句中均没有嵌套下一层的查询子句,以及没有交并差操作的查询子句。
6.根据权利要求5所述的SQL脚本的结构化元数据生成方法,其特征在于,将每个简单查询子句所对应的数据处理逻辑作为一个数据转换处理单元,用所述元模型的数据转换处理单元类进行结构化描述,生成一个数据转换处理对象包括将所述简单查询子句的参与连接操作的数据库表作为数据转换处理对象的输入数据实体;将所述简单查询子句中的连接操作、选择操作、分组操作以及排序操作作为所述数据转换处理对象的关系代数操作对象;根据所述简单查询子句的上一层句型确定所述数据转换处理对象的目标数据实体。
7.根据权利要求3所述的SQL脚本的结构化元数据生成方法,其特征在于,分析所述 SQL脚本的数据处理逻辑,将所述SQL脚本展开为一至多个数据转换处理单元,使用所述元模型的数据转换处理单元类进行结构化描述,对每个数据转换处理单元生成一个数据转换处理对象包括分析所述SQL脚本中的查询子句,所述查询子句的投影操作或“FROM”子句中嵌套查询子句时,解析嵌套的查询子句;将所述嵌套的查询子句生成对应的数据转换处理对象;将所述数据转换处理对象的输出作为上一层查询子句所对应的数据转换处理对象的输入。
8.根据权利要求3所述的SQL脚本的结构化元数据生成方法,其特征在于,分析所述 SQL脚本的数据处理逻辑,将所述SQL脚本展开为一至多个数据转换处理单元,使用所述元模型的数据转换处理单元类进行结构化描述,对每个数据转换处理单元生成一个数据转换处理对象包括分析所述SQL脚本中的查询子句,所述SQL脚本的查询子句存在交并差操作的查询子句时,将同一层查询子句中的所有交并差操作生成一个交并差集合操作类型的数据转换处理对象。
9.根据权利要求3-7任一项所述的SQL脚本的结构化元数据生成方法,其特征在于,所述拆分数据转换处理单元,并提取其中包含的关系代数操作单元,使用所述元模型的关系代数操作单元类及其子类进行描述,对每个关系代数操作单元生成一个关系代数操作对象包括从所述查询子句中拆分出投影操作,用所述元模型的投影操作子类进行结构化描述, 生成投影操作对象;当所述查询子句包含表连接操作、选择操作、分组操作或者排序操作时,用所述元模型的连接操作子类、选择操作子类、分组操作子类或者排序操作子类进行结构化描述,生成相应的连接操作对象、选择操作对象、分组操作对象或者排序操作对象;所述连接操作对象根据对象属性标记连接操作类型,所述连接操作类型包括内连接、 笛卡尔乘积、全外连接、左外连接和右外连接,分别描述所述查询子句的内连接操作、笛卡尔乘积连接操作、全外连接操作、左外连接操作和右外连接操作。
10.根据权利要求8所述的SQL脚本的结构化元数据生成方法,其特征在于,所述拆分数据转换处理单元,并提取其中包含的关系代数操作单元,使用所述元模型的关系代数操作单元类及其子类进行描述,对每个关系代数操作单元生成一个关系代数操作对象包括同一层查询子句间所有交并差集合操作的数据转换处理对象提取交并差操作的类型和运算优先级;将相同类型且处于同一运算优先级的交并差集合操作生成一个交并差集合操作对象。
11.根据权利要求3-7、10任一项所述的SQL脚本的结构化元数据生成方法,其特征在于,分析所述关系代数操作单元,对其中的投影操作、交并差集合操作和改名操作细化为一至多个字段级映射单元,使用所述元模型的字段级映射单元类进行结构化描述,生成字段级映射对象包括查询子句的投影列表中嵌套查询子句时,投影表达式所对应字段映射对象的输入为所嵌套的下一层查询子句所对应的所有字段映射对象的输出;查询子句的“FROM”子句中嵌套查询子句时,将所嵌套的下一层查询子句的数据转换处理对象作为输入数据实体。
12.一种根据权利要求1所述SQL脚本元数据的数据地图生成方法,其特征在于,包括根据所述SQL脚本元模型的结构数目设置数据地图入口,通过指定类的对象启动数据地图;根据所述数据地图入口对SQL脚本元数据进行连通分析,确定数据地图展现范围; 根据所述确定的展现范围分层展现数据地图; 对所述数据地图中的结点进行自动布局。
13.根据权利要求12所述的数据地图生成方法,其特征在于,根据所述SQL脚本的元模型结构数目设置数据地图入口包括根据所述SQL脚本的5层元模型结构设置5种类图形入口 根据转换任务或者数据实体,生成正向、反向或者双向连通图,并按一至五层展现数据地图;根据指定的结点集合生成正向、反向或者双向连通图,并按一至五层展现数据地图; 根据数据转换任务对象展现内部数据处理逻辑,并按二至五层展现数据地图; 根据指定的数据转换映射对象展现内部数据处理逻辑,并按三至五层展现数据地图; 根据指定的数据转换处理对象,并按四至五层图形展现其内部数据处理逻辑; 其中,所述正向、反向或双向连通图为根据选定结点集合中的每个结点生成正向、反向或双向连通图的并集所形成的子图。
14.根据权利要求12或13所述的数据地图生成方法,其特征在于,根据数据地图入口, 对SQL脚本元数据进行连通分析,确定数据地图展现范围包括以所述数据地图入口的对象为起点,沿对象之间的关系进行正向、反向或者双向连通分析,获得连通范围内的SQL脚本元数据;以所述SQL脚本元数据中的对象为结点,以对象之间的关系为边,确定数据地图展现范围。
15.根据权利要求14所述的数据地图生成方法,其特征在于,根据确定的范围分层展现数据地图包括设置所述数据地图中各种图形元素对应的标记符,所述图形元素包括SQL脚本元模型中各种类的结点和边的图形表示符号;根据确定层次中的结点集合和边集合用对应的图形元素进行不同层中的图形展现 以数据实体对象和数据转换任务对象为结点,以对象间的数据输入输出关系为边,展现作业层图形;以数据实体对象和数据转换映射对象为结点,以对象之间的数据输入输出关系为边, 展现将SQL脚本层图形;以数据实体对象和数据转换处理对象为结点,以对象之间的数据输入输出关系为边, 展现数据转换处理层图形;以数据实体对象和关系代数操作对象为结点,以对象之间的依赖关系为边,展现关系代数操作层图形;将关系代数操作层的每个数据实体展开到字段粒度,将投影操作对象展开到字段级映射对象,并图形表现数据实体的字段与字段级映射对象之间的关系,形成关系代数操作明细层的图形;将上述图形中的结点根据结点类型展现为对应的图形元素并进行图形布局。
全文摘要
本发明公开了一种SQL脚本的结构化元数据生成方法以及数据地图生成方法,其中,该方法包括根据SQL脚本数据流语义结构生成一组SQL脚本元模型;根据元模型对SQL脚本的数据处理逻辑进行结构化描述;根据数据处理逻辑的结构化描述,生成SQL脚本元数据。本发明可以将SQL脚本的数据转换处理逻辑进行结构化描述,在此基础上提供相应的辅助分析功能和分层数据地形展现,从而提供数据链路辅助分析和血统分析、数据地图展现和细节数据处理逻辑图形化展现,解决现有技术中SQL脚本所包含的数据流信息无法在元数据中体现出来,导致元数据的数据加工链路不连贯,无法进行有效的分析的缺陷。
文档编号G06F17/30GK102339295SQ201010238389
公开日2012年2月1日 申请日期2010年7月23日 优先权日2010年7月23日
发明者何鸿凌, 李政, 林旭, 薛勇, 陈仲亮, 陶涛, 魏春辉 申请人:中国移动通信集团公司, 广州石竹计算机软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1