CN105843605A - 一种数据映射方法及装置 - Google Patents
一种数据映射方法及装置 Download PDFInfo
- Publication number
- CN105843605A CN105843605A CN201610153764.3A CN201610153764A CN105843605A CN 105843605 A CN105843605 A CN 105843605A CN 201610153764 A CN201610153764 A CN 201610153764A CN 105843605 A CN105843605 A CN 105843605A
- Authority
- CN
- China
- Prior art keywords
- mapping
- subquery
- information
- data
- ruler
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据映射方法,包括:获取用于实现当前映射的每层子查询中的数据映射规则;根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。本发明还提供了一种数据映射装置。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据映射方法及装置。
背景技术
目前根据业界数据映射开发的整体情况,对于涉及分析类系统的项目,主要通过数据映射标准文档进行产品数据映射规则的管理,并依据该文档进行数据映射程序的开发,而且数据映射程序的开发方式,仍整体以手工编码(Hand-Coded)为主。目前产品映射开发、管理的方式主要存在如下问题:
1、映射规则通过EXCEL文档进行管理,由于EXCEL文档仅作为程序开发的参考,往往出现映射文档的映射规则同最新映射程序逻辑存在差异的情况。
2、映射程序的开发往往由多名开发人员负责开发,映射程序的代码风格无法有效的统一,代码质量、可读性参差不齐,需要项目组花大量的时间进行映射程序代码复查工作。
3、各产品间数据映射涉及到的数据集存在较多的交集,但是由于产品各自进行数据映射规则的整理及映射程序的设计,存在重复的工作量,许多已存在的数据映射规则及程序无法得到有效的复用。
4、数据映射的程序为手边编码完成的PLSQL程序,这种手工编码方式在应对数据映射规则变化以及数据映射规则错误的情况灵活性较差,均需要通过直接调整数据映射程序进行修复。
可见,以上手工编码映射程序的方式将花费大量的人力在映射程序的编写及修复上,且映射程序的复用性较差。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种数据映射方法及装置,使实现节省编写映射程序所花费的人力且提高映射程序复用性的目的。
为实现上述目的,本发明实施例提供了一种数据映射方法,包括:
获取用于实现当前映射的每层子查询中的数据映射规则;
根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;
获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
本发明实施例还提供了一种数据映射装置,包括:
映射规则获取单元,用于获取用于实现当前映射的每层子查询中的数据映射规则;
执行码获取单元,用于根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;
对应关系取单元,用于获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
第一映射实现单元,用于基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
本发明实施例提供的数据映射方法及装置,通过预先配置的数据映射规则,基于这些数据映射规则可自动生成映射执行码,因此只需要关心对数据映射规则的调整,这样可节省编写映射程序所花费的人力,当各产品间数据映射涉及到的数据集存在较多的交集时,各产品可使用同一映射执行码,保证了映射程序的复用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例对数据映射规则模型分解以及映射规则编译解析示意图;
图2为本发明实施例数据映射方法的流程示意图;
图3为本发明实施例数据映射方法的具体实现示意图;
图4为本发明实施例数据映射信息的维护、检验、解析、部署、执行示意图;
图5为本发明实施例数据映射规则的维护和校验流程示意图;
图6为本发明实施例数据映射装置的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
数据映射常指的是基于给定的两个数据模型,在模型之间建立起数据元素的对应关系的过程。对于多数后线数据集市类系统、指标分析类系统,数据映射是数据集成任务的第一步。
为了实现数据映射,首先需要建立一个数据映射规则模型,以便基于该数据映射规则模型实现数据映射。下面首先对数据映射规则模型涉及的内容进行具体介绍:
对于数据映射规则模型而言,首先可以简单划分为映射源(Data Mapping SourceEnt i ty)和映射目标(Data Mapping Source Ent i ty),数据映射规则模型中最小粒度的数据模型在本方案中暂定为数据表(Table),比如可以存在N个数据表,完成数据映射可能需要一个或多个子查询(SubQuery),所以,映射源包括至少一个表、或者包括至少一个表和至少一个子查询,简单的映射源可以为一张数据表,而复杂的映射源可以是一个复杂度不同的子查询,比如是包括多张表以及嵌套多层子查询的一个复杂子查询。
因此,建立数据映射规则模型是为子查询建立模型、为映射源与映射目标之间的映射关系建立模型。数据映射规则模型主要包含如下信息:
(1)、映射基本信息
①、映射ID
映射的唯一标识。
②、子查询ID
子查询的唯一标识。不同映射间所涉及的子查询不要出现复用的情况,以减少映射与映射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
③、子查询配置项类型及配置项
采用数据冗余的方式进行子查询配置类型及其对应配置项的存储,目的在于减少传统三范式多表关联的情况,降低参数配置的复杂度,因此接下来将统一对查询配置类型及其对应的配置项的模型配置关系进行介绍。
配置项类型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
ⅰ、ITEM(子查询数据项),即子查询查询结果中的各个数据项。
ITEM涉及的配置项及其说明:
ii、ENT(子查询主实体)。
ENT涉及的配置项及其说明:
iii、JOIN(关联查询),该关联查询类型包括JOIN-I、JOIN-L、JOIN-R、JOIN-F四个字类型,定义如下:
JOIN-I:内关联,内连接(INNER JOIN)操作;
JOIN-L:左关联,左连接(LEFT JOIN)操作;
JOIN-R:右关联,右连接(RIGHT JOIN)操作;
JOIN-F:全关联,全连接(FULL JOIN)操作。
JOIN涉及的配置项及其说明:
ⅳ、FILTER(过滤项)。
FILTER涉及的配置项及其说明:
配置项 | 配置项说明 |
FILTER_ITEM | 过滤项。用于填写子查询的过滤条件。 |
ⅴ、AGG(分组汇总项)。
AGG涉及的配置项及其说明:
vi、ORDER(排序项)。
ORDER涉及的配置项及其说明:
配置项 | 配置项说明 |
ORDER_BY_ITEM | 排序项。排序项必须是子查询数据项的子集 |
ⅶ、UNION(合并项)。
UNION涉及的配置项及其说明:
viii、HINT(提示项)。
HINT涉及的配置项及其说明:
(2)、映射数据项信息
①、映射ID
映射的唯一标识。
②、映射目标实体
标识映射目标,由于映射目标通常为数据表,因此此处体现的是映射目标表的表名。
③、映射源
由于映射源本身也可认定一个复杂度不同的子查询,因此该项体现的是最终作为映射源的子查询的ID。
④、是否为匹配键
该项主要体现了在MERGE_INSERT_ONLY、MERGE_UPDATE_ONLY、MERGE_UPDATE_INSER映射模式下,数据映射源同数据映射目标用于匹配的数据项,对于INSERT模式对【是否为匹配键】不关注,MERGE语句是SQL语句的一种。
MERGE_INSERT_ONLY:MERGE操作中,仅插入匹配键与目标表无法匹配上的数据;MERGE_UPDATE_ONLY:MERGE操作中,仅更新匹配键与目标表匹配的数据;MERGE_UPDATE_INSERT:MERGE操作中,更新匹配键与目标表匹配的数据,同时插入匹配键与目标表无法匹配上的数据;INSERT:直接执行INSERT操作。
⑤、映射目标实体数据项、映射源实体数据项。
该两项体现的即为映射源同映射目标数据项之间的对应关系。
(3)、映射子查询基本信息
字段英文名 | 字段含义 | 数据类型 |
MAPPING_ID | 映射ID | VARchar2(100) |
SUBQUERY_ID | 子查询ID | VARchar2(100) |
DESCRIPTION | 描述 | VARchar2(4000) |
SQL_STATEMENT | 子查询解析后SQL | CLOB |
①、映射ID
映射的唯一标识
②、子查询ID
子查询的唯一标识。不同映射间的子查询不要出现复用的情况,以减少映射与映射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
③、描述
子查询描述信息
④、子查询解析后SQL
用于记录解析程序解析映射配置业务规则后生成的SQL。
(4)、映射子查询配置信息
①、映射ID
映射的唯一标识。
②、子查询ID
子查询的唯一标识。不同映射间所涉及的子查询不要出现复用的情况,以减少映射与映射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
③、子查询配置项类型及配置项
采用数据冗余的方式进行子查询配置类型及其对应配置项的存储,目的在于减少传统三范式多表关联的情况,降低参数配置的复杂度,因此接下来将统一对查询。配置类型及其对应的配置项的模型配置关系进行介绍。
配置项类型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
ⅰ、ITEM(子查询数据项),即子查询结果中的各个数据项。
ITEM涉及的配置项及其说明:
ii、ENT(子查询主实体)。
涉及配置项及其说明:
iii、JOIN(关联查询),该关联查询类型包括JOIN-I、JOIN-L、JOIN-R、JOIN-F四个字类型,定义如下:
JOIN-I:内关联,内连接(INNER JOIN)操作;
JOIN-L:左关联,左连接(LEFT JOIN)操作;
JOIN-R:右关联,右连接(RIGHT JOIN)操作;
JOIN-F:全关联,全连接(FULL JOIN)操作。
JOIN涉及的配置项及其说明:
ⅳ、FILTER(过滤项)。
FILTER涉及的配置项及其说明:
配置项 | 配置项说明 |
FILTER_ITEM | 过滤项。用于填写子查询的过滤条件。 |
ⅴ、AGG(分组汇总项)。
AGG涉及的配置项及其说明:
vi、ORDER(排序项)。
ORDER涉及的配置项及其说明:
配置项 | 配置项说明 |
ORDER_BY_ITEM | 排序项。排序项必须是子查询数据项的子集 |
ⅶ、UNION(合并项)。
UNION涉及的配置项及其说明:
viii、HINT(提示项)。
HINT涉及的配置项及其说明:
(5)、映射变量信息
字段英文名 | 字段含义 | 数据类型 |
VAR_ID | 变量ID | VARchar2(100) |
VAR_PROPERTY | 变量属性 | VARchar2(100) |
VAR_EXPRESSION | 变量赋值表达式 | VARchar2(4000) |
VAR_REF_MAPPING | 关联映射ID | VARchar2(100) |
①、变量ID
映射相关变量的唯一标识。
②、变量属性
变量分为公共变量和私有变量。
PUB表示公共变量,PRI表示私有变量。
③、变量赋值表达式
定义变量的赋值表达式,可以是一个简单的字符、数值,也可以是复杂的计算表达式。
④、关联映射ID
对于私有变量,必须在该项上维护变量所关联的映射ID信息,公共变量不涉及映射ID信息。
基于上述数据映射规则模型,通过递归式地对数据映射规则模型进行逐层解析,自动化的形成各个数据模型之间数据元素的对应关系或者处理关系,最终转换为Oracle数据可识别的可执行程序。具体地,参见图1所示的对数据映射规则模型分解以及映射规则编译解析示意图,首先按照“表=>子查询=>映射源实体=>映射目标实体”的顺序进行递归解析,即,根据数据映射规则模型中的数据表与数据表之间的关联关系,建立各个子查询的映射规则,并定义这些数据表与这些子查询组成的映射源实体,还要定义映射目标实体(即数据表)。然后,基于解析结果按照Oracle数据库的SQL语法规则,生成可执行的SQL映射程序,同时为保障SQL映射程序的性能得到保障,在编译、解析SQL映射程序的过程中,同时会解决数据映射规则模型中的HINT提示信息,能够有效地控制可执行程序的执行计划,保障程序性能的稳定。
基于上述数据映射规则模型以及生成的SQL映射程序,便可根据用户的数据映射要求实现数据映射,参见图2,为本发明实施例提供的数据映射方法的流程示意图,该方法包括以下步骤:
步骤201:获取用于实现当前映射的每层子查询中的数据映射规则。
在本发明实施例中,对于每一映射(即数据表与数据表之间的数据元素的对应关系),可能会涉及到一个或多个子查询,且子查询之间可能是具有层级关系的,具有层级关系的子查询之间需要按照层级顺序执行查询操作。比如,对于当前映射(所述当前映射可以是数据映射规则模型中定义的所有映射ID中的任意映射ID对应的映射操作),需要通过M(M≥1)个子查询中的数据映射规则来实现,这些子查询按照层级划分为第1层、……第M层,其中,每一层级中可能有一个或多个子查询,第1层中的每个子查询均是最上层子查询即是最先执行的子查询操作,假设第1层中的子查询A是第2层的子查询B的执行条件时,那么子查询B就是子查询A的下层子查询,假设第2层中的子查询B是第3层的子查询C的执行条件时,那么子查询C就是子查询B的下层子查询,依次类推。而为了获取每一层级中的各个子查询的数据映射规则,首先需要获知所述当前映射所涉及的所有子查询,再从这些子查询中找出所有最上层子查询,然后再根据最上层子查询找到与之关联的下层子查询,再根据该下层子查询进一步找到更下一层的子查询,直到找到最下层子查询为止,确定这些子查询之间的层级关系的过程即为获取各层级子查询的数据映射规则的过程。
基于上述内容,按照下述方式实现步骤201:
步骤301:获取用于实现所述当前映射的各个子查询;
步骤302:从所述各个子查询中提取所有最上层子查询;
步骤303:获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。
在本发明实施例中,上述数据映射规则模型中涉及的信息即为映射规则信息,而为了现实数据映射,需要预先存储映射规则信息,所述映射规则信息包括映射基本信息、映射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息。其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息(各个信息的具体介绍请参见上述对数据映射规则模型的介绍)。
参见图3所示的数据映射方法的具体实现示意图。具体是对数据映射规则模型的解析、部署、执行流程:
①、解析
数据映射公共机制中,通过递归的方式逐层解析映射源(子查询)中各个本层、下层子查询中的数据映射规则,并将数据映射规则逐层转换为可执行的子查询SQL执行码,并结合映射数据项信息,生成执行的映射执行码。
②、部署
生成子查询SQL执行码、映射SQL执行码后,将子查询SQL执行码回写到映射子查询基本信息中的SQL_STATEMENT项、将映射SQL执行码回写到映射基本信息、完成部署动作。
③、执行
公共调用模块从映射基本信息中找到各个映射的执行码,并通过动态SQL的方式运行执码。
基于上述内容,下面介绍步骤301至步骤303的具体实现方式:
对于步骤301,由于所述映射基本信息中涵盖了各个预设映射操作所涉及的各个子查询操作的相关信息,所以,在实现步骤301时,具体可从所述映射基本信息中提取用于实现所述当前映射的各个子查询信息;
对于步骤302,由于所述映射子查询配置信息中涵盖了关于每一预设映射操作下的属于每一层级中的每一子查询的数据映射规则信息,其包含了层级方面的信息,所以,在实现步骤302时,具体可根据所述映射子查询配置信息,从所述各个子查询信息中提取所有最上层子查询信息;
对于步骤303,由于所述映射子查询配置信息中涵盖了关于每一预设映射操作下的属于每一层级中的每一子查询的数据映射规则信息,其包含了每一子查询中的数据映射规则信息,所以,在实现步骤303时,具体可从所述映射子查询配置信息中获取所述最上层子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下层子查询中的数据映射规则信息。
步骤202:根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码。
在本发明实施例中,由于通过对上述数据映射规则模型进行递归解析,已经预先生成并保持了每一子查询的SQL程序,因此,对于步骤202,具体可基于保存的SQL程序,根据所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询SQL执行码,并将生成的SQL执行码回写入所述映射子查询基本信息的SQL_STATEMENT项中,所以,如果SQL_STATEMENT项中存储有用于实现所述当前映射的子查询SQL执行码,则可直接从SQL_STATEMENT中调用该子查询SQL执行码,因此,对于步骤202,还可以从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询执行码。
步骤203:获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系。
对于步骤203,由于所述映射数据项信息中包括了每一预设映射操作的映射源数据项与映射目标数据项之间的对应关系,其中包含了当前映射的映射源实体(至少一个源数据表)与映射目标实体(至少一个目标数据表)之间的数据元素之间的对应关系,所以,在实现步骤302时,具体可从所述映射数据项信息中提取所述当前映射的映射源数据项与映射目标数据项之间的对应关系。
步骤204:基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
由于所述映射变量信息包括每一映射操作所涉及的变量信息,其中公共变量是所有映射操作涉及的变量,私有变量某一特定映射操作涉及的变量,将所述当前映射涉及的所有变量信息、以及当前映射的映射源数据项与映射目标数据项之间的对应关系作为所述子查询执行码的输入参数后,便得到一套用于实现当前映射的映射执行码。所以,对于步骤204,具体可将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当前映射。
进一步地,本发明实施例还可以将所述映射执行码存储在所述映射基本信息的SQL项中,其目的是在实现所述当前映射时,可直接从所述映射基本信息的SQL项调用用于实现所述当前映射的映射执行码,因此,在执行步骤201之前,本发明实施例还包括:
判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码;若是,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实现所述当前映射;若否,则执行步骤201。
为了实现参数化配置规则、统一公共模块调用执行的新模式,必须有一套完整、统一的公共模块对数据映射规则模型进行维护、检验、解析、部署、执行。参见图4所示的数据映射信息的维护、检验、解析、部署、执行示意图,该公共模块主要分为两个部分,第一个部分为面向开发人员的前端WEB应用客户端界面,开发人员通过WEB客户端进行数据映射规则模型的维护和校验,第二个部分为统一的数据映射组件,数据映射组件实现的功能包括映射的解析、部署、执行三大块功能,即,首先解析数据映射规则模型,然后根据解析出的映射规则生成并部署数据映射执行码,最后执行部署后的数据映射程序,从而实现数据映射(第二部分的具体实现方式请参见前述内容)。这里对数据映射规则模型的维护和校验流程进行介绍:
参见图5所示的数据映射规则的维护和校验流程示意图。在本发明实施例中,开发人员通过访问WEB终端并通过访问界面对数据映射规则模型进行维护和校验,具体地,开发人员通过WEB终端维护数据映射规则模型的数据映射规则信息,并将这些信息提交至一个校验模块,校验模块对这些数据映射规则进行校验,当校验结果出现异常时,校验模块便向WEB终端返回异常信息,以便开发人员根据异常信息对出现异常的数据映射规则进行重新维护,之后再重新对这些重新维护后的数据映射规则进行重新校验,当校验结果正常时,校验模块会将校验通过的数据映射规则模型存入数据映射规则库中。其中,所述校验模块和所述数据映射规则库可以位于同一个或不同的服务器上。
综上。本发明实施例在存储映射规则信息即将数据映射规则模型存入数据映射规则库中之前,还包括:
利用用户输入的对所述映射规则信息进行校验的校验信息;在校验通过后,存储通过校验的规则信息;在校验异常时,显示异常的规则信息。
其中,所述校验信息涉及的校验内容包括以下一种或多种:
校验必须唯一存在的信息是否唯一存在;
校验必须有效的信息是否有效;
校验必须存在的信息是否缺失。
对数据映射规则模型的校验处理规则如下:
①、按照下表所示处理规则对映射基本信息进行校验
②、按照下表所示处理规则对映射数据项信息进行校验
③、按照下表所示处理规则对映射子查询基本信息进行校验
④、按照下表所示处理规则对映射子查询配置信息进行校验
⑤、按照下表所示处理规则对映射变量信息进行校验
在本发明实施例中,数据映射规则模型的设计是基于大量后线分析类系统开发以及Oracle数据开发经验总结所得,能涵盖非常多数据映射及转换的场景,同时递归式的规则模型解析,从原理上保证了可以适用于各种复杂的数据映射场景,能自动化的生成应用于Oracle数据库的可执行程序,该机制实现了数据映射开发由手工到半自动化的突破。
下面分四个方便具体介绍本发明实施例的有益效果:
1、有效整合各产品映射数据,逐步建立组织级数据映射规则池
通过建立数据映射辅助开发管理公共机制,可以有效整合各个产品的映射数据,通过提取解析数据映射规则,可以获得各产品对上游数据接口字段粒度级别的使用情况,即可对数据表中字段和/或子查询中字段的灵活调整,这个是目前使用EXCEL文档管理数据映射机制中无法做到的。
同时针对重复数据集映射程序的开发、设计,可以通过有效整合后的数据映射规则池进行复用,避免同类相似映射程序反复重新设计开发的情况。
2、实现映射规则的可视化参数化配置
改变现有的一旦出现映射业务规则的变化,需要下发应用程序版本进行映射程序调整的情况,本发明形成参数化配置规则、统一公共模块调用执行的新模式,来代替过去传统的一个映射一支程序粗放型的开发设计模式。该机制的实现,将使得产品能够更灵活、更快捷地应对产品数据映射业务规则的变化。
可视化的数据映射开发,可以使开发人员更专注于映射本身的业务规则,通过界面进行映射程序的开发。
3、提升系统间关联关系分析能力
基于维护完善的数据映射规则模型,不但可以有效提高整体数据映射设计开发的效率和质量,同时可以基于规则库中的子查询配置项信息、映射数据项信息、映射基本信息,提炼出系统中对于源数据(ODS层)字段粒度级别的使用情况,进一步辅助开发人员更准确的定位接口变更对系统各个功能模块、数据模型带来的影响。
目前组织级可分析、提炼的粒度往往停留于表级和产品级,上游系统接口变更影响分析目前仅定位到上游XX产品XX表在哪些系统中使用,基于该公共机制,且数据映射规则库中信息维护准确的情况下,可将定位的粒度细化到上游XX产品变更接口中某个字段在哪些产品中得到使用(即以字段为单位,当确定了上游系统中的字段变化影响了哪些下游系统,便可直接调整受影响的下游系统中的用于接收该变化字段相关数据的接口配置),可以进一步组织级提升系统间关联关系分析的能力。
4、完善了数据映射开发及代码复查方法
基于本方案中的公共机制,数据映射的开发方法将会从传统的手工编码(HandCoded)转换为可视化操作(Graphical Manual),这样的转变鼓励开发人员将更多的注意力投入到映射规则的正确性,同时这样的机制降低了数据映射开发的技术要求,偏BA方向(即不熟悉编码)的需求分析人员也可参与数据映射的开发。
公共机制同时统一了代码风格和规范,并在生成SQL执行码时,共性地考虑基本的SQL性能问题。在初级开发人员通过可视化操作完成映射规则配置后,由需求分析人员复查映射规则正确性,由中、高级开发人员针对SQL执行码做进一步的程序性能复查,使数据映射代码复查的分工更有针对性。
本发明实施例提供的数据映射方法,通过预先配置的数据映射规则,基于这些数据映射规则可自动生成映射执行码,因此只需要关心对数据映射规则的调整,这样可节省编写映射程序所花费的人力,当各产品间数据映射涉及到的数据集存在较多的交集时,各产品可使用同一映射执行码,保证了映射程序的复用性。
参见图6,为本发明实施例提供的数据映射装置的组成示意图,包括:
映射规则获取单元601,用于获取用于实现当前映射的每层子查询中的数据映射规则;
执行码获取单元602,用于根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;
对应关系取单元603,用于获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
第一映射实现单元604,用于基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
在本发明实施例中,所述映射规则获取单元,包括:
各个子查询获取模块,用于获取用于实现所述当前映射的各个子查询;
上层子查询提取模块,用于从所述各个子查询中提取所有最上层子查询;
映射规则获取模块,用于获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。
在本发明实施例中,所述装置还包括:
规则信息存储单元,用于存储映射规则信息,所述映射规则信息包括映射基本信息、映射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息;
其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息;
所述各个子查询获取模块,具体用于从所述映射基本信息中提取用于实现所述当前映射的各个子查询信息;
所述上层子查询提取模块,具体用于根据所述映射子查询配置信息,从所述各个子查询信息中提取所有最上层子查询信息;
所述映射规则获取模块,具体用于从所述映射子查询配置信息中获取所述最上层子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下层子查询中的数据映射规则信息;
所述执行码获取单元,具体用于根据所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询执行码,并将生成的执行码回写入所述映射子查询基本信息中,或者,从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询执行码;
所述对应关系取单元,具体用于从所述映射数据项信息中提取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
所述第一映射实现单元,具体用于将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当前映射。
在本发明实施例中,所述装置还包括:
映射程序存储单元,用于将所述映射执行码存储在所述映射基本信息中;
执行码判断单元,用于在所述映射规则获取单元获取用于实现当前映射的每层子查询中的数据映射规则之前,判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码;
第二映射实现单元,用于若所述映射基本信息中存储有用于实现所述当前映射的映射执行码,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实现所述当前映射;
映射功能转换单元,用于若所述映射基本信息中不存储有用于实现所述当前映射的映射执行码,则利用所述映射规则获取单元实现所述获取用于实现当前映射的每层子查询中的数据映射规则的功能。
在本发明实施例中,所述装置还包括:
信息校验单元,用于在所述规则信息存储单元存储映射规则信息之前,利用用户输入的对所述映射规则信息进行校验的校验信息;
存储执行单元,用于在校验通过后,利用所述规则信息存储单元存储通过校验的规则信息;
异常显示单元,用于在校验异常时,显示异常的规则信息。
在本发明实施例中,所述校验信息涉及的校验内容包括以下一种或多种:
校验必须唯一存在的信息是否唯一存在;
校验必须有效的信息是否有效;
校验必须存在的信息是否缺失。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种数据映射方法,其特征在于,包括:
获取用于实现当前映射的每层子查询中的数据映射规则;
根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;
获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
2.根据权利要求1所述的方法,其特征在于,所述获取用于实现当前映射的每层子查询中的数据映射规则,包括:
获取用于实现所述当前映射的各个子查询;
从所述各个子查询中提取所有最上层子查询;
获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
存储映射规则信息,所述映射规则信息包括映射基本信息、映射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息;
其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息;
所述获取用于实现所述当前映射的各个子查询,包括:
从所述映射基本信息中提取用于实现所述当前映射的各个子查询信息;
所述从所述各个子查询中提取所有最上层子查询,包括:
根据所述映射子查询配置信息,从所述各个子查询信息中提取所有最上层子查询信息;
所述获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则,包括:
从所述映射子查询配置信息中获取所述最上层子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下层子查询中的数据映射规则信息;
所述获取用于实现所述当前映射的子查询执行码,包括:
根据所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询执行码,并将生成的执行码回写入所述映射子查询基本信息中,或者,从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询执行码;
所述获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系,包括:
从所述映射数据项信息中提取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
所述基于所述对应关系,通过执行所述子查询执行码实现所述当前映射,包括:
将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当前映射。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述映射执行码存储在所述映射基本信息中;
则,所述获取用于实现当前映射的每层子查询中的数据映射规则之前,还包括:
判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码;
若是,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实现所述当前映射;
若否,则执行所述获取用于实现当前映射的每层子查询中的数据映射规则的步骤。
5.根据权利要求3所述的方法,其特征在于,所述存储映射规则信息之前,还包括:
利用用户输入的对所述映射规则信息进行校验的校验信息;
在校验通过后,存储通过校验的规则信息;
在校验异常时,显示异常的规则信息。
6.根据权利要求5所述的方法,其特征在于,所述校验信息涉及的校验内容包括以下一种或多种:
校验必须唯一存在的信息是否唯一存在;
校验必须有效的信息是否有效;
校验必须存在的信息是否缺失。
7.一种数据映射装置,其特征在于,包括:
映射规则获取单元,用于获取用于实现当前映射的每层子查询中的数据映射规则;
执行码获取单元,用于根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;
对应关系取单元,用于获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
第一映射实现单元,用于基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
8.根据权利要求7所述的装置,其特征在于,所述映射规则获取单元,包括:
各个子查询获取模块,用于获取用于实现所述当前映射的各个子查询;
上层子查询提取模块,用于从所述各个子查询中提取所有最上层子查询;
映射规则获取模块,用于获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
规则信息存储单元,用于存储映射规则信息,所述映射规则信息包括映射基本信息、映射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息;
其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息;
所述各个子查询获取模块,具体用于从所述映射基本信息中提取用于实现所述当前映射的各个子查询信息;
所述上层子查询提取模块,具体用于根据所述映射子查询配置信息,从所述各个子查询信息中提取所有最上层子查询信息;
所述映射规则获取模块,具体用于从所述映射子查询配置信息中获取所述最上层子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下层子查询中的数据映射规则信息;
所述执行码获取单元,具体用于根据所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询执行码,并将生成的执行码回写入所述映射子查询基本信息中,或者,从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询执行码;
所述对应关系取单元,具体用于从所述映射数据项信息中提取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
所述第一映射实现单元,具体用于将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当前映射。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
映射程序存储单元,用于将所述映射执行码存储在所述映射基本信息中;
执行码判断单元,用于在所述映射规则获取单元获取用于实现当前映射的每层子查询中的数据映射规则之前,判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码;
第二映射实现单元,用于若所述映射基本信息中存储有用于实现所述当前映射的映射执行码,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实现所述当前映射;
映射功能转换单元,用于若所述映射基本信息中不存储有用于实现所述当前映射的映射执行码,则利用所述映射规则获取单元实现所述获取用于实现当前映射的每层子查询中的数据映射规则的功能。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
信息校验单元,用于在所述规则信息存储单元存储映射规则信息之前,利用用户输入的对所述映射规则信息进行校验的校验信息;
存储执行单元,用于在校验通过后,利用所述规则信息存储单元存储通过校验的规则信息;
异常显示单元,用于在校验异常时,显示异常的规则信息。
12.根据权利要求11所述的装置,其特征在于,所述校验信息涉及的校验内容包括以下一种或多种:
校验必须唯一存在的信息是否唯一存在;
校验必须有效的信息是否有效;
校验必须存在的信息是否缺失。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153764.3A CN105843605B (zh) | 2016-03-17 | 2016-03-17 | 一种数据映射方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153764.3A CN105843605B (zh) | 2016-03-17 | 2016-03-17 | 一种数据映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105843605A true CN105843605A (zh) | 2016-08-10 |
CN105843605B CN105843605B (zh) | 2019-03-08 |
Family
ID=56588405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610153764.3A Active CN105843605B (zh) | 2016-03-17 | 2016-03-17 | 一种数据映射方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105843605B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484785A (zh) * | 2016-09-19 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种高效的自动匹配数据字段映射的方法 |
CN106682235A (zh) * | 2017-01-18 | 2017-05-17 | 济南浪潮高新科技投资发展有限公司 | 一种异构数据映射系统及方法 |
CN108829884A (zh) * | 2018-06-27 | 2018-11-16 | 中国建设银行股份有限公司 | 数据映射方法及装置 |
CN111079172A (zh) * | 2019-11-12 | 2020-04-28 | 杜绍森 | 一种数据子集提取方法 |
TWI840587B (zh) * | 2019-07-12 | 2024-05-01 | 美商高通公司 | 多模態使用者介面 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
US20080178157A1 (en) * | 2005-04-13 | 2008-07-24 | Mats Winberg | Data Value Coherence In Computer Systems |
CN101286151A (zh) * | 2007-04-13 | 2008-10-15 | 国际商业机器公司 | 建立多维模型和数据仓库模式的映射的方法及相关系统 |
CN101777073A (zh) * | 2010-02-01 | 2010-07-14 | 浪潮集团山东通用软件有限公司 | 一种基于xml格式的数据转换方法 |
CN102257522A (zh) * | 2008-12-17 | 2011-11-23 | 汤姆森特许公司 | 数据管理装置、数据管理方法及数据管理程序 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
CN104182410A (zh) * | 2013-05-24 | 2014-12-03 | 利德科技发展有限公司 | 对象关系映射系统的动态代理系统和方法 |
-
2016
- 2016-03-17 CN CN201610153764.3A patent/CN105843605B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080178157A1 (en) * | 2005-04-13 | 2008-07-24 | Mats Winberg | Data Value Coherence In Computer Systems |
CN101286151A (zh) * | 2007-04-13 | 2008-10-15 | 国际商业机器公司 | 建立多维模型和数据仓库模式的映射的方法及相关系统 |
CN101067814A (zh) * | 2007-05-10 | 2007-11-07 | 浪潮集团山东通用软件有限公司 | 数据访问层Xml格式数据与关系数据间的映射转换方法 |
CN102257522A (zh) * | 2008-12-17 | 2011-11-23 | 汤姆森特许公司 | 数据管理装置、数据管理方法及数据管理程序 |
CN101777073A (zh) * | 2010-02-01 | 2010-07-14 | 浪潮集团山东通用软件有限公司 | 一种基于xml格式的数据转换方法 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
CN104182410A (zh) * | 2013-05-24 | 2014-12-03 | 利德科技发展有限公司 | 对象关系映射系统的动态代理系统和方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484785A (zh) * | 2016-09-19 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种高效的自动匹配数据字段映射的方法 |
CN106484785B (zh) * | 2016-09-19 | 2019-07-26 | 浪潮通用软件有限公司 | 一种高效的自动匹配数据字段映射的方法 |
CN106682235A (zh) * | 2017-01-18 | 2017-05-17 | 济南浪潮高新科技投资发展有限公司 | 一种异构数据映射系统及方法 |
CN108829884A (zh) * | 2018-06-27 | 2018-11-16 | 中国建设银行股份有限公司 | 数据映射方法及装置 |
TWI840587B (zh) * | 2019-07-12 | 2024-05-01 | 美商高通公司 | 多模態使用者介面 |
CN111079172A (zh) * | 2019-11-12 | 2020-04-28 | 杜绍森 | 一种数据子集提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105843605B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wand et al. | Anchoring data quality dimensions in ontological foundations | |
CN105843605A (zh) | 一种数据映射方法及装置 | |
Wagner | Database and Expert Systems Applications: 7th International Conference, DEXA'96, Zurich, Switzerland, September 9-13, 1996. Proceedings | |
CN110119395B (zh) | 大数据治理中基于元数据实现数据标准与数据质量关联处理的方法 | |
CN100565453C (zh) | 一种基于构件的领域基础业务平台及其构建方法 | |
Delamaro et al. | Using concepts of content‐based image retrieval to implement graphical testing oracles | |
CN105260300B (zh) | 基于会计准则通用分类标准应用平台的业务测试方法 | |
CN107749030A (zh) | 一种税务指标管理方法及系统 | |
CN111324604A (zh) | 数据库表的处理方法、装置、电子设备及存储介质 | |
CN106528828A (zh) | 一种基于多维度校验规则的数据质量检测方法 | |
CN109241068A (zh) | 前后台数据比对的方法、装置及终端设备 | |
CN106372044A (zh) | 一种基于报表生成类型化维度xbrl报告的方法 | |
CN112000643A (zh) | 数据模型的加工方法及装置 | |
CN105373472A (zh) | 一种基于数据库的统计准确性的测试方法及测试系统 | |
CN105069096A (zh) | 一种自定义表单的架构方法及架构系统 | |
CN113900955A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN113918149A (zh) | 接口开发方法、装置、计算机设备和存储介质 | |
CN108804460A (zh) | 一种基于sql的查询语言 | |
CN109542890A (zh) | 数据修改方法、装置、计算机设备及存储介质 | |
Doerr et al. | A method for estimating the precision of placename matching | |
Nabli et al. | Towards an automatic data mart design | |
CN113850035A (zh) | 一种芯片验证方法、装置、设备及可读存储介质 | |
CN102495884A (zh) | 一种基于互联网的漏洞信息云服务方法 | |
Brdjanin et al. | ADBdesign: An approach to automated initial conceptual database design based on business activity diagrams | |
Kim et al. | Comparing object-oriented and relational data models for project control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |