CN102339295A - Sql脚本的结构化元数据生成方法及数据地图生成方法 - Google Patents
Sql脚本的结构化元数据生成方法及数据地图生成方法 Download PDFInfo
- Publication number
- CN102339295A CN102339295A CN2010102383895A CN201010238389A CN102339295A CN 102339295 A CN102339295 A CN 102339295A CN 2010102383895 A CN2010102383895 A CN 2010102383895A CN 201010238389 A CN201010238389 A CN 201010238389A CN 102339295 A CN102339295 A CN 102339295A
- Authority
- CN
- China
- Prior art keywords
- data
- sql script
- clause
- meta
- data conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SQL脚本的结构化元数据生成方法以及数据地图生成方法,其中,该方法包括:根据SQL脚本数据流语义结构生成一组SQL脚本元模型;根据元模型对SQL脚本的数据处理逻辑进行结构化描述;根据数据处理逻辑的结构化描述,生成SQL脚本元数据。本发明可以将SQL脚本的数据转换处理逻辑进行结构化描述,在此基础上提供相应的辅助分析功能和分层数据地图图形展现,从而提供数据链路辅助分析和血统分析、数据地图展现和细节数据处理逻辑图形化展现,解决现有技术中SQL脚本所包含的数据流信息无法在元数据中体现出来,导致元数据的数据加工链路不连贯,无法进行有效的分析的缺陷。
Description
技术领域
本发明涉及通信领域中数据管理技术,具体地,涉及SQL脚本的结构化元数据生成方法以及数据地图生成方法。
背景技术
目前,很多大型数据仓库系统的ETL和数据处理过程大多采用SQL脚本来实现。这需要将这些SQL脚本的数据处理逻辑整理成元数据,以便构建数据仓库系统的数据地图。
其中数据处理过程中的SQL脚本包含了大量数据流语义信息,这些信息是构成数据仓库系统数据地图的主要部分。因此业界一直寻求有效手段对SQL脚本的数据流语义信息进行结构化描述和图形化展现。
元数据对数据仓库系统的结构化描述是以元模型的语义表达能力为基础的。目前公认的数据仓库领域元模型标准是对象管理组织(Object Management Group,简称OMG)发布的公共仓库元模型(Common Warehouse Metamodel,简称CWM)规范。CWM规范中定义了转换(也称“Transformation”)包,以描述数据处理过程的数据流语义信息。
图一为现有技术中Transformation包对数据转换处理(简称数据处理)过程的处理思路,如图一所示,数据转换处理活动(TransformationActivity)包含一组存在调度依赖关系的数据转换处理环节(TransformationStep)。
每个数据处理环节引用一个数据转换处理任务(TransformationTask)。每个数据处理任务由一个到多个数据转换处理单元(Transformation)组成。一个任务内的数据处理单元之间可能存在数据输出和输入的关联关系。
一个Transformation可以引用外挂的程序、查询或者规则等任意操作对象,也可以通过转换映射(TransformationMap)或转换树(TransformationTree)描述其数据处理逻辑。
Transformation包基于这种描述思路,设置了13个类和这些类之间的12个关联关系,具体见表一:
表一转换包类划分和类之间的关联关系
由于CWM规范Transformation包的元模型各厂商独立、与具体物理实现无关,而不同企业数据处理过程的物理实现存在较大差异,因此在技术实现时,往往需要结合具体情况确定合适的元模型。
目前对SQL脚本元数据可分为两种方式处理。第一种是以ETL工具(如DataStage、PowerCenter等)实现数据处理过程;第二种是以脚本程序实现数据处理过程。这两种SQL脚本数据流语义信息分别采用不同的结构化处理方式。
对于第一种,ETL工具中已经内置了相适应的元模型,一般不会对数据源定义的SQL脚本或者转换处理环节中外挂的SQL脚本进行展开处理。表一中的“TransformationUse”类,就可以处理这种SQL脚本的引用关系。在图形展现上,ETL工具也不会对所引用的SQL脚本进行结构化的拓扑展现。
对于第二种,数据处理过程主要由SQL脚本实现。这种情况下目前并没有形成成熟的SQL脚本的元数据处理方案,一般仅能够满足粗粒度的数据链路分析要求。然而这却不能满足日常开发和运行维护的需要。
CWM规范作为数据仓库领域的元模型标准,可以理解为一个与物理实现无关的逻辑模型。当需要建立数据仓库系统的元数据管理体系时,则需要考虑元模型与物理如何实现对应。这时会出现如下两种情况:物理实现的实体在CWM元模型中也有着对应的类和关联关系。如果物理实现的实体没有统一的、公认的定义,则这些实体在CWM元模型中很难有明确对应的类和关联关系。如:数据处理过程的实现。
对于采用ETL工具实现的数据处理过程,需要考虑ETL工具中的物理实现单元如何跟CWM元模型相对应。数据源采用SQL脚本来定义,或引用了外部SQL脚本程序时,应该如何处理SQL脚本的数据流语义信息。现有技术中SQL脚本所包含的数据流信息无法在元数据中体现出来,这会导致元数据的数据加工链路不连贯,无法进行有效的血统分析和影响分析。
对于很多数据仓库系统,大部分数据处理过程采用SQL脚本程序实现,脚本程序实体应该用CWM元模型的哪些类和关系?各种数据处理逻辑应该用CWM元模型的哪些类和关系?如何把握结构化描述的粒度等等,即使完全遵守CWM规范,元数据规格不一,也无法形成统一的数据地图。
现有技术中对SQL脚本的元数据管理一般能够满足粗粒度的数据链路分析要求,展现作业层的数据地图。但为了满足日常开发和运行维护的需要,通常需要深入到ETL和数据处理过程的中所包含的SQL脚本、这些脚本之间的关系、这些SQL脚本的内部数据转换处理逻辑等,进行深入分析。目前的SQL脚本元数据并不能提供这些分析支持,也不能展现这 些层次的数据地图,不能为数据仓库系统的提供数据链路辅助分析、数据地图展现和细节数据处理逻辑图形化展现等。
发明内容
本发明的第一目的是提出一种SQL脚本的结构化元数据生成方法,以实现将SQL脚本所包含的数据流信息在元数据中体现出来,使元数据的数据链路连贯,以提供数据链路影响分析和血统分析。
本发明的第二目的是提出一种SQL脚本的数据地图生成方法,以实现不同粒度展现数据链路和数据处理逻辑,提供数据链路直观的影响分析。
为实现上述第一目的,根据本发明的一个方面,提供了一种SQL脚本的结构化元数据生成方法,包括:根据SQL脚本数据流语义结构生成一组SQL脚本元模型;根据元模型对SQL脚本的数据处理逻辑进行结构化描述;根据数据处理逻辑的结构化描述,生成SQL脚本元数据。
其中,优选地根据SQL脚本数据流语义结构生成一组SQL脚本元模型包括:对公共仓库元模型中的转换包元模型进行扩展,建立包含作业层、SQL脚本层、数据转换处理层、关系代数操作层以及关系代数操作明细层的五层结构的SQL脚本元模型;
其中作业层可以包括一个类:数据转换任务;SQL脚本层包括一个类:数据转换映射;数据转换处理层包括一个类:数据转换处理单元;关系代数操作层包括一个类:关系代数操作单元,关系代数操作单元类进一步包含七个子类,包括选择操作子类、连接操作子类、分组操作子类、排序操作子类、投影操作子类、交并差集合操作子类和改名操作子类;关系代数操作明细层包括一个类:字段级映射单元。
优选地,根据SQL脚本元模型对SQL脚本的数据处理逻辑进行结构化描述包括:
识别SQL脚本的句型分类,使用元模型的数据转换映射类进行结构化描述,对每条SQL脚本生成一个数据转换映射对象;
分析SQL脚本的数据处理逻辑,将SQL脚本展开为一至多个数据转换处理单元,使用元模型的数据转换处理单元类进行结构化描述,对每个 数据转换处理单元生成一个数据转换处理对象;
拆分数据转换处理单元,并提取其中包含的关系代数操作单元,使用元模型的关系代数操作单元类及其子类进行描述,对每个关系代数操作单元生成一个关系代数操作对象;
分析关系代数操作单元,对其中的投影操作、交并差集合操作和改名操作细化为一至多个字段级映射单元,使用元模型的字段级映射单元类进行结构化描述,生成字段级映射对象。
为实现上述第二目的,根据本发明的另一个方面,提供了一种SQL脚本的数据地图生成方法,包括:根据SQL脚本的元模型结构数目设置数据地图入口,通过指定类的对象启动数据地图;根据数据地图入口对SQL脚本元数据进行连通分析,确定数据地图展现范围;根据确定的展现范围分层展现数据地图;对数据地图中的结点进行自动布局。
其中,根据数据地图入口,对SQL脚本元数据进行连通分析,确定数据地图展现范围可以包括:
以数据地图入口的对象为起点,沿着对象之间的关系进行正向、反向或者双向连通分析,获得连通范围内的SQL脚本元数据;
以SQL脚本元数据中的对象为结点,以对象之间的关系为边,确定数据地图展现范围;
设置数据地图中各种图形元素对应的标记符,图形元素包括SQL脚本元模型中各种类的结点和边的图形表示符号。
其中,根据确定的范围分层展现数据地图可以包括:
根据确定层次中的结点集合和边集合用对应的图形元素进行不同层中的图形展现:
以数据实体对象和数据转换任务对象为结点,以对象间的数据输入输出关系为边,展现作业层图形;
以数据实体对象和数据转换映射对象为结点,以对象之间的数据输入输出关系为边,展现将SQL脚本层图形;
以数据实体对象和数据转换处理对象为结点,以对象之间的数据输入输出关系为边,展现数据转换处理层图形;
以关系代数操作对象和数据实体对象为结点,以对象之间的依赖关系 为边,展现关系代数操作层图形;
将关系代数操作层的每个数据实体展开到字段粒度进行展示,将投影操作对象展开到字段级映射对象进行展示,并图形表现数据实体的字段与字段级映射对象之间的关系,形成关系代数操作明细层的图形;
将上述图形中的结点根据结点类型展现为对应的图形元素并进行图形布局。
本发明各实施例的SQL脚本的结构化元数据生成方法及数据地图生成方法,可以将SQL脚本的数据转换处理逻辑划分为5个层次进行描述,在此基础上提供相应的辅助分析功能和分层数据地图图形展现,从而为数据仓库系统提供数据链路血统分析(指分析一个数据实体的数据来源)和影响分析(指分析一个数据实体影响哪些数据流下游环节)、数据地图展现和细节数据处理逻辑图形化展现、直观的图形化辅助功能等,能够很好地满足数据仓库系统日常开发运维的需要
本发明实施例还对SQL脚本、这些脚本之间的关系、SQL脚本的内部数据转换处理逻辑等,进行结构化描述,不同粒度的元数据可以灵活支持各种应用场景的需要,提供数据链路的辅助分析支持,也能展现这些层次的数据地图。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据现有技术中的转换包数据处理过程示意图;
图2为根据本发明SQL脚本的结构化元数据生成方法实施例流程图;
图3为根据本发明SQL脚本的结构化元数据生成方法中扩展后元模型实施例示意图;
图4为根据本发明SQL脚本的结构化元数据生成方法中结构化描述实施例流程示意图;
图5为根据本发明SQL脚本的结构化元数据生成方法中SQL脚本对象生成实施例示意图;
图6为根据本发明SQL脚本的结构化元数据生成方法中描述SQL脚本数据转换处理逻辑实施例示意图;
图7-1为根据本发明SQL脚本的结构化元数据生成方法中CREATE_SELECT句型SQL脚本的ClassifierMap对象实施例示意图;
图7-2为根据本发明SQL脚本的结构化元数据生成方法中INSERT_SELECT句型SQL脚本的ClassifierMap对象实施例示意图;
图7-3为根据本发明SQL脚本的结构化元数据生成方法中INSERT_ALL句型SQL脚本的ClassifierMap对象实施例示意图;
图7-4为根据本发明SQL脚本的结构化元数据生成方法中UPDATE_SELECT句型SQL脚本的ClassifierMap对象实施例示意图;
图7-5为根据本发明SQL脚本的结构化元数据生成方法中MERGE句型SQL脚本的ClassifierMap对象实施例示意图;
图7-6为根据本发明SQL脚本的结构化元数据生成方法中RENAME句型SQL脚本的ClassifierMap对象实施例示意图;
图7-7为根据本发明SQL脚本的结构化元数据生成方法中简单SELECT子句的ClassifierMap对象实施例示意图;
图7-8为根据本发明SQL脚本的结构化元数据生成方法中投影操作中嵌套SELECT子句的ClassifierMap对象实施例示意图;
图7-9为根据本发明SQL脚本的结构化元数据生成方法中FROM子句中嵌套SELECT子句的ClassifierMap对象实施例示意图;
图7-10为根据本发明SQL脚本的结构化元数据生成方法中交并差操作生成的ClassifierMap对象实施例示意图;
图7-11为根据本发明SQL脚本的结构化元数据生成方法中嵌套SELECT子句生成的ClassifierMap对象实施例示意图;
图7-12为根据本发明SQL脚本的结构化元数据生成方法中SELECT子句中的RelationalOperator对象实施例示意图;
图7-13为根据本发明SQL脚本的结构化元数据生成方法中交并差操作的RelationalCombination对象实施例示意图;
图7-14为根据本发明SQL脚本的结构化元数据生成方法中INSERT-ALL数据转换处理单元的RelationalOperator对象实施例示意图;
图7-15为根据本发明SQL脚本的结构化元数据生成方法中MERGE数据转换处理单元的RelationalOperator对象实施例示意图;
图7-16为根据本发明SQL脚本的结构化元数据生成方法中简单SELECT子句中的FeatureMap对象实施例示意图;
图7-17为根据本发明SQL脚本的结构化元数据生成方法中投影列表中嵌套SELECT子句的FeatureMap对象实施例示意图;
图7-18为根据本发明SQL脚本的结构化元数据生成方法中FROM子句中嵌套SELECT子句的FeatureMap对象实施例示意图;
图7-19为根据本发明SQL脚本的结构化元数据生成方法中存在交并差操作的SELECT子句中的FeatureMap对象实施例示意图;
图7-20为根据本发明SQL脚本的结构化元数据生成方法中RENAME操作的FeatureMap对象实施例示意图;
图7-21为根据本发明SQL脚本的结构化元数据生成方法中MERGE句型SQL脚本中的FeatureMap对象实施例示意图;
图8为根据本发明SQL脚本数据地图生成方法的实施例流程图;
图9为根据本发明SQL脚本数据地图生成方法中结点与边的图形展现示意图;
图10-1为根据本发明SQL脚本数据地图生成方法中作业层图形展现示意图;
图10-2为根据本发明SQL脚本数据地图生成方法中SQL语句层图形展现示意图;
图10-3为根据本发明SQL脚本数据地图生成方法中数据处理逻辑层的 图形展现示意图;
图10-4为根据本发明SQL脚本元数据数据地图生成方法中MERGE句型的数据处理逻辑层图形展现示意图;
图10-5为根据本发明SQL脚本数据地图生成方法中投影操作从第三层图形展开到第四层图形示意图;
图10-6为根据本发明SQL脚本数据地图生成方法中线性单向数据流图形布局示意图;
图10-7为根据本发明SQL脚本数据地图生成方法中交错错位布局示意图;
图10-8为根据本发明SQL脚本数据地图生成方法中回路在两个结点间数据流图形布局示意图;
图10-9为根据本发明SQL脚本数据地图生成方法中回路在多个结点图形布局示意图;
图10-10为根据本发明SQL脚本数据地图生成方法中扇形布局示意图;
图10-11为根据本发明SQL脚本形展现方法中扇形中具有边的图形布局示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图2为根据本发明SQL脚本的结构化元数据生成方法实施例流程图,如图2所示,本实施例包括:
步骤S202:根据SQL脚本数据流语义结构生成一组SQL脚本元模型;
步骤S204:根据元模型结构对SQL脚本的数据处理逻辑进行结构化描述;
步骤S206:根据数据处理逻辑的结构化描述,生成SQL脚本元数据。
其中,根据SQL脚本数据流语义结构生成一组SQL脚本元模型包括:
对CMW中的转换包元模型进行扩展,生成包含作业层、SQL脚本层、 数据转换处理层、关系代数操作层、以及关系代数操作明细层的SQL脚本元模型。下面对SQL脚本元模型进行举例说明:
本申请提案结合大量使用脚本程序实现ETL和数据处理过程的情况,将SQL脚本的结构划分为5个层次。5个层次的定义如下:
第一层:作业层
第二层:SQL脚本层
第三层:数据转换处理层
第四层:关系代数操作层
第五层:关系代数操作明细层
为了满足对SQL脚本数据流语义信息进行多层次结构化描述的要求,需要对CWM规范Transformation包的元模型进行扩展和调整。扩展后的SQL元模型如下表二:
表二扩展后的SQL元模型
对CWM元模型的扩展和调整,扩展后的元模型如图3所示,包括:对Transformation包的“TransformationTask”类进行重新定义,增加 对脚本程序的一些属性描述,用于描述脚本程序或者ETL作业。每个脚本程序或者ETL作业对应一个“TransformationTask”对象。
对Transformation包的“TransformationMap”类进行重新定义,增加对SQL脚本的属性描述,用于描述SQL脚本。每个脚本程序或者ETL作业中包含一到多个SQL脚本,每个SQL脚本对应一个“TransformationMap”对象。
对Transformation包的“ClassifierMap”类进行重新定义,用于描述SQL脚本中所包含的数据转换处理单元。每个SQL脚本包含一到多个数据转换处理单元,每个数据转换处理单元对应一个“ClassifierMap”对象。
本领域技术人员应了解,“类”和“对象”是两个专业术语。在元模型中定义的是“类”,在生成元数据时,则根据这些类实例化成对象。
例如,“关系代数操作单元”是一个类,“交并差集合操作”是关系代数操作单元的一个子类,而某个交并差集合操作则是一个对象,是由交并差集合操作这个子类实例化而成的。
从CWM的ModelElement类派生“RelationalOperator”类,并从该类派生7个子类,分别用于对SQL语句中的连接、选择、投影、改名、交并差、分组和排序等关系操作进行结构化描述。
对Transformation包的“FeatureMap”类进行重新定义,用于描述关系代数操作中所包含的字段级映射。
本实施例的SQL脚本的结构化元数据生成方法可以将SQL脚本的数据转换处理逻辑划分为5个层次进行描述,在此基础上提供相应的辅助分析功能和分层数据地图图形展现,从而为数据仓库系统提供数据链路辅助分析、数据地图展现和细节数据处理逻辑图形化展现等,能够很好地满足数据仓库系统日常开发运维的需要。
下面对这些类进行说明:
TransformationTask类
TransformationTask类用于描述数据仓库领域专用术语抽取、转换、 装载(Extract,transform,load,简称ETL)和数据处理过程的脚本程序、IBM发布的一款ETL软件产品“DataStage”工具中定义的ETLJob(是DataStage中的一个实体,可理解为ETL作业)、Essbase(是IBM发布的一款多维分析软件产品)工具中的JOB等数据处理执行单元。
在一个脚本程序中,数据处理逻辑可以用SQL脚本实现或者非SQL脚本实现。对于用SQL脚本实现的情况,脚本程序的数据处理逻辑包含在SQL脚本中。这种情况下,TransformationTask对象包含有1到多个TransformationMap对象,而TransformationMap对象中包含了一些ClassifierMap对象。对于用非SQL脚本实现的情况,例如游标处理、文件处理等,脚本程序TransformationTask对象中直接包含ClassifierMap对象。
TransformationMap类
TransformationMap类用于描述脚本程序中所包含的SQL脚本。脚本程序中每条SQL脚本对应一个TransformationMap对象。TransformationMap对象通过属性描述SQL脚本的句型,这些句型如下:
●CREATE_SELECT句型
●INSERT_SELECT句型
●INSERT_ALL句型
●UPDATE_SELECT句型
●MERGE句型
●RENAME句型
●其他句型
ClassifierMap类
ClassifierMap类用于描述一个具有输入输出的表级数据处理逻辑单元。这些数据处理逻辑单元可以在脚本程序中,通过脚本命令来实现。而大部分情况下,这些数据处理逻辑是通过SQL脚本来实现的。
针对SQL脚本所包含的数据处理逻辑信息的描述要求,ClassifierMap类在Transformation包所提供的ClassifierMap类的基础上做了很多扩充,可用于结构化描述SQL脚本的交并差操作、连接操作、选择操作、分组 排序以及插入、更新(insert/update)等操作,而且允许将一个ClassifierMap对象作为另一个ClassifierMap的输入或者输出对象,以适应SQL脚本中多层SELECT嵌套的描述需要。
作为对Transformation包元模型的扩充,ClassifierMap类允许将一个ClassifierMap对象作为另一个ClassifierMap对象的输入或者输出对象,以描述两个数据处理逻辑之间不经过数据实体的数据流片段。
一个ClassifierMap对象除了可以将其他ClassifierMap对象作为输入输出对象外,更多的情况是将各种类型的数据实体作为输入输出对象。这些数据实体可以是数据库表、关系表型文件、可扩展标记语言(Extensible Markup Language,简称XML)文件、指标和立方体(CUBE,多维分析中术语)等类型的对象。对象引用源数据实体(sourceClassifier)描述数据转换处理(ClassifierMap)对象的源数据实体,对象引用targetClassifier描述ClassifierMap对象的目标数据实体。
RelatioHalOperator类及其子类
RelationalOperator类用于描述一个用SQL脚本实现的ClassifierMap对象中所包含的关系代数操作。RelationalOperator类的父类是CWM核心包的ModelElement类。
为了描述投影、连接、选择、分组和排序等关系代数操作,对RelationalOperator类派生出如下7个子类:
RelationalProjection(投影操作)
RelationalJoin(连接操作)
RelationalSelection(选择操作)
RelationalGroupBy(分组操作)
RelationalOrderBy(排序操作)
RelationalRename(改名操作)
RelationalCombination(交并差集合操作)
其中RelationalSelection描述选择操作,主要是指条件子句,即“WHERE”子句所对应的关系操作;RelationalGroupBy描述分组子句,即“GROUP BY”子句所对应的关系操作;RelationalOrderBy描述排序 “ORDER BY”子句所对应的关系操作;RelationalProjection通过所包含的FeatureMap来描述投影操作;RelationalRename描述修改名的关系操作。
从RelationalOperator类派生的RelationalJoin子类用于描述ClassifierMap对象所包含的连接操作。当参与连接的是一个嵌套的查询(select)子句时,该select子句作为一个ClassifierMap对象参与连接。描述数据库表或者ClassifierMap对象参与连接的类型通过RelationalJoin类的连接类型(joinType)属性进行描述,该属性如下:
■JOIN_INNER(内连接)
■JOIN_CROSS(笛卡尔乘积)
■JOIN_FULL_OUTER(全外连接)
■JOIN_LEFT_OUTER(左外连接)
■JOIN_RIGHT_OUTER(右外连接)
从RelationalOperator类派生的RelationalCombination子类描述交并差集合操作。该子类定义了一个属性:combinationType,用于描述不同类型的集合操作,其取值如下:
■UNION,描述集合并操作(去重)
■UNIONALL,描述集合并操作(不去重)
■MINUS,描述集合差操作
■INTERSECT,描述集合交操作
FeatureMap类
FeatureMap类用于将RelationalOperator对象的表级数据处理逻辑单元映射到字段级的数据处理逻辑单元。
图2-图3对SQL脚本的结构化元数据生成方法以及根据SQL脚本扩展的元模型进行了说明,在建立元模型结构后,可以进行利用已建立的元模型对SQL脚本的数据处理逻辑进行结构化描述,图4为结构化描述过程,如图4所示,结构化描述过程包括:
步骤S402:识别SQL脚本的句型分类,使用元模型的数据转换映射类进行结构化描述,对每条SQL脚本生成一转换映射对象, TransformationMap对象;
步骤S404:分析SQL脚本的数据处理逻辑,将SQL脚本展开为一至多个数据转换处理单元,使用元模型的数据转换处理单元类进行结构化描述,对每个数据转换处理单元生成一数据转换处理对象,ClassifierMap对象;
步骤S406:进一步拆分数据转换处理单元,并提取其中的关系代数操作单元,对每个关系代数操作单元生成关系代数操作对象RelationalOperator对象;
本领域技术人员应了解,数据转换处理单元与关系代数操作单元是组合关系,是面向对象技术中的专业术语,每个数据转换处理单元是有一系列的关系代数操作来完成的。
步骤S408分析关系代数操作单元,对其中的投影操作、交并差集合操作和改名操作细化为一至多个字段级映射单元,使用元模型的字段级映射单元类进行结构化描述,生成字段级映射FeatureMap对象。
下面根据图4所示过程,说明针对各种类型的SQL脚本,如何根据前面所定义的元模型对其进行结构化描述,包括SQL脚本、这些脚本之间的关系、SQL脚本的内部数据转换处理逻辑等进行结构化描述,以提供数据链路的辅助分析支持,并展现这些层次的数据地图。
4.1SQL脚本转换映射对象的描述
一个ETL或者数据处理过程的程序块中会有一到多条SQL脚本。每个程序块通过一个TransformationTask对象进行描述,而程序块中的每条SQL脚本通过一个TransformationMap对象描述。
通过TransformationTask对象与TransformationMap对象的组合关系,可描述程序块与SQL脚本之间的包含关系。如图5所示,包括:
将数据处理过程中的每个程序块用元模型的数据转换任务类进行结构化描述,对每个程序块生成一个数据转换任务对象;
将程序块中的每条SQL脚本用元模型的数据转换映射类进行结构化 描述,对每条SQL脚本生成一个数据转换映射对象;
通过数据转换任务对象和数据转换映射对象的组合关系,描述数据处理过程的程序块与SQL脚本之间的组合关系。
4.2以数据转换处理单元(ClassifierMap)对象描述SQL脚本的数据转换处理逻辑
ClassifierMap对象是对脚本程序中的数据转换处理单元的结构化描述。一个SQL脚本包含一到多个数据转换处理单元,因此一个转换映射(TransformationMap)对象包含一到多个ClassifierMap对象。具体如图6所示。
下面提供了用于划分SQL脚本中数据转换处理单元的方法。首先对SQL脚本进行句型划分。SQL句型可分为如下7类:
■CREATE_SELECT句型
■INSERT_SELECT句型
■INSERT_ALL句型
■UPDATE_SELECT句型
■MERGE句型
■RENAME句型
■其他句型
下面分别叙述步骤S404中,针对不同句型将SQL脚本展开为一至多个数据转换处理单元,生成数据转换处理对象(ClassifierMap)的过程。
4.2.1CREATE_SELECT句型的ClassifierMap对象
在CREATE_SELECT句型的SQL脚本中,SQL脚本进行数据转换处理的最终输出目标是CREATE子句所创建的数据库表或者视图,而数据转换处理逻辑则包含在SQL脚本的SELECT子句中。对SELECT子句进行分析,可抽象出一个或者多个ClassifierMap对象,这些对象的类型可能是TRANS_SELECT、交并差集合操作类型TRANS_COMBINATION或者其他的ClassifierMap类型。
如图7-1所示,“CREATE_SELECT”句型中任意复杂的SELECT子句,可包含任意层嵌套SELECT子句、各种连接方式、交并差操作。
图7-1直到图7-11示出了不同句型SQL脚本生成对应数据转换处理(ClassifierMap)对象的示意图。其中实线为对应生成的数据转换处理对象,虚线框内为不同的SQL脚本句型、操作等,虚线框内不同的内容通过箭头示出了生成对应结构化描述中的各部分。
图7-12直到图7-15示出了对不同类型的数据转换处理对象进行展开描述的关系代数操作对象;
图7-16直到图7-21示出了将SQL脚本的关系代数操作对象细化描述为字段级映射对象;
4.2.2INSERT_SELECT句型的ClassifierMap对象
在INSERT_SELECT句型的SQL脚本中,SQL脚本进行数据转换处理的最终输出目标是INSERT子句中所指向的数据库表,而数据转换处理逻辑则包含在SQL脚本的SELECT子句中。对SELECT子句进行分析,可抽象出一个或者多个ClassifierMap对象,这些对象的类型可能是TRANS_SELECT、TRANS_COMBINATION或者其他的ClassifierMap类型。
如图7-2所示,“INSERT_SELECT”句型中任意复杂的SELECT子句,可包含任意层嵌套SELECT子句、各种连接方式、交并差操作。
4.2.3INSERT_ALL句型的ClassifierMap对象
INSERT_ALL句型有两种语法结构,如下所示:
■语法结构一:
INSERT ALL
INTO<table_name>VALUES<column_name_list)
INTO<table_name>VALUES<column_name_list)
<SELECT Statement>;
■语法结构二:
INSERT ALL
WHEN(<condition>)THEN
INTO<table_name>(<column_list>)
VALUES(<values_list>)
WHEN(<condition>)THEN
INTO<table_name>(<column_list>)
VALUES(<values_list>)
ELSE
INTO<table_name>(<column_list>)
VALUES(<values_list>)
SELECT<column_list>FROM<table_name>;
在INSERT_ALL句型的SQL脚本中,SQL脚本进行数据转换处理的最终输出目标是每个子句中所指向的数据库表,而数据转换处理逻辑则包含在SQL脚本的SELECT子句中。对SELECT子句进行分析,可抽象出一个或者多个ClassifierMap对象,这些对象的类型可能是TRANS_SELECT、TRANS_COMBINATION或者其他的ClassifierMap类型。这些ClassifierMap最后生成的结果集输入到一个TRANS_INSERTALL类型的ClassifierMap对象中。如图7-3所示,“INSERT_SELECT”句型中任意复杂的SELECT子句,可包含任意层嵌套SELECT子句、各种连接方式、交并差操作。
4.2.4UPDATE_SELECT句型的ClassifierMap对象
在UPDATE_SELECT句型的SQL脚本中,SQL脚本进行数据转换处理的最终输出目标是UPDATE子句中所指向的数据库表,而数据转换处理逻辑则包含在SQL脚本的SELECT子句中。对SELECT子句进行分析,可抽象出一个或者多个ClassifierMap对象,这些对象的类型可能是TRANS_SELECT、TRANS_COMBINATION或者其他的ClassifierMap类型。如图7-4所示。
4.2.5MERGE句型的ClassifierMap对象
对MERGE句型的SQL脚本进行解析处理时,生成一个TRANS_MERGE类型的ClassifierMap对象。
在MERGE句型SQL脚本的USING...ON...子句中,USING后面可以跟库表名或者SELECT子句。如果跟的是库表名A0,则可以作为SELECT子句SELECT*FROM A0处理。而TRANS_MERGE类型ClassifierMap对象的输入数据源则需要根据SELECT子句来确定,可能是一到多个数据库表,也可能是其他ClassifierMap对象。
MERGE句型SQL脚本的ClassifierMap对象生成如图7-5所示,“MERGE”句型中的库表名、或者任意复杂的SELECT子句,可包含任意层嵌套SELECT子句、各种连接方式、交并差操作。
4.2.6RENAME句型的ClassifierMap对象
对RENAME句型的SQL脚本进行解析处理时,生成一个类型为TRANTS_RENAME类型的ClassifierMap对象。该ClassifierMap对象的源数据实体和目标数据实体分别是RENAME之前的库表名和RENAME之后的库表名。如图7-6所示。
4.2.7SELECT子句中的ClassifierMap对象
在前面介绍的几类SQL脚本的句型,除了RENAME句型外,其他几类都包含有SELECT子句。这几类SQL脚本的数据转换处理(ClassifierMap)对象都需要从SELECT子句中抽象出来。
如果这些SELECT子句是简单SELECT子句,则抽象出1个简单查询“TRANS_SELECT”类型的ClassifierMap对象。也就是说,每个TRANS_SELECT类型的ClassifierMap对象描述一个简单SELECT子句。
如果这些SELECT子句是复杂SELECT子句,则需要分解为两个或者两个以上的简单SELECT子句,每个简单SELECT子句对应一个ClassifierMap对象。
4.2.7.1识别简单SELECT子句和复杂SELECT子句
简单SELECT子句是指投影列表或者FROM子句中没有嵌套SELECT子句,而且没有交并差操作的SELECT子句。不满足这些条件的SELECT子句属于复杂SELECT子句。
如果在SELECT子句的WHERE子句中嵌套了SELECT子句,仍然属于简单SELECT子句。这是因为在SQL解析中不对WHERE子句进行展开描述,这些嵌套的SELECT子句对结构化描述过程没有任何影响。
复杂SELECT子句可分为三种情况:
■投影操作中嵌套SELECT子句
■FROM子句中嵌套SELECT子句
■交并差操作
4.2.7.2简单SELECT子句的ClassifierMap对象
简单SELECT子句结构化描述为一个TRANS_SELECT类型的ClassifierMap对象。简单SELECT子句的FROM子句中参与连接操作的所有数据库表,都作为该ClassifierMap对象的输入数据实体。连接操作、WHERE子句所对应的选择操作、GROUP BY子句所对应的分组操作以及ORDER BY子句所对应的排序操作,都是属于该ClassifierMap对象中的关系代数操作对象(RelationalOperator对象)。
如图7-7所示,将图7-7中“WHERE...GROUP BY...ORDER BY...”描述为ClassifierMap对象中的关系代数操作对象,图7-7中“CM_SELECT_01”输出目标要依据嵌套该查询子句的上一层语句来确定。
简单SELECT子句本身并不能提供目标数据实体的信息,这个ClassifierMap对象的目标数据实体需要依据嵌套该SELECT子句的上一层语句来确定。
这个上一层语句有可能是如下几种句型的SQL脚本,根据前面对这几种句型的ClassifierMap对象描述方式,可以组合成一个完整的具有输入输出的数据流:
CREATE_SELECT句型
INSERT_SELECT句型
UPDATE_SELECT句型
MERGE句型
INSERT_ALL句型
如果上一层语句是一个复杂SELECT子句,则简单SELECT子句的输出作为上一层SELECT子句的输入处理。
下面介绍投影操作中嵌套SELECT子句、FROM子句中嵌套SELECT子句、交并差操作如何生成ClassifierMap对象。
4.2.7.3投影操作中嵌套SELECT子句
如果在SELECT子句的投影操作中存在嵌套的SELECT子句,则需要先解析嵌套的SELECT子句,生成相应的ClassifierMap对象,这些ClassifierMap对象的最终输出作为上一层SELECT子句所对应ClassifierMap对象的输入。如图7-8所示。
4.2.7.4FR0M子句中嵌套SELECT子句
如果SELECT子句的FROM子句中存在嵌套的SELECT子句,则需要先解析嵌套的SELECT子句,生成相应的ClassifierMap对象,这些ClassifierMap对象的最终输出作为上一层SELECT子句所对应ClassifierMap对象的输入。如图7-9所示。
4.2.7.6交并差操作
如果SELECT子句中存在交并差操作,则同一层SELECT子句中的所有交并差操作生成一个TRANS_COMBINATION类型的ClassifierMap对象。如图7-10所示。
4.2.7.7SELECT子句的多层嵌套
如果SELECT子句中还存在第三层甚至更多层的SELECT子句嵌套, 则依次对所嵌套的SELECT子句生成TRANS_SELECT类型的ClassifierMap对象,并将其作为上一层ClassifierMap对象的输入。
例如,解析下面的SQL脚本
INSERT INTO ta(fa1,fa2)
SELECT fb1,fb2 FROM
(
SELECT*FROM
(
SELECT fb1,fb2 FROM tb
)tb1
)tb2
上面的SQL脚本生成的ClassifierMap对象如7-11所示。
上面详细介绍了根据SQL脚本的各种句型生成对应的ClassifierMap数据转换处理对象的过程,下面介绍图4中步骤S406中生成关系代数操作对象的过程,详见下面4.3以及后续部分。
4.3以关系代数操作(RelationalOperator)对象描述SELECT子句的关系代数操作
在SQL脚本解析过程中,对SELECT子句生成TRANS_SELECT类型的ClassifierMap对象时,如果该SELECT子句中包含有WHERE子句、ORDER BY子句、GROUP BY子句,或者在FROM子句中有表连接操作,则生成相应的RelationalOperator对象。
对于4.2部分生成的CM_SELECT、CM_COMBINATION、CM_MERGE、CM_RENAME、CM_INSERTALL等数据转换处理单元,采用4.3.1-4.3.5进行结构化描述。
4.3.1CM_SELECT类型
CM_SELECT类型的ClassifierMap对象描述一个简单SELECT子句。 首先需要生成一个RelationalProjection对象描述该SELECT子句的投影操作。如果该SELECT子句还可能包含有WHERE子句、ORDER BY子句、GROUP BY子句,或者在FROM子句中有表连接操作,则需要生成相应的relationalSelection对象、relationalOrderBy对象、relationalGroupBy对象或者relationalJoin对象。
FROM子句中可能存在一到多个连接操作,需要对每个连接操作分别生成一个relationalJoin对象,并通过该对象的joinType属性标识该连接操作的类型。连接操作的操作类型定义如下:
●JOIN_INNER(内连接)
●JOIN_CROSS(笛卡尔乘积)
●JOIN_FULL_OUTER(全外连接)
●JOIN_LEFT_OUTER(左外连接)
●JOIN_RIGHT_OUTER(右外连接)
这些关系操作存在运算的先后顺序,该顺序需要通过连接操作的关联关系描述出来。SELECT子句的关系代数操作要求固定描述为如下顺序:连接→投影→选择→分组→排序。
INSERT INTO TA(…)
SELECT…FROM
TB LEFT JOIN TC ON…
LEFT JOIN TD ON…
RIGHT JOIN TE ON…
WHERE…GROUP BY…ORDER BY…
上面的SQL脚本的关系操作如图7-12所示。
4.3.2CM_COMBINATION类型
CM_COMBINATION类型的ClassifierMap对象描述同一层的SELECT子句之间的交并差操作。这些操作由1到多个RelationalCombination对象来完成。
在生成RelationalCombination对象时需要考虑交并差操作的类型和运算优先级。相同类型而且处于同一运算优先级别的交并差操作,生成一个RelationalCombination对象。
交并差操作的类型划分如下:
●UNION,描述集合并操作(去重)
●UNIONALL,描述集合并操作(不去重)
●MINUS,描述集合差操作
●INTERSECT,描述集合交操作
而运算优先级与交并差操作类型相关,同时受括号的影响。
下面的图7-13是针对下面的SQL脚本生成一个交并差操作的RelationalCombination对象的例子:
INSERT INTO TA(fa1,fa2)
SELECT fb1,fb2 FROM TB
MINUS
SELECT fc1,fc2 FROM TC
UNION
(
SELECT fd1,fd2FROM TD
UNION
SELECT fe1,fe2FROM TE
UNION
SELECT ff1,ff2FROM TF
)
4.3.3CM_INSERTALL类型
CM_INSERTALL类型的ClassifierMap对象描述SQL脚本的INSERT-ALL子句的数据转换处理单元。这个数据转换处理单元由1到多个投影操作来完成。每个投影操作生成一个RelationalProjection对象。如图7-14所示。
INSERT ALL
INTO TA(…)VALUES(…)
INTO TB(…)VALUES(…)
INTO TC(…)VALUES(…)
SELECT…FROM TD…
4.3.4CM_MERGE类型
CM_MERGE类型的ClassifierMap对象描述SQL脚本的MERGE子句的数据转换处理单元。这个数据转换处理单元由两到三个关系操作组成, 其中MERGE子句中的ON子句生成一个RelationalSelection对象,UPDATE子句和INSERT子句分别生成一个RelationalProjection对象。如图7-15所示。
MERGE INTO TB USING TA ON(TA.fa1=TB.fb1)
WHEN MATCHED THEN
UPDATE SET TB.fb2=TA.fa2,TB.fb3=TA.fa3,TB.fb4=100
WHEN NOT MATCHED THEN
INSERT(fb1,fb2,fb3,200)VALUES(fa1,fa2,fa3)
4.3.5CM_RENAME类型
CM_RENAME类型的ClassifierMap对象描述RENAME句型SQL脚本的数据转换处理单元。该单元由一个改名操作组成,需要对这个改名操作生成一个RelationalRename对象。
4.3.6CM_OTHERS类型
其他类型的ClassifierMap对象需要根据具体情况来确定由哪些关系操作组成。一般来说,需要生成一个投影操作RelationalProjection对象来描述该ClassifierMap对象的数据流。
上面对图4中步骤S406提取关系代数操作,生成对应的关系代数操作对象进行了详细说明,下面对SQL脚本的关系代数操作明细层根据步骤S408生成字段映射(FeatureMap)对象进行解释说明:
4.4以FeatureMap对象细化描述SQL脚本的关系操作
对数据实体的数据转换处理最终体现在字段的操作上。对这些数据转换处理逻辑进行描述的时候也一样,除了要抽象出一到多个RelationalOperator对象外,还需要通过FeatureMap对象对这个RelationalOperator对象的投影操作、RENAME操作、交并差操作逻辑进行字段级的描述。
4.4.1投影操作的细化描述
投影操作的细化描述将SELECT后面的投影列表结构化描述为FeatureMap对象。FeatureMap对象的description属性值填写投影表达式。
图7-16是SQL脚本一个简单查询子句生成一个RelationalProjection对象的例子,该对象包括3个FeatureMap对象:fb1+fc1、fb2+fc2、100。
FeatureMap对象的输入是某些库表、视图的几个字段,或者是其他FeatureMap对象的输出,这些相关的字段和FeatureMap对象要根据投影表达式来确定。如果投影表达式中只是一个常量,则该FeatureMap对象没有输入。FeatureMap对象的输出可能是其他库表、视图的某些字段,或者是某个ClassifierMap对象下面的某些FeatureMap对象。
如果在SELECT子句的投影列表中,某个投影表达式嵌套了下一层SELECT子句,则这个投影表达式所对应FeatureMap对象的输入就是下一层SELECT子句所对应的所有FeatureMap对象的输出。
如图7-17所示为投影列表中嵌套SELECT子句对应的FeatureMap对象。
如果在SELECT子句的FROM子句中嵌套的了下一层SELECT子句,则把下一层SELECT子句的ClassifierMap对象作为一个输入数据实体处理。处理方式与投影列表中嵌套SELECT子句的情况类似。
如图7-18所示为FROM子句中嵌套查询子句对应的FeatureMap对象。
4.4.2交并差集合操作描述
对SELECT子句中的交并差操作进行结构化描述,生成TRANS_INTERSECT、TRANS_UNION或者TRANS_EXCEPT类型的ClassifierMap对象。虽然生成的ClassifierMap对象只有集合操作没有投影操作,但是使用FeatureMap可以对这些集合操作进行字段级的结构化描述。
存在交并差操作的SELECT子句生成的FeatureMap如图7-19所示,这些FeatureMap对象必须按顺序建立输入数据实体、输出数据实体之间的关系。FeatureMap对象中的description属性值可以根据需要填写易于理解的描述内容。
4.4.3改名操作的细化描述
RENAME句型的SQL脚本RENAME TABLE A0 TO A1并没有做真正的数据转换处理,但是这类SQL脚本的执行效果与以下组合SQL脚本等效:
CREATE TABLE A1 AS SELECT*FROM A0;
DROP TABLE A0;
在使用ClassifierMap对象和FeatureMap对象描述RENAME句型的SQL脚本时,结果与解析上面的SQL脚本所输出的结果类似。如图7-20所示。
4.4.4MERGE句型中的FeatureMap对象
MERGE句型的SQL脚本中包含SELECT子句,因此解析这些SQL脚本会生成TRANS_SELECT或者交并差类型的ClassifierMap对象。此外,还会生成以下三类MERGE句型所特有的ClassifierMap对象:
■TRANS_MERGE类型
■TRANS_UPDATE类型
■TRANS_INSERT类型
如图7-21所示为一些ClassifierMap对象字段级结构化描述方式。
上述SQL脚本元数据生成方法将SQL脚本的数据转换处理逻辑划分为5个层次进行描述生成SQL脚本元数据,在此基础上提供相应的辅助分析功能,具有如下优点:
1.划分5个层次描述SQL脚本的数据转换处理逻辑,不同粒度的元数据可以灵活支持各种应用场景的需要;
2.同时支持表级和字段级的血统分析(指分析一个数据实体的数据来源),能够分析出某张库表、或者某个库表字段的数据来源和数据加工过程;
3.同时支持表级和字段级的影响分析,能够分析出修改某张库表、或者修改某个库表字段将会波及哪些ETL和数据处理过程的程序块、涉 及哪些库表和字段。
在结构化描述之后,就可以将SQL脚本根据语义通过结构化描述生成元数据,生成元数据之后可进一步将SQL脚本元数据进行分层图形展现,形成分层结构的数据地图,以从不同粒度展现数据仓库系统的数据链路和数据处理逻辑,为数据仓库系统的开发和运行维护提供直观的图形化辅助功能,图8为SQL脚本元数据图形展现的流程图,如图8包括:
802:根据SQL脚本元模型的5层结构定义5类数据地图入口,通过指定不同类型的对象启动数据地图
804:根据数据地图入口,将元数据库中的SQL脚本元数据进行正向连通、反向连通和/或双向连通分析:
具体地,以数据地图入口的对象为起点,沿着对象之间的关系进行正向、反向或者双向连通分析,获得连通范围内的SQL脚本元数据;
以SQL脚本元数据中的对象为结点,以对象之间的关系为边,确定数据地图展现范围,根据预先设置的数据地图中各种图形元素对应的标记符,图形元素包括SQL脚本元模型中各种类的结点和边的图形表示符号。
获得连通范围内的SQL脚本元数据后,作为数据地图的展现范围;SQL脚本元数据被读取出来,传入前端进行图形展现,进行布局和画图处理;
806:根据确定的展现范围分层展现数据地图;
808:对数据地图中的结点进行自动布局。
其中,结点和边是图论中的术语。图论中的图是结点和边的集合。
8.SQL脚本元数据的图形展现
对于图G,如果指定某个主题T,图G针对该主题中的每个结点所生成正向连通图的并集所形成的子图,称为图G针对主题T生成的正向连通图。
以此类推,相同原理可以定义图G针对主题T生成的反向连通图和双向连通图。
在实际应用中,一般以所关心的数据源接口文件或者指标来定义主题,以查看这个主题的正向、反向或者双向连通图。
8.1图形入口和展现层次控制
在打开数据地图页面或者调用图形接口获取数据地图数据时,需要预先指定图形展现的范围、内容和展现层次。这里根据数据地图应用场景定义5类图形入口:
■第一种:对指定的作业或者数据实体,生成正向、反向或者双向连通图,并按指定的图形层次展现数据地图(第1层至第5层)
■第二种:对指定的主题,生成正向、反向或者双向连通图,并按指定的图形层次展现数据地图(第1层至第5层)
■第三种:对指定的作业,展现其内部数据处理逻辑,并按指定的图形层次展现数据地图(第2层至第5层)
■第四种:对指定的TransformationMap对象,展现其内部数据处理逻辑,并按指定的图形层次展现数据地图(第3层至第5层)
■第五种:对指定的ClassifierMap对象,以第4层至第5层图形展现其内部数据处理逻辑
如果通过第一到第五类图形入口打开一个数据地图页面,其数据地图首先以指定的图形层次展现,同时提供一个图形层次划杠,通过移动划杠可以改变图形展现层次,以更粗或者更细粒度展现数据地图。通过不同图形入口打开的数据地图,其层次变化范围有所不同,具体的变化范围见表2:
表2不同入口的图形层次变化范围
图形入口 | 图形层次变化范围 |
第一种 | 在第1层到第5层之间变化 |
第二种 | 在第1层到第5层之间变化 |
第三种 | 在第2层到第5层之间变化 |
[0368]
第四种 | 在第3层到第5层之间变化 |
第五种 | 在第4层到第5层之间变化 |
8.2图形元素
图形元素用于定义元模型中的各种类的结点和边的图形表示符号,这些结点的类型包括了5层数据地图所涉及的所有结点。为了方便描述,这里处理定义图形元素外,还为每类结点定义一个标记符,用于后续说明图形展现方式和布局方式。如表3所示。
表3各种图形对象的标记符和图形元素定义
SQL语句的内部逻辑结构中图形上表现为各种操作单元以及这些操作单元之间的数据流关系。这些操作单元的图形元素定义如表4:
表4SQL操作单元的标记符和图形元素定义
其中的连接操作需要按连接操作分类定义不同的标记符和图形元素。如表5。
表5连接操作的标记符和图形元素定义
8.3图形展现和布局
图形展现方式是指在明确图形展现范围和层次的情况下,如何对该层数据地图的结点集合和边集合以图形方式表达出来。结点与边的图形展现方式如图9所示,
在绘图的时候,其中的结点01、结点02和边01要根据图形元素定义,要更换为对应的图形元素。
另外,需要考虑图形布局问题,特别是结点数量比较大的时候,良好的布局有助于提高数据地图的可读性。
在绘制数据地图时,图形是画在画布上。如果结点数据很庞大,画布相应也会很大,从而超出页面显示框的范围,这时需要提供画布的移动功能,将需要查看的局部移入显示框的范围内。
8.3.1作业层的图形展现
作业层图形用于表现数据实体与数据转换任务对象之间的数据输入输出关系,图形展现效果如图10-1所示。在绘图时,图中的结点要根据结点类型展现为对应的图形元素,以数据实体对象和数据转换任务对象为结点,以对象间的数据输入输出关系为边,展现作业层图形。
8.3.2SQL脚本层的图形展现和布局
SQL脚本层是针对一个数据处理过程(主要是脚本程序),将其数据处理逻辑按SQL脚本对象为单元进行展开描述,以表现其中的库表、文件、临时表等数据实体与SQL脚本对象之间的数据流关系。
如果存在一些非SQL语句实现的数据处理逻辑,如文件的读写操作、游标操作等,则在这一层中直接以ClassifierMap对象作为展现单元,表现这些ClassifierMap对象与库表、文件和临时表等数据实体之间的数据流关系。
SQL语句层的图形展现效果如图10-2所示。以数据实体对象和数据转换映射对象为结点,以对象之间的数据输入输出关系为边,展现将SQL脚本层图形,在绘图时,图中的结点要根据结点类型展现为对应的图形元素。
8.3.3关系代数操作层的图形展现
关系代数操作层是将指定SQL脚本对象的内部数据处理逻辑展开,将ClassifierMap对象和RelationalOperator对象转换为相应的操作单元进行展现,以表现SQL语句内部的数据处理逻辑,如交并差、连接、投影等操作。
表6元数据对象与操作单元的对应关系
该层的图形展现效果如图10-3,以关系代数操作对象和数据实体对象为结点,以对象之间的依赖关系为边,展现关系代数操作层图形。在绘图时,图中的结点要根据结点类型展现为对应的图形元素。
本领域技术人员应了解,依赖关系是面向对象技术中的一个专业术语,对象间的关系可以分为如下几种:依赖关系、关联关系、聚合关系、组合关系,一般依赖<关联<聚合<组合。
对于MERGE句型的SQL语句,需要通过MERGE操作、MERGE_INSERT操作和MERGE_UPDATE操作这三个特殊的操作单元来展现其数据处理逻辑。如图10-4所示。
MERGE INTO A01 USING A00
WHEN MATCHED THEN
UPDATE SET...
DELETE WHERE(...)
WHEN NOT MATCHED THEN
INSERT VALUES(...)
8.3.4关系代数操作明细层的图形展现
将关系代数操作层图形的每个数据实体展开到字段粒度,ClassifierMap对象展开到FeatureMap粒度,并图形表现数据实体的字段与字段级映射对 象之间的关系,则形成关系代数操作明细层的图形展现。
图形展现范围:
展现一个指定TransformationMap对象所包含的明细数据处理逻辑。
数据实体展开到字段粒度的图形展现方式如下表7:
数据实体A01 |
字段A01.F01 |
字段A01.F02 |
字段A01.F03 |
... |
ClassifierMap对象展开到FeatureMap粒度的图形展现方式如下表8:
Transformer01 |
FeatureMap01 |
FeatureMap 02 |
FeatureMap 03 |
... |
在数据实体和ClassifierMap对象都展开到Feature粒度后,他们之间的数据流向关系连线也要表现Feature之间的关系。
对于数据实体到ClassifierMap对象之间的关系,展开明细层的图形展现方式如下图10-5所示:
8.3.5图形布局方式
图形的总体布局方式,是按照数据流向从左向右绘图,边的方向指向右边。在最简单的情况下,图形是线性单向的数据流,其基本布局是直线布局,如图10-6所示。
如果图形横向太长,可在直线布局的基础上采用上下交错错位的布局方式,以缩短图形横向长度,如图10-7所示。
如果图形中出现回路,而且这个回路出现在两个结点之间,必须调整边的位置以避免两条边重叠,如图10-8所示。
如果这个回路出现在多个结点之间,则可以调整结点的交错位置,以 避免不同的边重叠为一条直线,如图10-9所示.
如果从一个结点出发有两条或者多条边,则以扇形方式布局,如图10-10所示。
在图10-10的结点02到结点06之间,如果也存在一些边,则相关结点按前面布局方式处理,如图10-11所示。
对于很多企业的数据仓库系统来说,大部分数据处理过程采用脚本程序实现,其实现方式相对ETL工具来说,具有更大的自由度。对这些数据处理过程进行元数据描述时有着很大的随意性。脚本程序这个实体应该用CWM元模型的哪些类和关系去描述?脚本程序中的各种数据处理逻辑应该用CWM元模型的哪些类和关系去描述?SQL脚本和这些脚本中所包含的各种关系代数的操作,又应该如何去描述?如何把握结构化描述的粒度?如果这些问题得不到解决,即使完全遵守CWM规范,也会得出五花八门的结果,集中管理的元数据规格不一,无法形成统一的数据地图,元数据管理也就失去了意义。本发明对ETL和数据处理过程中的SQL脚本建立了具有明确语义表达能力的元模型,形成五层SQL脚本数据流语义结构化描述和数据地图展现的解决方案。依据该方法可以对数据仓库系统的SQL脚本展开描述,形成规格统一、层次分明的元数据,并基于这些元数据形成层次化的数据地图展现,满足不同场景对数据地图展现粒度的不同要求。
本发明的SQL脚本元数据将SQL脚本的数据转换处理逻辑划分为5个层次进行描述,在此基础上提供相应的辅助分析功能和数据地图图形展现,能够很好地满足数据仓库系统日常开发运维的需要,具有如下优点:
1.划分5个层次描述SQL脚本的数据转换处理逻辑,不同粒度的元数据可以灵活支持各种应用场景的需要;
2.同时支持表级和字段级的血统分析,能够分析出某张库表、或者某个库表字段的数据来源和数据加工过程;
3.同时支持表级和字段级的影响分析,能够分析出修改某张库表、或者修改某个库表字段将会波及哪些ETL和数据处理过程的程序块、涉及哪些库表和字段;
4.基于5层元数据进行数据地图展现,满足不同层次的需要。既可以查看宏观的作业级数据地图,了解数据仓库系统的整体数据加工链路,也可以查看某个作业内部的SQL脚本执行过程,了解作业的数据处理步骤。如果要了解SQL脚本内部数据处理逻辑,可以进一步图形化展现SQL脚本的内部结构,通过数据转换处理对象、关系代数操作对象的图形化展现,提供可视化的图形展现,再复杂的SQL脚本的数据处理逻辑也变得一目了然,可以提供相应的辅助分析和数据地图图形展现。
对于固件和/或软件实施方案,可用执行本文描述的功能的模块(例如,过程、步骤、流程等)来实施所述技术。固件和/或软件代码可存储在存储器中并由处理器执行。存储器可实施在处理器内或处理器外部。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
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脚本层图形;
以数据实体对象和数据转换处理对象为结点,以对象之间的数据输入输出关系为边,展现数据转换处理层图形;
以数据实体对象和关系代数操作对象为结点,以对象之间的依赖关系为边,展现关系代数操作层图形;
将关系代数操作层的每个数据实体展开到字段粒度,将投影操作对象展开到字段级映射对象,并图形表现数据实体的字段与字段级映射对象之间的关系,形成关系代数操作明细层的图形;
将上述图形中的结点根据结点类型展现为对应的图形元素并进行图形布局。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010238389.5A CN102339295B (zh) | 2010-07-23 | 2010-07-23 | Sql脚本的结构化元数据生成方法及数据地图生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010238389.5A CN102339295B (zh) | 2010-07-23 | 2010-07-23 | Sql脚本的结构化元数据生成方法及数据地图生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102339295A true CN102339295A (zh) | 2012-02-01 |
CN102339295B CN102339295B (zh) | 2014-01-29 |
Family
ID=45515032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010238389.5A Active CN102339295B (zh) | 2010-07-23 | 2010-07-23 | Sql脚本的结构化元数据生成方法及数据地图生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102339295B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737134A (zh) * | 2012-06-29 | 2012-10-17 | 电子科技大学 | 适用于大规模实时数据流的查询处理方法 |
CN106940725A (zh) * | 2017-03-21 | 2017-07-11 | 深圳微众税银信息服务有限公司 | 一种征信数据存储调度方法及系统 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
CN109102754A (zh) * | 2018-06-20 | 2018-12-28 | 新华三大数据技术有限公司 | 数据地图的生成方法及装置 |
CN109815378A (zh) * | 2019-01-31 | 2019-05-28 | 三盟科技股份有限公司 | 一种基于元数据链路的数据追踪方法及系统 |
CN109871417A (zh) * | 2018-12-29 | 2019-06-11 | 国家开发银行 | 基于知识图谱的元数据可视化地图构建方法及系统 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
US10942922B2 (en) | 2015-09-28 | 2021-03-09 | Microsoft Technology Licensing, Llc | Generation of data flow from syntax tree |
CN116680299A (zh) * | 2023-06-05 | 2023-09-01 | 粤港澳大湾区(广东)国创中心 | 数据库查询方法、系统、存储介质以及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508728A (zh) * | 2002-12-18 | 2004-06-30 | �Ҵ���˾ | 使用元数据在关系数据库中创建多维数据集的方法和系统 |
-
2010
- 2010-07-23 CN CN201010238389.5A patent/CN102339295B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508728A (zh) * | 2002-12-18 | 2004-06-30 | �Ҵ���˾ | 使用元数据在关系数据库中创建多维数据集的方法和系统 |
Non-Patent Citations (2)
Title |
---|
于清丽: "基于XML数据平台的元数据整合", 《现代情报》 * |
林毅等: "基于元数据的数据整合平台", 《计算机应用》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737134A (zh) * | 2012-06-29 | 2012-10-17 | 电子科技大学 | 适用于大规模实时数据流的查询处理方法 |
US10942922B2 (en) | 2015-09-28 | 2021-03-09 | Microsoft Technology Licensing, Llc | Generation of data flow from syntax tree |
CN106940725A (zh) * | 2017-03-21 | 2017-07-11 | 深圳微众税银信息服务有限公司 | 一种征信数据存储调度方法及系统 |
CN106940725B (zh) * | 2017-03-21 | 2019-12-27 | 深圳微众税银信息服务有限公司 | 一种征信数据存储调度方法及系统 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
CN109102754A (zh) * | 2018-06-20 | 2018-12-28 | 新华三大数据技术有限公司 | 数据地图的生成方法及装置 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN110874367B (zh) * | 2018-09-03 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN109871417A (zh) * | 2018-12-29 | 2019-06-11 | 国家开发银行 | 基于知识图谱的元数据可视化地图构建方法及系统 |
CN109815378A (zh) * | 2019-01-31 | 2019-05-28 | 三盟科技股份有限公司 | 一种基于元数据链路的数据追踪方法及系统 |
CN116680299A (zh) * | 2023-06-05 | 2023-09-01 | 粤港澳大湾区(广东)国创中心 | 数据库查询方法、系统、存储介质以及设备 |
CN116680299B (zh) * | 2023-06-05 | 2024-04-09 | 粤港澳大湾区(广东)国创中心 | 数据库查询方法、系统、存储介质以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102339295B (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102339295B (zh) | Sql脚本的结构化元数据生成方法及数据地图生成方法 | |
US20080046422A1 (en) | System and Method for Planning and Generating Queries for Multi-Dimensional Analysis using Domain Models and Data Federation | |
US11893026B2 (en) | Advanced multiprovider optimization | |
CN105808853A (zh) | 一种面向工程应用的本体构建管理与本体数据自动获取方法 | |
CN107491476A (zh) | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 | |
CN108829884A (zh) | 数据映射方法及装置 | |
CN105243237A (zh) | 一种装配工艺结构树及其构建方法 | |
US20070288119A1 (en) | Automatic Data Configuration Strategy, Such as For Storing and Manipulating Product Manufacturing Data | |
Schleipen et al. | The CAEX tool suite-User assistance for the use of standardized plant engineering data exchange | |
US11188540B2 (en) | Filter and join operations in query processing | |
EP3206143B1 (en) | System and method for managing variations in a product structure for a product | |
Du et al. | Ontology-Based Information Integration and Decision Making in Prefabricated Construction Component Supply Chain. | |
US10140387B2 (en) | Model for managing variations in a product structure for a product | |
EP2698734A2 (en) | Model for managing variations in a product structure for a product | |
US20170322988A1 (en) | Relational Conversion of Multiprovider Operations in a Calculation Scenario for Executing a Query | |
CN105893668B (zh) | 一种基于流语义的物料形态变化功能分解方法 | |
Morales-Palma et al. | Enhanced Metamodels Approach Supporting Models for Manufacturing (MfM) Methodology | |
Rivero et al. | A reference architecture for building semantic-web mediators | |
CN103366234A (zh) | 作业流程管理系统及方法 | |
Tang et al. | A feature-oriented database framework for web-based CAx applications | |
US11372863B2 (en) | Ranking filter operation for calculation scenarios | |
CN1432948A (zh) | 一种物料清单电脑软件整合方法 | |
Sanyal et al. | Physical level implementation of a web data model | |
SRAI et al. | INTEGRATION OF THE MDA APPROACH IN DOCUMENT-ORIENTED NOSQL DATABASES, GENERATION OF A PSM MODEL FROM A PIM MODEL | |
Berkani¹ et al. | Check for updates Augmented Data Warehouses for Value Capture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |