首页> 中国专利> 将文档型数据库的数据转换至关系型数据库的方法及系统

将文档型数据库的数据转换至关系型数据库的方法及系统

摘要

本发明提供一种将文档型数据库的数据转换至关系型数据库的方法及系统,所述方法包括:采集地址参数、用户身份参数以及导出参数;采集用户输入的启动请求;根据所述的启动请求、地址参数以及用户身份参数抓取文档型数据库的数据,得到超文本标记语言HTML文件;根据标签匹配方式对所述的HTML文件进行转换,得到文本文件;根据所述的导出参数将所述的文本文件中的数据导入至关系型数据库中。实现了文档型数据库向关系型数据库的数据移行,由此降低移行程序的开发成本,提高移行效率。

著录项

  • 公开/公告号CN103955517A

    专利类型发明专利

  • 公开/公告日2014-07-30

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN201410187061.3

  • 发明设计人 陈旻炜;陈建军;舒文宇;

    申请日2014-05-05

  • 分类号G06F17/30(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人汤在彦

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-12-17 00:30:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-03

    授权

    授权

  • 2014-08-27

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140505

    实质审查的生效

  • 2014-07-30

    公开

    公开

说明书

技术领域

本发明关于计算机数据处理技术领域,特别是关于不同数据库之间的数据迁移技术, 具体的讲是一种将文档型数据库的将文档型数据库的数据转换至关系型数据库至关系型 数据库的方法及系统。

背景技术

随着计算机技术的日益发展,原本基于文档型数据库开发的应用系统越来越多的需要 迁移到主流的浏览器B/服务器模式S平台应用系统。如何实现将文档型数据库中的老数据 迁移到B/S平台的关系型数据库中,并同时满足B/S平台新系统的要求呢?

传统的数据信息获取和转换方式是通过后台数据逻辑变换实现的,即通过文档型数据 库的客户端导出程序,文档型数据库中按移行要素遍历和逻辑计算后,下载数据至导出客 户端本地,下载的数据包括文字信息和实体文件。

上述传统的数据获取和转换方式在数据移行中存在的弊端主要包括:

1、移行程序开发成本高,复用率低。在文档型数据库中存放的是非结构化的文档, 而用户看到的信息是显示时应用系统计算得出的,因此为满足移行要求,导出程序在导出 的同时需要对数据进行逻辑计算,所以对于导出方,必须对应用系统的后台数据结构有深 入了解,定制化开发成本高,移行程序复用率低;

2、移行效率低。文档型数据库的查询效率低,尤其是在高并发情况下查询效率急剧 下降,大大限制了移行效率的提高。

因此,如何实现将文档型数据库中的老数据迁移到B/S平台的关系型数据库中,既能 满足B/S平台新系统的要求,又能克服移行工具开发成本高、复用率低、移行效率低的问 题是本领域亟待解决的技术难题。

发明内容

为了克服现有技术中文档型数据库向关系型数据库数据移行工具开发成本高、复用率 低,移行效率低的问题,本发明提供了一种将文档型数据库的数据转换至关系型数据库的 方法及系统,将文档型数据库的数据以HTML文件的形式保存,对于HTML文件的数据, 采取标签匹配方式逐行进行字符级匹配截取,最后将转换处理后的数据导入关系型数据 库,来实现文档型数据库向关系型数据库的高效数据移行。

本发明的目的之一是,提供一种将文档型数据库的数据转换至关系型数据库的方法, 包括:采集地址参数、用户身份参数以及导出参数;采集用户输入的启动请求;根据所述 的启动请求、地址参数以及用户身份参数抓取文档型数据库的数据,得到超文本标记语言 HTML文件;根据标签匹配方式对所述的HTML文件进行转换,得到文本文件;根据所述 的导出参数将所述的文本文件中的数据导入至关系型数据库中。

本发明的目的之一是,提供了一种将文档型数据库的数据转换至关系型数据库的系 统,所述的系统具体包括采集装置,用于采集地址参数、用户身份参数以及导出参数,采 集用户输入的启动请求;数据抓取装置,用于根据所述的启动请求、地址参数以及用户身 份参数抓取文档型数据库的数据,得到超文本标记语言HTML文件;数据转换装置,用于 根据标签匹配方式对所述的HTML文件进行转换,得到文本文件;数据导入装置,用于根 据所述的导出参数将所述的文本文件中的数据导入至关系型数据库中。

本发明的有益效果在于,提供了一种将文档型数据库的数据转换至关系型数据库的方 法及系统,将文档型数据库的数据以HTML文件的形式保存,对于HTML文件的数据, 采取标签匹配方式逐行进行字符级匹配截取,最后将转换处理后的数据导入关系型数据 库,来实现文档型数据库向关系型数据库的数据移行,由此降低移行程序的开发成本,提 高移行效率。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并 配合所附图式,作详细说明如下。

附图说明

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

图1为本发明实施例提供的一种将文档型数据库的数据转换至关系型数据库的方法的 流程图;

图2为图1中的步骤S103的具体流程图;

图3为图1中的步骤S104的具体流程图;

图4为图1中的步骤S105的具体流程图;

图5为本发明实施例提供的一种将文档型数据库的数据转换至关系型数据库的系统的 结构框图;

图6为本发明实施例提供的一种将文档型数据库的数据转换至关系型数据库的系统中 数据抓取装置200的结构框图;

图7为本发明实施例提供的一种将文档型数据库的数据转换至关系型数据库的系统中 数据转换装置300的结构框图;

图8为本发明实施例提供的一种将文档型数据库的数据转换至关系型数据库的系统中 数据导入装置400的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。

为了克服了现有文档型数据库向关系型数据库数据移行工具开发成本高、复用率低, 移行效率低的问题,本发明提供了一种数据转换装置及方法。通过从浏览器访问应用页面, 按深入层数参数访问页面,获取页面数据信息并下载为HTML文件,同时通过链接下载实 体文件。客户端通过本发明中定制的转换工具对HTML文件解析,可做到按需要截取某块 或某几块数据信息。由此降低移行程序的开发成本,提高移行效率。

图1为本发明提出的一种将文档型数据库的数据转换至关系型数据库的方法的具体流 程图,由图1可知,所述的方法包括:

S101:采集地址参数、用户身份参数以及导出参数;

S102:采集用户输入的启动请求。在具体的实施方式中,用户可通过客户端发起启动 请求,传入的参数包括地址参数、用户身份参数以及导出参数。参数还可包括初始网页地 址、数据传输速率、站点结构构造、抓取层级等信息。

其中,导出参数形如:%h%p/%n%q.%t,其中各参数意义如下:

%n不含扩展名的文件名(如:image)

%N含有扩展名的文件名(如:image.gif)

%t仅扩展名(如:gif)

%p路径[无尾随'/'](如:/someimages)

%h主机名(如:www.someweb.com)

%M MD5URL(128位,32ascii字节)

%Q MD5query string(128位,32ascii字节)

%q MD5small query string(16位,4ascii字节)

%s?短文件名(如:%sN)。

S103:根据所述的启动请求、地址参数以及用户身份参数抓取文档型数据库的数据, 得到超文本标记语言HTML文件。

图2为步骤S103的具体流程图,由图2可知,该步骤具体包括:

S201:读取所述的启动请求中的站点地址;

S202:获取所述地址参数中的抓取层级;

S203:根据所述的站点地址连接文档型数据库对应的网页;

S204:根据所述的抓取层级按照所述的用户身份参数抓取所述网页中的元素数据。

在具体的实施方式中,读取站点地址,根据导出参数解析元素数据排布顺序和展现形 式。可根据启动请求中的初始站点地址,连接并读取指定网页,按用户身份参数读取网页 中元素数据。然后根据地址参数中的抓取层级以及解析后的站点地址,逐级向下读取其他 站点地址并抓取其中元素数据。

S205:将所述网页的附件以实体文件的形式进行下载;

S206:将所述网页的元素数据以HTML文件的形式下载;

S207:将下载得到的实体文件以及元素数据存储至中间数据库,所述的实体文件以及 元素数据即为文档型数据库的数据;

S208:将所述实体文件以及元素数据的存储位置保存至HTML文件中。

也即,步骤S103中,根据启动请求中的地址参数,连接并读取指定网页的内容。将 当前网页的内容,保存为HTML文件,抓取网页中的附件或图片等实体文件。根据启动请 求中的地址参数和导出参数,判断是否存在符合条件的其他网页,若存在,则继续对该网 页进行抓取,若不存在,则下载数据。

在该步骤中,接收启动请求,根据地址参数访问站点地址,解析导出参数并调整展现 形式。接收到站点地址后,从文档型数据库服务器中获取初始站点地址,根据地址参数中 的层级设置向下逐级访问,读取对应的网页数据并存放到缓存。根据传入的用户身份参数, 提取数据中的可见信息,并将该信息保存为HTML文件。其中每个网页的保存过程中,将 网页中文本信息与实体文件区分处理,将文本信息和实体文件的存储位置保存到HTML文 件中。根据HTML文件中的实体文件存储位置,下载实体文件,同时将HTML文件也保 存。即通过多线程的方式将抓取网页数据以HTML文件的形式下载并保存到中间数据库。

由图1可知,该方法还包括:

S104:根据标签匹配方式对所述的HTML文件进行转换,得到文本文件。图3为步骤 S104的具体流程图,由图3可知,该步骤具体包括:

S301:根据标签匹配方式从所述的HTML文件中提取字段数据,在具体的方式中,根 据标签匹配的方式,逐行匹配截取所需的字段信息。

S302:将所述的字段数据中的链接相对路径替换为可用路径,得到替换处理后的字段 数据;

S303:去除替换处理后的字段数据中的不适用部分内容,得到去除处理后的字段数据;

即,将传入的数据中的链接相对路径替换为可用的路径,同时去除数据中不必要或会 引起问题的字符去除。

S304:将去除处理后的字段数据进行组合处理,得到组合处理后的字段数据;

S305:将组合处理后的字段数据写入文本文件;

S306:将所述的文本文件存储至所述的中间数据库。

即,逐行读取HTML文件至缓存,根据标签匹配获取所需截取字段数据的头尾,提取 字段数据并保存到缓存中。如果字段数据中包含附件或图片的链接,替换其中的相对路径, 并去除不适用的部分内容。待当前HTML文件转换完成后,从缓存中将转换后的数据以分 隔符及一定的格式进行组合,并写入文本文件中。依次对所有HTML文件进行转换。

在具体的实施方式中,该步骤逐个将HTML文件的内容读取出来进行处理;而对于每 个HTML文件,采用逐行读取的方式。逐行读取HTML文件信息后,通过HTML标签与 数据字段名称比对的方式(形如<body>,对应数据字段名称为body),截取所需要的字段 信息。接收到HTML文件后,读取待导出信息,按标准HTML对信息格式做调整,将处 理后的数据转换为标准HTML文件。(例如:1、逐个查找数据中的链接,并将链接的相对 路径替换为所需的路径,去除链接中不必要的“?OpenElement&amp;FieldElemFormat=gif” 字符;2、将数据中不必要的回车换行替换为空)。逐个读取标准HTML文件。按导出参数 对字段信息进行分隔,并写入文本文件中。全部数据写入文本文件后,将文本文件保存。

由图1可知,该方法还包括:

S105:根据所述的导出参数将所述的文本文件中的数据导入至关系型数据库中。图4 为步骤S105的具体流程图,由图4可知,该方法具体包括:

S401:从所述的中间数据库中读取所述的文本文件,此处的文本文件指的是步骤S306 保存至数据库的文本文件,是将字段组合处理过后产生的文件,与步骤S205-S207中实体 文件以及元素数据不相同。

S402:根据所述的导出参数对所述的文本文件进行拆分,得到拆分数据;

S403:将所述的拆分数据导入至关系型数据库中。此后可对关系型数据库服务器中的 数据生成主键。

如上即为本发明提供的一种将文档型数据库的数据转换至关系型数据库的方法。通过 抓取网页数据,将文档型数据库的数据以Html文件的形式保存,并通过链接下载附件实 体至数据管理装置。对于Html中的数据,采取逐行进行字符级匹配截取的方法,得到所 需要的字段数据;并且对于富文本数据中的相对路径等数据进行处理,以保证移行后可以 正常展现。最后将转换处理后的数据导入关系型数据库,来实现文档型数据库向关系型数 据库的高效数据移行。

图5为本发明提出的一种将文档型数据库的数据转换至关系型数据库的系统的具体结 构框图,由图5可知,所述的系统包括:

采集装置100,用于采集地址参数、用户身份参数以及导出参数,采集用户输入的启 动请求。在具体的实施方式中,采集装置可通过客户端来实现,用户通过客户端发起启动 请求,传入的参数包括地址参数、用户身份参数以及导出参数。参数还可包括初始网页地 址、数据传输速率、站点结构构造、抓取层级等信息。

其中,导出参数形如:%h%p/%n%q.%t,其中各参数意义如下:

%n不含扩展名的文件名(如:image)

%N含有扩展名的文件名(如:image.gif)

%t仅扩展名(如:gif)

%p路径[无尾随'/'](如:/someimages)

%h主机名(如:www.someweb.com)

%M MD5URL(128位,32ascii字节)

%Q MD5query string(128位,32ascii字节)

%q MD5small query string(16位,4ascii字节)

%s?短文件名(如:%sN)。

数据抓取装置200,用于根据所述的启动请求、地址参数以及用户身份参数抓取文档 型数据库的数据,得到超文本标记语言HTML文件。

图6为数据抓取装置200的具体结构框图,由图6可知,数据抓取装置200具体包括:

站点地址读取模块201,用于读取所述的启动请求中的站点地址;

抓取层级获取模块202,用于获取所述地址参数中的抓取层级;

网页连接模块203,用于根据所述的站点地址连接文档型数据库对应的网页;

元素数据抓取模块204,用于根据所述的抓取层级按照所述的用户身份参数抓取所述 网页中的元素数据。

在具体的实施方式中,读取站点地址,根据导出参数解析元素数据排布顺序和展现形 式。可根据启动请求中的初始站点地址,连接并读取指定网页,按用户身份参数读取网页 中元素数据。然后根据地址参数中的抓取层级以及解析后的站点地址,逐级向下读取其他 站点地址并抓取其中元素数据。

第一下载模块205,用于将所述网页的附件以实体文件的形式进行下载;

第二下载模块206,用于将所述网页的元素数据以HTML文件的形式下载;

中间数据库207,用于将下载得到的实体文件以及元素数据进行存储,所述的实体文 件以及元素数据即为文档型数据库的数据;

存储位置保存模块208,用于将所述实体文件以及元素数据的存储位置保存至HTML 文件中。

也即,数据抓取装置200中,根据启动请求中的地址参数,连接并读取指定网页的内 容。将当前网页的内容,保存为HTML文件,抓取网页中的附件或图片等实体文件。根据 启动请求中的地址参数和导出参数,判断是否存在符合条件的其他网页,若存在,则继续 对该网页进行抓取,若不存在,则下载数据。

在该装置中,接收启动请求,根据地址参数访问站点地址,解析导出参数并调整展现 形式。接收到站点地址后,从文档型数据库服务器中获取初始站点地址,根据地址参数中 的层级设置向下逐级访问,读取对应的网页数据并存放到缓存。根据传入的用户身份参数, 提取数据中的可见信息,并将该信息保存为HTML文件。其中每个网页的保存过程中,将 网页中文本信息与实体文件区分处理,将文本信息和实体文件的存储位置保存到HTML文 件中。根据HTML文件中的实体文件存储位置,下载实体文件,同时将HTML文件也保 存。

由图5可知,该系统还包括:

数据转换装置300,用于根据标签匹配方式对所述的HTML文件进行转换,得到文本 文件。图7为数据转换装置300的具体流程图,由图7可知,该数据转换装置具体包括:

字段数据提取模块301,用于根据标签匹配方式从所述的HTML文件中提取字段数据, 在具体的方式中,根据标签匹配的方式,逐行匹配截取所需的字段信息。

替换处理模块302,用于将所述的字段数据中的链接相对路径替换为可用路径,得到 替换处理后的字段数据;

去除处理模块303,用于去除替换处理后的字段数据中的不适用部分内容,得到去除 处理后的字段数据;

即,将传入的数据中的链接相对路径替换为可用的路径,同时去除数据中不必要或会 引起问题的字符去除。

组合处理模块304,用于将去除处理后的字段数据进行组合处理,得到组合处理后的 字段数据;

数据写入模块305,用于将组合处理后的字段数据写入文本文件;

发送模块306,用于将所述的文本文件发送至中间数据库。

即,逐行读取HTML文件至缓存,根据标签匹配获取所需截取字段数据的头尾,提取 字段数据并保存到缓存中。如果字段数据中包含附件或图片的链接,替换其中的相对路径, 并去除不适用的部分内容。待当前HTML文件转换完成后,从缓存中将转换后的数据以分 隔符及一定的格式进行组合,并写入文本文件中。依次对所有HTML文件进行转换。

在具体的实施方式中,该装置逐个将HTML文件的内容读取出来进行处理;而对于每 个HTML文件,采用逐行读取的方式。逐行读取HTML文件信息后,通过HTML标签与 数据字段名称比对的方式(形如<body>,对应数据字段名称为body),截取所需要的字段 信息。接收到HTML文件后,读取待导出信息,按标准HTML对信息格式做调整,将处 理后的数据转换为标准HTML文件。(例如:1、逐个查找数据中的链接,并将链接的相对 路径替换为所需的路径,去除链接中不必要的“?OpenElement&amp;FieldElemFormat=gif” 字符;2、将数据中不必要的回车换行替换为空)。逐个读取标准HTML文件。按导出参数 对字段信息进行分隔,并写入文本文件中。全部数据写入文本文件后,将文本文件保存至 数据库。

由图5可知,该系统还包括:

数据导入装置400,用于根据所述的导出参数将所述的文本文件中的数据导入至关系 型数据库中。图8为数据导入装置的具体流程图,由图8可知,数据导入装置具体包括:

数据读取模块401,用于从所述的中间数据库中读取所述的文本文件,此处的文本文 件指的是步骤S306保存至数据库的文本文件,是将字段组合处理过后产生的文件,与步 骤S205-S207中实体文件以及元素数据不相同。

数据拆分模块402,用于根据所述的导出参数对所述的文本文件进行拆分,得到拆分 数据;

数据导入模块403,用于将所述的拆分数据导入至关系型数据库中。此后可对关系型 数据库服务器中的数据生成主键。如此即实现了将文档型数据库的数据转换至关系型数据 库。

综上所述,本发明提出的一种将文档型数据库的数据转换至关系型数据库的方法及系 统,通过抓取网页数据,将文档型数据库的数据以Html文件的形式保存,并通过链接下 载附件实体至数据管理装置。对于Html中的数据,采取逐行进行字符级匹配截取的方法, 得到所需要的字段数据;并且对于文本数据中的相对路径等数据进行处理,以保证移行后 可以正常展现。最后将转换处理后的数据导入关系型数据库,来实现文档型数据库向关系 型数据库的高效数据移行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计 算机程序来指令相关的硬件来完成,所述的程序可存储于一般计算机可读取存储介质中, 该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、 光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access  Memory,RAM)等。

本领域技术人员还可以了解到本发明实施例列出的各种功能是通过硬件还是软件来 实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应 用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护 的范围。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依 据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号