一种数据列映射方法及系统
技术领域
本发明涉及数据映射技术领域,更具体地,涉及一种数据列映射方法及系统。
背景技术
总所周知,数据库尤其是关系型数据库中数据是以表(Tab l e)的形式组织,而每个数据库表又是按行(Rows)和列(Co l umns)组织的。其中列也被称作字段,每个字段都有一个具体的类型。数据库表中的每一行都代表一条具体的数据,每一条数据正是由上述字段组成。在数据处理任务中,往往会涉及到源数据库到目标数据库的映射和整合,而由于源数据库和目标数据库往往具备不同的数据库模式(Scheme),就是说两个数据库的数据库表及列结构往往是不一样的,因此就需要将源数据库的表和列结构映射到目标数据库的表和列结构上。而由于数据库表的结构由列组成,因此我们可以将这个任务看作是从源数据库列结构到目标数据库列结构的映射。传统上,这个任务基本上是由数据专家人工完成,耗时长,费用高。
发明内容
针对现有技术中存在的问题,本发明的目的在于设计一种数据列映射方法及系统,解决源数据库列结构到目标数据库列结构的映射需耗费时间长,成本高的问题。
为达到上述技术目的,本发明的技术方案提供一种数据列映射方法,其中,包括:
S1、获取源数据库与目标数据库表和列的特征信息;
S2、将获取的特征信息文本化;
S3、将文本化的特征信息转化为矢量;
S4、抽取部分源数据库列与目标数据库列的组合形成样本集合;
S5、对样本集合中的源数据库列与目标数据库列的特征信息矢量进行相似度计算并进行匹配判断;
S6、基于上述相似度计算结果及匹配判断结果,生成贝叶斯分类器;
S7、将上述贝叶斯分类器应用于所有的源数据库列与目标数据库列组合。
本发明还提供一种数据列映射系统,其中,包括:
获取特征信息模块:用于获取源数据库与目标数据库表和列的特征信息;
文本化模块:用于将获取的特征信息文本化;
矢量化模块:用于将文本化的特征信息转化为矢量;
样本集合模块:用于抽取部分源数据库列与目标数据库列的组合形成样本集合;
相似度计算模块:用于对样本集合中的源数据库列与目标数据库列的特征信息矢量进行相似度计算并进行匹配判断;
贝叶斯分类器模块:用于将上述相似度计算结果及匹配判断结果,生成贝叶斯分类器;
应用模块:用于将贝叶斯分类器应用于所有的源数据库列与目标数据库列组合。
与现有技术相比,本发明具有以下有益效果:本发明可以实现自动化的数据库列映射,提高工作效率。
附图说明
图1是本发明提供的一种数据列映射方法流程图。
图2是本发明提供的一种数据列映射系统结构框图。
附图标记说明:数据列映射系统 1,获取特征信息模块 11,文本化模块 12,矢量化模块 13,样本集合模块 14,相似度计算模块 15,贝叶斯分类器模块 16,应用模块 17,词集合模块 131,ngram元祖文本矢量模块 132,权重矢量模块 133。
具体实施方式
下面结合附图对本发明进行详细描述,本部分的描述仅是示范性和解释性,不应对本发明的保护范围有任何的限制作用。
本发明提供的一种数据列映射方法,其中,包括:
S1、获取源数据库与目标数据库表和列的特征信息;
S2、将获取的特征信息文本化,具体地是将得到的数据库表/列特征信息转化为文本字符串;
S3、将文本化的特征信息转化为矢量;
S4、抽取部分源数据库列与目标数据库列的组合形成样本集合;
S5、对样本集合中的源数据库列与目标数据库列的特征信息矢量进行相似度计算并进行匹配判断;
S6、基于上述相似度计算结果及匹配判断结果,生成贝叶斯分类器;
S7、将上述贝叶斯分类器应用于所有的源数据库列与目标数据库列组合。
本发明所述的数据列映射方法,步骤S1中:
从源数据库和目标数据库中的数据列可以获得如下特征信息:每个数据库列所属表中文表名、每个数据库列所属表英文表名、每个数据库列中文列名、每个数据库列英文表名、每个数据库列的类型、每个数据库列中数据的抽样;若上述描述信息为多种语言版本,则每种语言的版本可作为一种单独的特征信息;源数据库与目标数据库表和列的特征信息还可以是组合特征信息,可以由简单特征信息组合而成,比如数据库表名+数据库列名可以形成一个新的特征信息。
例如:源数据库中人员信息表的第一个数据列可以获得以下特征信息:中文表名-人员信息表,英文表名-Peop l e I nfo,中文列名-姓名,英文列名-Name,类型-Text,数据抽样-“张三李四王五”;对于每个数据库列,均能获得以上类似的特征信息。
本发明所述的数据列映射方法,步骤S3中包括:
S31、将文本化的特征信息转换为由一系列词组成的词集合,对于中文信息,还可能需要应用分词算法。
S32、使用Ngram算法将上述词集合转化为一个由ngram元祖组成的文本矢量,Ngram算法是一种常见的将文本字符串矢量化的算法,其中N为正整数。
例如:以3gram算法来举例,假设有如下一个字符串:“The quick brown foxjumps over the lazy dog”,3gram算法的运作方式如下:
A,首先在字符串中每个词的前面添加2个空格,然后在每个词的后面添加一个空格;
B,从第一个字符开始,取连续三个字符作为矢量分量放入矢量;
C,以此循环直到字符串结尾。
上述字符串就被转化为以下文本矢量:(t,th,the,he,e,q,qu,qui,uic,ick,ck,k,b,br,bro,row,own,f,fo,fox,ox,x,j,ju,jum,ump,mps,ps,s,o,ov,ove,ver,er,r,t,th,the,l,la,laz,azy,zy,y,d,do,dog),其中每个矢量分量用逗号分隔。
S33、使用TF-IDF算法计算上述文本矢量中每个元素的权重,并得到一个权重矢量,其计算方法如下:
A,一个文本矢量分量在一个句子中的出现频率可以记为:(f t,d),t代表某个分量,而d代表某个文本矢量;使用对数归一化的tf可以计算为:
tf(t,d)=1+log(ft,d)
B,但是单独使用tf的问题是某些常用词如the,th i s等的频繁出现会扭曲相似度的计算,换言之两个句子如果都有一个非常用词比都有一个常用词的相似度应该要更高。我们用i df参数来表示一个文本矢量分量的非常用特性:
其中N是指用于计算的文本矢量的总数,而|{d∈D,t∈d}|表示有多少文本矢量包含有该分量t。
C,最终的矢量权重如下计算:
weight=tf(t,d)×idf(t,D)
本发明所述的数据列映射方法,步骤S4中:
样本集合中包含的每个成员都是由一个源数据库列和一个目标数据库列形成的组合,如果用表名+列名来标识一个列的话,那么该样本集合的一个例子就是:(源数据库人员信息表-姓名列,目标数据库雇员信息表-员工姓名列)、(源数据库人员信息表-姓名列,目标数据库雇员信息表-工号列)。
本发明所述的数据列映射方法,步骤S5中:
使用余弦相似度算法计算源数据库列与目标数据库列对应特征信息权重矢量之间的相似度,并对源数据库列和目标数据库列进行匹配判断。
由于提取多种特征信息,因此每个数据列有多个特征信息矢量,因此可以计算出多个相似度,相似度计算采用的是余弦相似度算法来计算两个矢量的相似度:
由人工进行样本数据库中源数据库列和目标数据库列的匹配判断,其结果例子如下:(源数据库人员信息表-姓名列,目标数据库雇员信息表-员工姓名列,匹配结果:是)、(源数据库人员信息表-姓名列,目标数据库雇员信息表-工号列,匹配结果否)。
本发明所述的数据列映射方法,步骤S6中:
贝叶斯分类器是假定源数据库列与目标数据库列的不同特征信息之间的分布是独立的,并假定相关分布遵从高斯分布。
该分类器的分类规则如下:当一个源数据库列与一个目标数据库列进行特征矢量相似度计算的相似度集合为(s1,s2,...sN),其中N指特征信息的数量,在这个相似度下源数据库列与目标数据库列匹配的概率是:
不匹配的概率是:
计算匹配概率和不匹配概率后,可以根据哪个概率更大,能够判断是否匹配。
本发明还提供一种数据列映射系统1,其中,包括:
获取特征信息模块11:用于获取源数据库与目标数据库表和列的特征信息;
文本化模块12:用于将获取的特征信息文本化,具体地是将得到的数据库表/列特征信息转化为文本字符串;
矢量化模块13:用于将文本化的特征信息转化为矢量;
样本集合模块14:用于抽取部分源数据库列与目标数据库列的组合形成样本集合;
相似度计算模块15:用于对样本集合中的源数据库列与目标数据库列的特征信息矢量进行相似度计算并进行匹配判断;
贝叶斯分类器模块16:用于将上述相似度计算结果及匹配判断结果,生成贝叶斯分类器;
应用模块17:用于将贝叶斯分类器应用于所有的源数据库列与目标数据库列组合。
本发明所述的数据列映射系统1,获取特征信息模块11中:
获取的特征信息包括但不限于:数据库表名、数据库表描述信息、数据库列名、数据库列描述信息、数据库列类型、数据库列的数据抽样。
本发明所述的数据列映射系统1,矢量化模块13包括:
词集合模块131:用于将文本化的特征信息转换为由一系列词组成的词集合;
ngram元祖文本矢量模块132:用于使用Ngram算法将上述词集合转化为一个由ngram元祖组成的文本矢量;
权重矢量模块133:用于使用TF-IDF算法计算上述文本矢量中每个元素的权重,并得到一个权重矢量。
本发明所述的数据列映射系统1,样本集合模块14中:
用于抽取部分源数据库列与目标数据库列的组合形成样本集合。
本发明提供的一种数据列映射方法及系统在使用过程中,首先获取源数据库与目标数据库表和列的特征信息,将获取得到的数据库表/列特征信息转化为文本字符串,将文本化的特征信息转换为由一系列词组成的词集合,对于中文信息,还可能需要应用分词算法,使用Ngram算法将上述词集合转化为一个由ngram元祖组成的文本矢量,使用TF-IDF算法计算上述文本矢量中每个元素的权重,并得到一个权重矢量,抽取部分源数据库列与目标数据库列的组合形成样本集合,再使用余弦相似度算法计算样本集合中对应特征信息权重矢量之间的相似度,并通过人工进行匹配判断,根据相似度计算结果及匹配判断结果生成贝叶斯分类器,将贝叶斯分类器应用于所有的源数据库列与目标数据库列组合,能够获得所有配对是否匹配的结果。
以上所述,仅是本发明的较佳实施例而已,并非对本发明的技术范围作出任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明的技术方案范围内。