首页> 中国专利> 专利索引数据库的数据迁移方法和系统

专利索引数据库的数据迁移方法和系统

摘要

本发明公开了一种专利索引数据库的数据迁移方法和系统,涉及数据库间的数据同步技术领域。其中,方法包括:TRS数据库服务器将TRS文件发送至ES数据库服务器;ES数据库服务器从TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;将对应关系中的库名转换为分片路由Routing,将多条专利数据导入到对应Routing的数据分片中。本发明将专利数据从TRS数据库中批量迁移到ES数据库中,且保证迁移后各数据分片的均衡。

著录项

  • 公开/公告号CN114840474A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 中汽信息科技(天津)有限公司;

    申请/专利号CN202210785305.2

  • 申请日2022-07-06

  • 分类号G06F16/11(2019.01);G06F16/16(2019.01);G06Q50/18(2012.01);

  • 代理机构

  • 代理人

  • 地址 300300 天津市东丽区先锋东路68号科研楼416室

  • 入库时间 2023-06-19 16:16:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-20

    授权

    发明专利权授予

  • 2022-08-19

    实质审查的生效 IPC(主分类):G06F16/11 专利申请号:2022107853052 申请日:20220706

    实质审查的生效

说明书

技术领域

本发明实施例涉及数据库间的数据同步技术,尤其涉及一种专利索引数据库的数据迁移方法和系统。

背景技术

TRS SERVER全文数据库系统(以下简称TRS数据库)是由TRS公司开发的一个体系结构先进、功能强大的面向文本数据的数据库管理系统,核心技术为全文检索。Elasticsearch数据库(以下简称ES数据库)是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。

ES数据库具有分布式、易扩展和高效索引的优点。在应用于存储并索引海量的专利数据的场景时,ES数据库比TRS数据库表现更好,随着设备迭代和产品升级,需要将TRS数据库中的专利数据迁移到ES数据库中,以满足对海量专利数据的存储和检索需求。

发明内容

本发明实施例提供一种专利索引数据库的数据迁移方法和系统,以将专利数据从TRS数据库中批量迁移到ES数据库中,且保证迁移后各数据分片的均衡。

第一方面,本发明实施例提供了一种专利索引数据库的数据迁移方法,包括:

TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中,将所述TRS文件发送至ES数据库服务器;

所述ES数据库服务器从所述TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;如果目标专利数据的来源库存储有未超过所述阈值的专利数据,则建立所述目标专利数据与自定义的库名的对应关系;其中,所述目标专利数据为TRS中任一条专利数据;将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中。

第二方面,本发明实施例还提供了一种专利索引数据库的数据迁移系统,包括通信连接的TRS数据库服务器和ES数据库服务器;

TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中,将所述TRS文件发送至ES数据库服务器;

所述ES数据库服务器从所述TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;如果目标专利数据的来源库存储有未超过所述阈值的专利数据,则建立所述目标专利数据与自定义的库名的对应关系;其中,所述目标专利数据为TRS中任一条专利数据;将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中。

本发明提供了一种具有开创性的从TRS数据库批量迁移专利数据到ES数据库中的方法,由TRS数据库服务器和ES数据库服务器协同完成。首先由TRS数据库服务器利用TRS数据库的特点,生成TRS文件对专利数据进行暂存;然后,ES数据库服务器从所述TRS文件解析出多条专利数据,建立每条专利数据与来源库的库名/自定义库名的对应关系,从而识别出每条专利数据是来源于大数据量库还是小数据量库;接着,将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中,从而将各大数据量库分别单独存储为一个Routing的数据分片中,将小数据量库合并存储为一个Routing的数据分片中,实现了数据迁移后的均衡存储。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种专利索引数据库的数据迁移方法的流程图;

图2是本发明实施例提供的另一种专利索引数据库的数据迁移方法的流程图;

图3为本发明实施例提供的一种专利索引数据库的数据迁移系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例一

本发明实施例提供一种专利索引数据库的数据迁移方法,其流程图如图1所示,可适用于将TRS数据库中的专利数据迁移到ES数据库中的情况。本实施例由专利索引数据库的数据迁移系统执行,该系统包括通信连接的TRS数据库服务器和ES数据库服务器。

参见图1,本实施例提供的方法包括以下操作:

S110、TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中,将所述TRS文件发送至ES数据库服务器。

TRS数据库中预先存储有多条专利数据,每条专利数据包括专利文本和著录项目等信息,一条专利数据在TRS数据库或者ES数据库中称为一条记录。TRS数据库服务器可以响应于任何触发条件开始从TRS数据库中批量导出专利数据,具体调用TRS数据库的数据导出接口批量导出专利数据。

在一具体使用场景中,为了增加用户的可操作性,迁移数据的可控性,支持通过界面检索的形式选择需要迁移的专利数据。用户可在界面上输入检索式,TRS数据库服务器使用检索式对本地数据库进行检索,将检索结果通过TRS数据库的数据导出接口批量导出,每指定数量条专利数据存储至一TRS文件中。检索式为用户输入或者自动生成。示例性的,每导出2000条专利数据则存储到一个.trs文件中。

TRS数据库中按照申请国的不同,将专利数据进行分库存储,库名为专利申请国的国名。导出的专利数据可能来源于不同的库,本实施例限定一个TRS文件存储同一库中导出的专利数据,从而一个TES文件对应一个库名。如果同一库中导出的专利数据条数超过指定数量,则将超出的部分创建新的TRS文件进行存储,不足指定数量的也会采用一个TRS存储。

最后,TRS数据库服务器将多个TRS文件进行压缩,将压缩包命名为ES数据库中的目地库名es和迁移操作名index。该命名的含义为将该压缩包内的专利数据迁移到ES数据库中的目的库。通过ftp协议将压缩包上传到ES数据库服务器。至此,TRS数据库服务器完成了专利数据的导出与上传。

S120、ES数据库服务器从所述TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;如果目标专利数据的来源库存储有未超过所述阈值的专利数据,则建立所述目标专利数据与自定义的库名的对应关系;其中,所述目标专利数据为TRS中任一条专利数据;将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中。

ES数据库服务器接收到压缩包后,进行解压缩,将目地库名es和迁移操作名index暂存。根据迁移操作名index从TRS文件解析出多条专利数据。

每条专利数据都有其来源库(即TRS数据库中的库),本实施例设置一阈值,例如10000,如果来源库超过10000则为大数据量库,需要单独存储到一个Routing的数据分片中;如果来源库未超过10000则为小数据量库,为了实现数据分片存储的均衡,可以将来源于多个小数据量库的专利数据合并存储到一个Routing的数据分片中。需要说明的是,一个Routing对应多个数据分片,数据分片的具体数量可以自行设置。

为了实现上述目的,建立专利数据与来源库的库名/自定义库名的对应关系。其中,自定义库名为不同于任一TRS数据库各库的库名,例如other。

ES数据库服务器调用ES数据库的接口,将对应关系中的库名作为ES数据库的分片路由Routing,将所述多条专利数据导入到目地库名对应的库的相应Routing的数据分片中。

本发明提供了一种具有开创性的从TRS数据库批量迁移专利数据到ES数据库中的方法,由TRS数据库服务器和ES数据库服务器协同完成。首先由TRS数据库服务器利用TRS数据库的特点,生成TRS文件对专利数据进行暂存;然后,ES数据库服务器从所述TRS文件解析出多条专利数据,建立每条专利数据与来源库的库名/自定义库名的对应关系,从而识别出每条专利数据是来源于大数据量库还是小数据量库;接着,将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中,从而将各大数据量库分别单独存储为一个Routing的数据分片中,将小数据量库合并存储为一个Routing的数据分片中,实现了数据迁移后的均衡存储。进一步的,通过将所述多条专利数据导入到目地库名对应的库的相应Routing的数据分片中,当专利数据来源于多个库时,实现了多个库合并为一个库,减少了维护成本。

实施例二

本实施例在上述实施例的基础上对对应关系的建立过程和解析过程进行优化。参见图2,专利索引数据库的数据迁移方法包括以下操作:

S200、TRS数据库服务器统计各库存储的专利数据;如果所存储专利数据的量超过所述阈值,将库名添加到全局变量RouterSet;如果所存储专利数据的量未超过所述阈值,将所述自定义的库名添加到全局变量RouterSet。

其中,阈值可以是10000,用于区分大数据量库和小数据量库。

S210、TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中,将所述TRS文件发送至ES数据库服务器。

S220、ES数据库服务器按行读取所述TRS文件中的数据,将相邻两个开始标识之间的专利数据解析为MAP对象中的属性名和属性值,直到TRS文件中所有专利数据读取完成。

如前述.trs文件存储了2000条专利数据,则会分别存储到2000个MAP对象中。

