一种数据映射方法及装置的制造方法

文档序号:10488735阅读:194来源:国知局
一种数据映射方法及装置的制造方法
【专利摘要】本发明公开了一种数据映射方法,包括:获取用于实现当前映射的每层子查询中的数据映射规则;根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行码;获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。本发明还提供了一种数据映射装置。
【专利说明】
_种数据映射方法及装置
技术领域
[0001 ]本发明涉及数据处理技术领域,尤其涉及一种数据映射方法及装置。
【背景技术】
[0002] 目前根据业界数据映射开发的整体情况,对于涉及分析类系统的项目,主要通过 数据映射标准文档进行产品数据映射规则的管理,并依据该文档进行数据映射程序的开 发,而且数据映射程序的开发方式,仍整体以手工编码(Hand-Coded)为主。目前产品映射开 发、管理的方式主要存在如下问题:
[0003] 1、映射规则通过EXCEL文档进行管理,由于EXCEL文档仅作为程序开发的参考,往 往出现映射文档的映射规则同最新映射程序逻辑存在差异的情况。
[0004] 2、映射程序的开发往往由多名开发人员负责开发,映射程序的代码风格无法有效 的统一,代码质量、可读性参差不齐,需要项目组花大量的时间进行映射程序代码复查工 作。
[0005] 3、各产品间数据映射涉及到的数据集存在较多的交集,但是由于产品各自进行数 据映射规则的整理及映射程序的设计,存在重复的工作量,许多已存在的数据映射规则及 程序无法得到有效的复用。
[0006] 4、数据映射的程序为手边编码完成的PLSQL程序,这种手工编码方式在应对数据 映射规则变化以及数据映射规则错误的情况灵活性较差,均需要通过直接调整数据映射程 序进行修复。
[0007] 可见,以上手工编码映射程序的方式将花费大量的人力在映射程序的编写及修复 上,且映射程序的复用性较差。

【发明内容】

[0008] 有鉴于此,本发明实施例的主要目的在于提供一种数据映射方法及装置,使实现 节省编写映射程序所花费的人力且提高映射程序复用性的目的。
[0009] 为实现上述目的,本发明实施例提供了一种数据映射方法,包括:
[0010] 获取用于实现当前映射的每层子查询中的数据映射规则;
[0011] 根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执 行码;
[0012] 获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系;
[0013] 基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
[0014] 本发明实施例还提供了一种数据映射装置,包括:
[0015] 映射规则获取单元,用于获取用于实现当前映射的每层子查询中的数据映射规 则;
[0016] 执行码获取单元,用于根据所述每层子查询中的数据映射规则,获取用于实现所 述当前映射的子查询执行码;
[0017] 对应关系取单元,用于获取所述当前映射的映射源数据项与映射目标数据项之间 的对应关系;
[0018] 第一映射实现单元,用于基于所述对应关系,通过执行所述子查询执行码实现所 述当前映射。
[0019] 本发明实施例提供的数据映射方法及装置,通过预先配置的数据映射规则,基于 这些数据映射规则可自动生成映射执行码,因此只需要关心对数据映射规则的调整,这样 可节省编写映射程序所花费的人力,当各产品间数据映射涉及到的数据集存在较多的交集 时,各产品可使用同一映射执行码,保证了映射程序的复用性。
【附图说明】
[0020] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
[0021] 图1为本发明实施例对数据映射规则模型分解以及映射规则编译解析示意图;
[0022] 图2为本发明实施例数据映射方法的流程示意图;
[0023] 图3为本发明实施例数据映射方法的具体实现示意图;
[0024] 图4为本发明实施例数据映射信息的维护、检验、解析、部署、执行示意图;
[0025] 图5为本发明实施例数据映射规则的维护和校验流程示意图;
[0026] 图6为本发明实施例数据映射装置的组成示意图。
【具体实施方式】
[0027] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 数据映射常指的是基于给定的两个数据模型,在模型之间建立起数据元素的对应 关系的过程。对于多数后线数据集市类系统、指标分析类系统,数据映射是数据集成任务的 第一步。
[0029] 为了实现数据映射,首先需要建立一个数据映射规则模型,以便基于该数据映射 规则模型实现数据映射。下面首先对数据映射规则模型涉及的内容进行具体介绍:
[0030] 对于数据映射规则模型而言,首先可以简单划分为映射源(Data Mapping Source Ent i ty)和映射目标(Data Mapping Source Ent i ty),数据映射规则模型中最小粒度 的数据模型在本方案中暂定为数据表(Table),比如可以存在N个数据表,完成数据映射可 能需要一个或多个子查询(SubQuery),所以,映射源包括至少一个表、或者包括至少一个表 和至少一个子查询,简单的映射源可以为一张数据表,而复杂的映射源可以是一个复杂度 不同的子查询,比如是包括多张表以及嵌套多层子查询的一个复杂子查询。
[0031]因此,建立数据映射规则模型是为子查询建立模型、为映射源与映射目标之间的 映射关系建立模型。数据映射规则模型主要包含如下信息:
[0032] (I)、映射基本信息
[0035] ①、映射ID
[0036]映射的唯一标识。
[0037] ②、子查询ID
[0038] 子查询的唯一标识。不同映射间所涉及的子查询不要出现复用的情况,以减少映 射与映射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
[0039] ③、子查询配置项类型及配置项
[0040] 采用数据冗余的方式进行子查询配置类型及其对应配置项的存储,目的在于减少 传统三范式多表关联的情况,降低参数配置的复杂度,因此接下来将统一对查询配置类型 及其对应的配置项的模型配置关系进行介绍。
[0041 ]配置项类型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
[0042] i、ITEM(子查询数据项),即子查询查询结果中的各个数据项。
[0043] ITEM涉及的配置项及其说明:
[0048] iii、JOIN(关联查询),该关联查询类型包括JOIN-I、J0IN-L、J0IN-R、JOIN-F四个 字类型,定义如下:
[0049] JOIN-I:内关联,内连接(INNER JOIN)操作;
[0050] J0IN-L:左关联,左连接(LEFT JOIN)操作;
[00511 J0IN-R:右关联,右连接(RIGHT JOIN)操作;
[0052] J0IN-F:全关联,全连接(FULL JOIN)操作。
[0053] JOIN涉及的配置项及其说明:
[0055] iv、FILTER(过滤项)。
[0056] FILTER涉及的配置项及其说明:
[0058] V、AGG(分组汇总项)。
[0059] AGG涉及的配置项及其说明:
[0062] vi、0RDER(排序项)。
[0063] ORDER涉及的配置项及其说明:

[0065] vii、UNI0N(合并项)。
[0066] UNION涉及的配置项及其说明:
[0068] viii、HINT(提示项)。
[0069] HINT涉及的配置项及其说明:
[0074] ①、映射ID
[0075]映射的唯一标识。
[0076] ②、映射目标实体
[0077] 标识映射目标,由于映射目标通常为数据表,因此此处体现的是映射目标表的表 名。
[0078]③、映射源
[0079] 由于映射源本身也可认定一个复杂度不同的子查询,因此该项体现的是最终作为 映射源的子查询的ID。
[0080] ④、是否为匹配键
[0081 ]该项主要体现了在 MERGE_INSERT_ONLY、MERGE_UPDATE_ONLY、MERGE_UPDATE_ INSER映射模式下,数据映射源同数据映射目标用于匹配的数据项,对于INSERT模式对【是 否为匹配键】不关注,MERGE语句是SQL语句的一种。
[0082] MERGE_INSERT_ONLY:MERGE操作中,仅插入匹配键与目标表无法匹配上的数据; MERGE_UPDATE_ONLY: MERGE操作中,仅更新匹配键与目标表匹配的数据;MERGE_UPDATE_ INSERT:MERGE操作中,更新匹配键与目标表匹配的数据,同时插入匹配键与目标表无法匹 配上的数据;INSERT:直接执行INSERT操作。
[0083] ⑤、映射目标实体数据项、映射源实体数据项。
[0084] 该两项体现的即为映射源同映射目标数据项之间的对应关系。
[0085] (3)、映射子查询基本信息 L 〇〇87 J ⑴、映射ID
[0088]映射的唯一标识
[0089] ②、子查询ID
[0090] 子查询的唯一标识。不同映射间的子查询不要出现复用的情况,以减少映射与映 射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
[0091] ③、描述 [0092] 子查询描述信息 [0093]④、子查询解析后SQL
[0094] 用于记录解析程序解析映射配置业务规则后生成的SQL。
[0095] (4)、映射子查询配置信息
[0098] ①、映射ID
[0099] 映射的唯一标识。
[0100] ②、子查询ID
[0101] 子查询的唯一标识。不同映射间所涉及的子查询不要出现复用的情况,以减少映 射与映射之间的耦合度,因此不同映射ID下会存在相同名称的子查询ID。
[0102] ③、子查询配置项类型及配置项
[0103] 采用数据冗余的方式进行子查询配置类型及其对应配置项的存储,目的在于减少 传统三范式多表关联的情况,降低参数配置的复杂度,因此接下来将统一对查询。配置类型 及其对应的配置项的模型配置关系进行介绍。
[0104] 配置项类型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
[0105] i、ITEM(子查询数据项),即子查询结果中的各个数据项。
[0106] ITEM涉及的配置项及其说明:
[0108] ii、ENT(子查询主实体)。
[0109] 涉及配置项及其说明:
[0111] iii、JOIN(关联查询),该关联查询类型包括JOIN-I、J0IN-L、J0IN-R、JOIN-F四个 字类型,定义如下:
[0112] JOIN-I:内关联,内连接(INNER JOIN)操作;
[0113] J0IN-L:左关联,左连接(LEFT JOIN)操作;
[0114] J0IN-R:右关联,右连接(RIGHT JOIN)操作;
[0115] J0IN-F:全关联,全连接(FULL JOIN)操作。
[0116] JOIN涉及的配置项及其说明:
[0118] iv、FILTER(过滤项)。
[0119] FILTER涉及的配置项及其说明:
[0121] V、AGG(分组汇总项)。
[0122] AGG涉及的配置项及其说明:
[0124] vi、0RDER(排序项)。
[0125] ORDER涉及的配置项及其说明: LUIZ/J
[0128] UNION涉及的配置项及其说明:
[0130] viii、HINT(提示项)。
[0131] HINT涉及的配置项及其说明:
[0136] ①、变量ID
[0137] 映射相关变量的唯一标识。
[0138] ②、变量属性
[0139] 变量分为公共变量和私有变量。
[0140] PUB表示公共变量,PRI表示私有变量。
[0141] ③、变量赋值表达式
[0142] 定义变量的赋值表达式,可以是一个简单的字符、数值,也可以是复杂的计算表达 式。
[0143] ④、关联映射ID
[0144] 对于私有变量,必须在该项上维护变量所关联的映射ID信息,公共变量不涉及映 射ID信息。
[0145] 基于上述数据映射规则模型,通过递归式地对数据映射规则模型进行逐层解析, 自动化的形成各个数据模型之间数据元素的对应关系或者处理关系,最终转换为Oracle数 据可识别的可执行程序。具体地,参见图1所示的对数据映射规则模型分解以及映射规则编 译解析示意图,首先按照"表=>子查询= > 映射源实体= >映射目标实体"的顺序进行递 归解析,即,根据数据映射规则模型中的数据表与数据表之间的关联关系,建立各个子查询 的映射规则,并定义这些数据表与这些子查询组成的映射源实体,还要定义映射目标实体 (即数据表)。然后,基于解析结果按照Oracle数据库的SQL语法规则,生成可执行的SQL映射 程序,同时为保障SQL映射程序的性能得到保障,在编译、解析SQL映射程序的过程中,同时 会解决数据映射规则模型中的HINT提示信息,能够有效地控制可执行程序的执行计划,保 障程序性能的稳定。
[0146] 基于上述数据映射规则模型以及生成的SQL映射程序,便可根据用户的数据映射 要求实现数据映射,参见图2,为本发明实施例提供的数据映射方法的流程示意图,该方法 包括以下步骤:
[0147] 步骤201:获取用于实现当前映射的每层子查询中的数据映射规则。
[0148] 在本发明实施例中,对于每一映射(即数据表与数据表之间的数据元素的对应关 系),可能会涉及到一个或多个子查询,且子查询之间可能是具有层级关系的,具有层级关 系的子查询之间需要按照层级顺序执行查询操作。比如,对于当前映射(所述当前映射可以 是数据映射规则模型中定义的所有映射ID中的任意映射ID对应的映射操作),需要通过M(M 2 1)个子查询中的数据映射规则来实现,这些子查询按照层级划分为第1层、……第M层,其 中,每一层级中可能有一个或多个子查询,第1层中的每个子查询均是最上层子查询即是最 先执行的子查询操作,假设第1层中的子查询A是第2层的子查询B的执行条件时,那么子查 询B就是子查询A的下层子查询,假设第2层中的子查询B是第3层的子查询C的执行条件时, 那么子查询C就是子查询B的下层子查询,依次类推。而为了获取每一层级中的各个子查询 的数据映射规则,首先需要获知所述当前映射所涉及的所有子查询,再从这些子查询中找 出所有最上层子查询,然后再根据最上层子查询找到与之关联的下层子查询,再根据该下 层子查询进一步找到更下一层的子查询,直到找到最下层子查询为止,确定这些子查询之 间的层级关系的过程即为获取各层级子查询的数据映射规则的过程。
[0149] 基于上述内容,按照下述方式实现步骤201:
[0150] 步骤301:获取用于实现所述当前映射的各个子查询;
[0151]步骤302:从所述各个子查询中提取所有最上层子查询;
[0152] 步骤303:获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中 的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。
[0153] 在本发明实施例中,上述数据映射规则模型中涉及的信息即为映射规则信息,而 为了现实数据映射,需要预先存储映射规则信息,所述映射规则信息包括映射基本信息、映 射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息。其中,所述 映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项信息包括每一映 射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基本信息包括用于 实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下的各层子查询的 数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息(各个信息的具体 介绍请参见上述对数据映射规则模型的介绍)。
[0154] 参见图3所示的数据映射方法的具体实现示意图。具体是对数据映射规则模型的 解析、部署、执行流程:
[0155] ①、解析
[0156] 数据映射公共机制中,通过递归的方式逐层解析映射源(子查询)中各个本层、下 层子查询中的数据映射规则,并将数据映射规则逐层转换为可执行的子查询SQL执行码,并 结合映射数据项信息,生成执行的映射执行码。
[0157] ②、部署
[0158] 生成子查询SQL执行码、映射SQL执行码后,将子查询SQL执行码回写到映射子查询 基本信息中的SQL_STATEMENT项、将映射SQL执行码回写到映射基本信息、完成部署动作。
[0159] ③、执行
[0160] 公共调用模块从映射基本信息中找到各个映射的执行码,并通过动态SQL的方式 运行执码。
[0161] 基于上述内容,下面介绍步骤301至步骤303的具体实现方式:
[0162] 对于步骤301,由于所述映射基本信息中涵盖了各个预设映射操作所涉及的各个 子查询操作的相关信息,所以,在实现步骤301时,具体可从所述映射基本信息中提取用于 实现所述当前映射的各个子查询信息;
[0163] 对于步骤302,由于所述映射子查询配置信息中涵盖了关于每一预设映射操作下 的属于每一层级中的每一子查询的数据映射规则信息,其包含了层级方面的信息,所以,在 实现步骤302时,具体可根据所述映射子查询配置信息,从所述各个子查询信息中提取所有 最上层子查询信息;
[0164] 对于步骤303,由于所述映射子查询配置信息中涵盖了关于每一预设映射操作下 的属于每一层级中的每一子查询的数据映射规则信息,其包含了每一子查询中的数据映射 规则信息,所以,在实现步骤303时,具体可从所述映射子查询配置信息中获取所述最上层 子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解 析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下 层子查询中的数据映射规则信息。
[0165] 步骤202:根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的 子查询执行码。
[0166] 在本发明实施例中,由于通过对上述数据映射规则模型进行递归解析,已经预先 生成并保持了每一子查询的SQL程序,因此,对于步骤202,具体可基于保存的SQL程序,根据 所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询SQL执行码,并将 生成的SQL执行码回写入所述映射子查询基本信息的SQL_STATEMENT项中,所以,如果SQL_ STATEMENT项中存储有用于实现所述当前映射的子查询SQL执行码,则可直接从SQL_ STATEMENT中调用该子查询SQL执行码,因此,对于步骤202,还可以从所述映射子查询基本 信息中提取预选存储的用于实现所述当前映射的子查询执行码。
[0167] 步骤203:获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系。
[0168] 对于步骤203,由于所述映射数据项信息中包括了每一预设映射操作的映射源数 据项与映射目标数据项之间的对应关系,其中包含了当前映射的映射源实体(至少一个源 数据表)与映射目标实体(至少一个目标数据表)之间的数据元素之间的对应关系,所以,在 实现步骤302时,具体可从所述映射数据项信息中提取所述当前映射的映射源数据项与映 射目标数据项之间的对应关系。
[0169] 步骤204:基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。
[0170] 由于所述映射变量信息包括每一映射操作所涉及的变量信息,其中公共变量是所 有映射操作涉及的变量,私有变量某一特定映射操作涉及的变量,将所述当前映射涉及的 所有变量信息、以及当前映射的映射源数据项与映射目标数据项之间的对应关系作为所述 子查询执行码的输入参数后,便得到一套用于实现当前映射的映射执行码。所以,对于步骤 204,具体可将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到 所述子查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当 前映射。
[0171] 进一步地,本发明实施例还可以将所述映射执行码存储在所述映射基本信息的 SQL项中,其目的是在实现所述当前映射时,可直接从所述映射基本信息的SQL项调用用于 实现所述当前映射的映射执行码,因此,在执行步骤201之前,本发明实施例还包括:
[0172] 判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码;若 是,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实现所 述当前映射;若否,则执行步骤201。
[0173] 为了实现参数化配置规则、统一公共模块调用执行的新模式,必须有一套完整、统 一的公共模块对数据映射规则模型进行维护、检验、解析、部署、执行。参见图4所示的数据 映射信息的维护、检验、解析、部署、执行示意图,该公共模块主要分为两个部分,第一个部 分为面向开发人员的前端WEB应用客户端界面,开发人员通过WEB客户端进行数据映射规则 模型的维护和校验,第二个部分为统一的数据映射组件,数据映射组件实现的功能包括映 射的解析、部署、执行三大块功能,即,首先解析数据映射规则模型,然后根据解析出的映射 规则生成并部署数据映射执行码,最后执行部署后的数据映射程序,从而实现数据映射(第 二部分的具体实现方式请参见前述内容)。这里对数据映射规则模型的维护和校验流程进 行介绍:
[0174] 参见图5所示的数据映射规则的维护和校验流程示意图。在本发明实施例中,开发 人员通过访问WEB终端并通过访问界面对数据映射规则模型进行维护和校验,具体地,开发 人员通过WEB终端维护数据映射规则模型的数据映射规则信息,并将这些信息提交至一个 校验模块,校验模块对这些数据映射规则进行校验,当校验结果出现异常时,校验模块便向 WEB终端返回异常信息,以便开发人员根据异常信息对出现异常的数据映射规则进行重新 维护,之后再重新对这些重新维护后的数据映射规则进行重新校验,当校验结果正常时,校 验模块会将校验通过的数据映射规则模型存入数据映射规则库中。其中,所述校验模块和 所述数据映射规则库可以位于同一个或不同的服务器上。
[0175] 综上。本发明实施例在存储映射规则信息即将数据映射规则模型存入数据映射规 则库中之前,还包括:
[0176] 利用用户输入的对所述映射规则信息进行校验的校验信息;在校验通过后,存储 通过校验的规则信息;在校验异常时,显示异常的规则信息。
[0177] 其中,所述校验信息涉及的校验内容包括以下一种或多种:
[0178] 校验必须唯一存在的信息是否唯一存在;
[0179] 校验必须有效的信息是否有效;
[0180] fe验必须存在的彳目息是否缺失。
[0181 ]对数据映射规则模型的校验处理规则如下:
[0182] ① 、桉眧下耒所沄々卜理揶_对盹射某太佶M讲杆拎3合




[0196] 在本发明实施例中,数据映射规则模型的设计是基于大量后线分析类系统开发以 及Oracle数据开发经验总结所得,能涵盖非常多数据映射及转换的场景,同时递归式的规 则模型解析,从原理上保证了可以适用于各种复杂的数据映射场景,能自动化的生成应用 于Oracle数据库的可执行程序,该机制实现了数据映射开发由手工到半自动化的突破。
[0197] 下面分四个方便具体介绍本发明实施例的有益效果:
[0198] 1、有效整合各产品映射数据,逐步建立组织级数据映射规则池
[0199] 通过建立数据映射辅助开发管理公共机制,可以有效整合各个产品的映射数据, 通过提取解析数据映射规则,可以获得各产品对上游数据接口字段粒度级别的使用情况, 即可对数据表中字段和/或子查询中字段的灵活调整,这个是目前使用EXCEL文档管理数据 映射机制中无法做到的。
[0200] 同时针对重复数据集映射程序的开发、设计,可以通过有效整合后的数据映射规 则池进行复用,避免同类相似映射程序反复重新设计开发的情况。
[0201 ] 2、实现映射规则的可视化参数化配置
[0202] 改变现有的一旦出现映射业务规则的变化,需要下发应用程序版本进行映射程序 调整的情况,本发明形成参数化配置规则、统一公共模块调用执行的新模式,来代替过去传 统的一个映射一支程序粗放型的开发设计模式。该机制的实现,将使得产品能够更灵活、更 快捷地应对产品数据映射业务规则的变化。
[0203] 可视化的数据映射开发,可以使开发人员更专注于映射本身的业务规则,通过界 面进行映射程序的开发。
[0204] 3、提升系统间关联关系分析能力
[0205] 基于维护完善的数据映射规则模型,不但可以有效提高整体数据映射设计开发的 效率和质量,同时可以基于规则库中的子查询配置项信息、映射数据项信息、映射基本信 息,提炼出系统中对于源数据(0DS层)字段粒度级别的使用情况,进一步辅助开发人员更准 确的定位接口变更对系统各个功能模块、数据模型带来的影响。
[0206] 目前组织级可分析、提炼的粒度往往停留于表级和产品级,上游系统接口变更影 响分析目前仅定位到上游XX产品XX表在哪些系统中使用,基于该公共机制,且数据映射规 则库中信息维护准确的情况下,可将定位的粒度细化到上游XX产品变更接口中某个字段在 哪些产品中得到使用(即以字段为单位,当确定了上游系统中的字段变化影响了哪些下游 系统,便可直接调整受影响的下游系统中的用于接收该变化字段相关数据的接口配置),可 以进一步组织级提升系统间关联关系分析的能力。
[0207] 4、完善了数据映射开发及代码复查方法
[0208] 基于本方案中的公共机制,数据映射的开发方法将会从传统的手工编码(Hand Coded)转换为可视化操作(Graphical Manual),这样的转变鼓励开发人员将更多的注意力 投入到映射规则的正确性,同时这样的机制降低了数据映射开发的技术要求,偏BA方向(即 不熟悉编码)的需求分析人员也可参与数据映射的开发。
[0209] 公共机制同时统一了代码风格和规范,并在生成SQL执行码时,共性地考虑基本的 SQL性能问题。在初级开发人员通过可视化操作完成映射规则配置后,由需求分析人员复查 映射规则正确性,由中、高级开发人员针对SQL执行码做进一步的程序性能复查,使数据映 射代码复查的分工更有针对性。
[0210] 本发明实施例提供的数据映射方法,通过预先配置的数据映射规则,基于这些数 据映射规则可自动生成映射执行码,因此只需要关心对数据映射规则的调整,这样可节省 编写映射程序所花费的人力,当各产品间数据映射涉及到的数据集存在较多的交集时,各 产品可使用同一映射执行码,保证了映射程序的复用性。
[0211] 参见图6,为本发明实施例提供的数据映射装置的组成示意图,包括:
[0212] 映射规则获取单元601,用于获取用于实现当前映射的每层子查询中的数据映射 规则;
[0213] 执行码获取单元602,用于根据所述每层子查询中的数据映射规则,获取用于实现 所述当前映射的子查询执行码;
[0214] 对应关系取单元603,用于获取所述当前映射的映射源数据项与映射目标数据项 之间的对应关系;
[0215] 第一映射实现单元604,用于基于所述对应关系,通过执行所述子查询执行码实现 所述当前映射。
[0216] 在本发明实施例中,所述映射规则获取单元,包括:
[0217] 各个子查询获取模块,用于获取用于实现所述当前映射的各个子查询;
[0218] 上层子查询提取模块,用于从所述各个子查询中提取所有最上层子查询;
[0219] 映射规则获取模块,用于获取所述最上层子查询中的数据映射规则,并根据所述 最上层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的 数据映射规则。
[0220] 在本发明实施例中,所述装置还包括:
[0221 ]规则信息存储单元,用于存储映射规则信息,所述映射规则信息包括映射基本信 息、映射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息;
[0222] 其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数 据项信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查 询基本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映 射下的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信 息;
[0223] 所述各个子查询获取模块,具体用于从所述映射基本信息中提取用于实现所述当 前映射的各个子查询信息;
[0224] 所述上层子查询提取模块,具体用于根据所述映射子查询配置信息,从所述各个 子查询信息中提取所有最上层子查询信息;
[0225] 所述映射规则获取模块,具体用于从所述映射子查询配置信息中获取所述最上层 子查询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解 析所述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下 层子查询中的数据映射规则信息;
[0226] 所述执行码获取单元,具体用于根据所述每层子查询中的数据映射规则,生成用 于实现所述当前映射的子查询执行码,并将生成的执行码回写入所述映射子查询基本信息 中,或者,从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询 执行码;
[0227] 所述对应关系取单元,具体用于从所述映射数据项信息中提取所述当前映射的映 射源数据项与映射目标数据项之间的对应关系;
[0228] 所述第一映射实现单元,具体用于将所述对应关系、所述映射变量信息中与所述 当前映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过 执行所述映射执行码实现所述当前映射。
[0229] 在本发明实施例中,所述装置还包括:
[0230] 映射程序存储单元,用于将所述映射执行码存储在所述映射基本信息中;
[0231] 执行码判断单元,用于在所述映射规则获取单元获取用于实现当前映射的每层子 查询中的数据映射规则之前,判断所述映射基本信息中是否存储有用于实现所述当前映射 的映射执行码;
[0232] 第二映射实现单元,用于若所述映射基本信息中存储有用于实现所述当前映射的 映射执行码,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行 码实现所述当前映射;
[0233] 映射功能转换单元,用于若所述映射基本信息中不存储有用于实现所述当前映射 的映射执行码,则利用所述映射规则获取单元实现所述获取用于实现当前映射的每层子查 询中的数据映射规则的功能。
[0234] 在本发明实施例中,所述装置还包括:
[0235] 信息校验单元,用于在所述规则信息存储单元存储映射规则信息之前,利用用户 输入的对所述映射规则信息进行校验的校验信息;
[0236] 存储执行单元,用于在校验通过后,利用所述规则信息存储单元存储通过校验的 规则信息;
[0237] 异常显示单元,用于在校验异常时,显示异常的规则信息。
[0238] 在本发明实施例中,所述校验信息涉及的校验内容包括以下一种或多种:
[0239] 校验必须唯一存在的信息是否唯一存在;
[0240]校验必须有效的信息是否有效;
[0241] fe验必须存在的彳目息是否缺失。
[0242] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施 例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的 理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式 体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干 指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信 设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0243] 需要说明的是,对于实施例公开的装置而言,由于其与实施例公开的方法相对应, 所以描述的比较简单,相关之处参见方法部分说明即可。
[0244]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个 实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间 存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在 包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0245]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
【主权项】
1. 一种数据映射方法,其特征在于,包括: 获取用于实现当前映射的每层子查询中的数据映射规则; 根据所述每层子查询中的数据映射规则,获取用于实现所述当前映射的子查询执行 码; 获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系; 基于所述对应关系,通过执行所述子查询执行码实现所述当前映射。2. 根据权利要求1所述的方法,其特征在于,所述获取用于实现当前映射的每层子查询 中的数据映射规则,包括: 获取用于实现所述当前映射的各个子查询; 从所述各个子查询中提取所有最上层子查询; 获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映射规 贝1J,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则。3. 根据权利要求2所述的方法,其特征在于,所述方法还包括: 存储映射规则信息,所述映射规则信息包括映射基本信息、映射数据项信息、映射子查 询基本信息、映射子查询配置信息、以及映射变量信息; 其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项 信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基 本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下 的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息; 所述获取用于实现所述当前映射的各个子查询,包括: 从所述映射基本信息中提取用于实现所述当前映射的各个子查询信息; 所述从所述各个子查询中提取所有最上层子查询,包括: 根据所述映射子查询配置信息,从所述各个子查询信息中提取所有最上层子查询信 息; 所述获取所述最上层子查询中的数据映射规则,并根据所述最上层子查询中的数据映 射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据映射规则,包括: 从所述映射子查询配置信息中获取所述最上层子查询中的数据映射规则信息,并根据 所述最上层子查询中的数据映射规则信息,逐层解析所述最上层子查询下面的每层下层子 查询,并从所述映射子查询配置信息中获取所述下层子查询中的数据映射规则信息; 所述获取用于实现所述当前映射的子查询执行码,包括: 根据所述每层子查询中的数据映射规则,生成用于实现所述当前映射的子查询执行 码,并将生成的执行码回写入所述映射子查询基本信息中,或者,从所述映射子查询基本信 息中提取预选存储的用于实现所述当前映射的子查询执行码; 所述获取所述当前映射的映射源数据项与映射目标数据项之间的对应关系,包括: 从所述映射数据项信息中提取所述当前映射的映射源数据项与映射目标数据项之间 的对应关系; 所述基于所述对应关系,通过执行所述子查询执行码实现所述当前映射,包括: 将所述对应关系、所述映射变量信息中与所述当前映射相关的变量信息输入到所述子 查询执行码的对应位置,以得到映射执行码,通过执行所述映射执行码实现所述当前映射。4. 根据权利要求3所述的方法,其特征在于,所述方法还包括: 将所述映射执行码存储在所述映射基本信息中; 贝1J,所述获取用于实现当前映射的每层子查询中的数据映射规则之前,还包括: 判断所述映射基本信息中是否存储有用于实现所述当前映射的映射执行码; 若是,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码 实现所述当前映射; 若否,则执行所述获取用于实现当前映射的每层子查询中的数据映射规则的步骤。5. 根据权利要求3所述的方法,其特征在于,所述存储映射规则信息之前,还包括: 利用用户输入的对所述映射规则信息进行校验的校验信息; 在校验通过后,存储通过校验的规则信息; 在fe验异常时,显不异常的规则?目息。6. 根据权利要求5所述的方法,其特征在于,所述校验信息涉及的校验内容包括以下一 种或多种: 校验必须唯一存在的信息是否唯一存在; 校验必须有效的信息是否有效; fe验必须存在的彳目息是否缺失。7. -种数据映射装置,其特征在于,包括: 映射规则获取单元,用于获取用于实现当前映射的每层子查询中的数据映射规则; 执行码获取单元,用于根据所述每层子查询中的数据映射规则,获取用于实现所述当 前映射的子查询执行码; 对应关系取单元,用于获取所述当前映射的映射源数据项与映射目标数据项之间的对 应关系; 第一映射实现单元,用于基于所述对应关系,通过执行所述子查询执行码实现所述当 前映射。8. 根据权利要求7所述的装置,其特征在于,所述映射规则获取单元,包括: 各个子查询获取模块,用于获取用于实现所述当前映射的各个子查询; 上层子查询提取模块,用于从所述各个子查询中提取所有最上层子查询; 映射规则获取模块,用于获取所述最上层子查询中的数据映射规则,并根据所述最上 层子查询中的数据映射规则,逐层解析所述最上层子查询下面的每层下层子查询中的数据 映射规则。9. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 规则信息存储单元,用于存储映射规则信息,所述映射规则信息包括映射基本信息、映 射数据项信息、映射子查询基本信息、映射子查询配置信息、以及映射变量信息; 其中,所述映射基本信息包括所有映射涉及的所有子查询相关信息;所述映射数据项 信息包括每一映射的映射源数据项与映射目标数据项之间的对应关系;所述映射子查询基 本信息包括用于实现每一映射的子查询执行码;所述映射子查询配置信息包括每一映射下 的各层子查询的数据映射规则信息;所述映射变量信息包括每一映射所涉及的变量信息; 所述各个子查询获取模块,具体用于从所述映射基本信息中提取用于实现所述当前映 射的各个子查询信息; 所述上层子查询提取模块,具体用于根据所述映射子查询配置信息,从所述各个子查 询信息中提取所有最上层子查询信息; 所述映射规则获取模块,具体用于从所述映射子查询配置信息中获取所述最上层子查 询中的数据映射规则信息,并根据所述最上层子查询中的数据映射规则信息,逐层解析所 述最上层子查询下面的每层下层子查询,并从所述映射子查询配置信息中获取所述下层子 查询中的数据映射规则信息; 所述执行码获取单元,具体用于根据所述每层子查询中的数据映射规则,生成用于实 现所述当前映射的子查询执行码,并将生成的执行码回写入所述映射子查询基本信息中, 或者,从所述映射子查询基本信息中提取预选存储的用于实现所述当前映射的子查询执行 码; 所述对应关系取单元,具体用于从所述映射数据项信息中提取所述当前映射的映射源 数据项与映射目标数据项之间的对应关系; 所述第一映射实现单元,具体用于将所述对应关系、所述映射变量信息中与所述当前 映射相关的变量信息输入到所述子查询执行码的对应位置,以得到映射执行码,通过执行 所述映射执行码实现所述当前映射。10. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 映射程序存储单元,用于将所述映射执行码存储在所述映射基本信息中; 执行码判断单元,用于在所述映射规则获取单元获取用于实现当前映射的每层子查询 中的数据映射规则之前,判断所述映射基本信息中是否存储有用于实现所述当前映射的映 射执行码; 第二映射实现单元,用于若所述映射基本信息中存储有用于实现所述当前映射的映射 执行码,则从所述映射基本信息中调取所述映射执行码,并通过执行所述子查询执行码实 现所述当前映射; 映射功能转换单元,用于若所述映射基本信息中不存储有用于实现所述当前映射的映 射执行码,则利用所述映射规则获取单元实现所述获取用于实现当前映射的每层子查询中 的数据映射规则的功能。11. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 信息校验单元,用于在所述规则信息存储单元存储映射规则信息之前,利用用户输入 的对所述映射规则信息进行校验的校验信息; 存储执行单元,用于在校验通过后,利用所述规则信息存储单元存储通过校验的规则 信息; 异常显示单元,用于在校验异常时,显示异常的规则信息。12. 根据权利要求11所述的装置,其特征在于,所述校验信息涉及的校验内容包括以下 一种或多种: 校验必须唯一存在的信息是否唯一存在; 校验必须有效的信息是否有效; fe验必须存在的彳目息是否缺失。
【文档编号】G06F9/44GK105843605SQ201610153764
【公开日】2016年8月10日
【申请日】2016年3月17日
【发明人】张文杰, 程唯超, 王华丹
【申请人】中国银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1