可选的,在相邻两个开始标识之间的专利数据中过滤冗余的字符串和符号;通过正则表达式匹配设定符号内的属性名和设定符号外的属性值;判断所述设定符号内的属性名是否为ES数据库的表结构中的字段名;如果为字段名,则在所述MAP对象中增加所述设定符号内的属性名和设定符号外的属性值;如果不为字段名,则将当前行的专利数据作为上一行专利数据的扩展属性值,存储到MAP对象中。

在一具体实施方式中,一个.trs文件格式如下,左侧为行号:

1.

2. <文献号>=CN114662060A

3. <公开类型>=B2

4. <优先权>=无

5. <最早优先权日>=无

6. <公开(公告)号>=CN114662060A

7. <公开年>=2022

8. <公开(公告)日>=20220624

9. <摘要 FMT=XML;STG=DUMB>==

12.

13. <文献号>=JPH0541878B2

14. <公开类型>=B2

15. ......

开始标识为,当读取到第1行的时创建一MAP对象,将后续2~11行的数据进行处理并存储为MAP对象中的属性名和属性值,在读取到第12行的时,保存前述MAP对象,并创建一新的MAP对象,以此类推。

下面详细说明属性值和属性名的解析过程。可选的,在后续读取的专利数据中过滤冗余的字符串和符号。其中,冗余的字符串和符号为在TRS数据库中存在而在ES数据库中不存在的内容。示例性的,TRS数据库只存储索引而不存储数据时会增加一条信息:FML=XML;STG=DUMB,ES数据库则不会存储该信息,则判断是否包含该信息,如果包含则过滤掉该字符串。冗余的符号为*,则转换为空。

然后,通过正则表达式和ES数据库的表结构解析为属性名和属性值,并存储到MAP对象中。具体而言,通过正则表达式匹配设定符号内的属性名和设定符号外的属性值;判断所述设定符号内的属性名是否为ES数据库的表结构中的字段名;如果为字段名,则在所述MAP对象中增加所述设定符号内的属性名和设定符号外的属性值;如果不为字段名,则将当前行的专利数据作为上一行专利数据的扩展属性值,存储到MAP对象中。

参见上述.trs文件格式,通过正则表达式,匹配<和>=之间的属性名,以及>=后面的属性值,判断获取到的属性名是否为ES数据库的表结构中的字段名;如果是字段名,说明ES数据库支持该字段名,则在MAP对象中添加一条属性名:属性值。如果不是字段名,说明ES数据库不支持该字段名,则将整行信息作为上一行专利数据的扩展属性值,存储到MAP对象中。例如11行的img file="000002.tif" id="000002" he="100" wi="080" img-format="tif" img-content="drawing"/不是ES数据库支持的字段名,则作为摘要这一属性名的扩展属性值。

可选的,在按行读取专利数据时,遇到换行符、控制、空格则跳过。

可选的,当解析到=xxx时,记录下xxx的值。其中,db表示来源库的库名,xxx是具体的库名。

本实施例通过过滤操作、正则表达式和字段名的判定,成功从TRS文件中解析出专利数据中的属性名和属性值。

S230、ES数据库服务器将全局变量RouterSet作为变量BatchMap的键,将目标专利数据存储到变量BatchMap中键对应的列表中。

全局变量RouterSet存储有大数据库的库名和至少一个小数据库对应的自定义库名other。

变量BatchMap的key为全局变量RouterSet中的序列,将MAP对象存储到变量BatchMap中key对应的列表(List)中。其中,目标专利数据为任一条专利数据,此处已解析并存储到MAP对象中。如果MAP对象中目标专利数据的来源库存储有未超过所述阈值的专利数据,存储到key=other的List中,如果MAP对象中目标专利数据的来源库存储有超过所述阈值的专利数据,存储到key=来源库的库名的List中。

在已经解析出db的值的情况下,采用db的值xxx在key中匹配,如果有该db的值则对应存储到List中;如果没有该db的值则存储到other的List中。

S240、ES数据库服务器监控到一列表中MAP对象的数量超过设置值,将所述列表中MAP对象中的专利数据进行处理后批量同步为JAVA对象,并将JAVA对象转换为JSON对象。

设置值可以自定义,例如1000。当监控到一key对应的List的数量超过1000时,将所述列表中MAP对象中的专利数据进行处理后批量同步为JAVA对象。

本实施例继续对MAP对象进行处理,ES数据库服务器将所述MAP对象中的专利数据按照ES数据库的格式要求进行处理,同步为JAVA对象。具体的,将多值字段转化为数组,增加缺失字段(即ES数据库需要但TRS数据库不存在的字段,例如导入时间字段),滤除ES数据库不支持数值(例如默认值0)以及格式转换(例如将ES数据库不支持的字符串转换为支持的数字格式)。

然后,直接将JAVA对象转换为ES数据库能够识别的JSON对象,一个JAVA对象转换为一个JSON对象。期间只需要对象格式转换,不需要数据处理。假设TRS文件存储了2000条专利数据,则得到2000个JAVA对象,继而得到2000个JSON对象。

S250、将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中。

ES数据库服务器调用ES数据库的接口,将JSON对应的key作为ES数据库的分片路由routing,将2000个JSON对象导入到目地库名对应的库的相应Routing的数据分片中。

分片路由是ES数据库的独特功能。预先为ES数据库分片,将专利数据按照库名(即申请国的国名)存储到对应的数据分片上。这样ES数据库会优先检索分片路由,再在对应的数据分片上检索。具体的,在专利数据迁移之后,在界面上输入检索式,包括申请国别和其它检索条件(例如分类号和关键词)。ES数据库接收到申请国名和其它检索条件,优先按照申请国名检索到目标Routing,再根据其它检索条件检索目标Routing下的数据分片。如果申请国别为小数据量库的库名,即之前在TRS数据库中的存储量较小,则从ES数据库的自定义库名的Routing的数据分片中检索。

需要说明的是,通过将TRS数据库的库名转换为ES数据库,实现了多个库合并为一个库,减少了维护成本。而且,检索分片路由的效率要高于检索数据分片内部数据的效率,所以通过优先检索分片路由锁定申请国别能够大大提升检索效率。

本发明提供了一种具有开创性的从TRS数据库批量迁移专利数据到ES数据库中的方法,由TRS数据库服务器和ES数据库服务器协同完成。首先由TRS数据库服务器利用TRS数据库的特点,生成TRS文件对专利数据进行暂存;然后,ES数据库服务器从所述TRS文件解析出多条专利数据,建立每条专利数据与来源库的库名/自定义库名的对应关系,从而识别出每条专利数据是来源于大数据量库还是小数据量库;接着,将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中,从而将各大数据量库分别单独存储为一个Routing的数据分片中,将小数据量库合并存储为一个Routing的数据分片中,实现了数据迁移后的均衡存储。

实施例三

在一具体实施方式中,数据迁移任务需要TRS数据库服务器与ES数据库服务器配合完成,本实施例不增加额外的中心级设备,仅通过TRS数据库服务器与ES数据库服务器中分别运行对应的程序实现。具体的,在TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中之前,在Oracle数据库中插入一同步任务(即数据迁移的任务),此时同步任务的状态为第一状态。采用该同步任务的状态引导对应的程序运行。Oracle数据库可以部署在TRS数据库服务器或者ES数据库服务器。

具体的,TRS数据库服务器中运行第一程序;所述ES数据库服务器中运行第二程序。

第一程序监听到同步任务为第一状态时,从本地批量导出多条专利数据并存储到TRS文件中,将同步任务标记为第二状态;将所述TRS文件发送至ES数据库服务器,将同步任务标记为第三状态;

第二程序监听到同步任务为第三状态时,从所述TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;如果目标专利数据的来源库存储有未超过所述阈值的专利数据,则建立所述目标专利数据与自定义的库名的对应关系,将同步任务标记为第四状态。在将所述多条专利数据导入到对应Routing的数据分片中之后,将同步任务标记为第五状态,此时数据迁移完成。

实施例四

图3为本发明实施例提供的一种专利索引数据库的数据迁移系统的结构示意图。该系统包括通信连接的TRS数据库服务器和ES数据库服务器;

TRS数据库服务器从本地批量导出多条专利数据并存储到TRS文件中,将所述TRS文件发送至ES数据库服务器;

所述ES数据库服务器从所述TRS文件解析出多条专利数据;如果目标专利数据的来源库存储有超过阈值的专利数据,则建立所述目标专利数据与所述来源库的库名的对应关系;如果目标专利数据的来源库存储有未超过所述阈值的专利数据,则建立所述目标专利数据与自定义的库名的对应关系;其中,所述目标专利数据为TRS中任一条专利数据;将所述对应关系中的库名转换为分片路由Routing,将所述多条专利数据导入到对应Routing的数据分片中。

本实施例提供的专利索引数据库的数据迁移系统可以执行上述任一实施例提供的专利索引数据库的数据迁移方法,具备相应的技术效果,此处不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号