CN110727726A - 一种文档型数据库中数据抽取到关系数据库的方法和系统 - Google Patents

一种文档型数据库中数据抽取到关系数据库的方法和系统 Download PDF

Info

Publication number
CN110727726A
CN110727726A CN201910942206.9A CN201910942206A CN110727726A CN 110727726 A CN110727726 A CN 110727726A CN 201910942206 A CN201910942206 A CN 201910942206A CN 110727726 A CN110727726 A CN 110727726A
Authority
CN
China
Prior art keywords
data
document
type
database
domain
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
Application number
CN201910942206.9A
Other languages
English (en)
Other versions
CN110727726B (zh
Inventor
梅纲
付铨
胡高坤
周淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dameng Database Co Ltd
Original Assignee
Wuhan Dameng Database Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Dameng Database Co Ltd filed Critical Wuhan Dameng Database Co Ltd
Priority to CN201910942206.9A priority Critical patent/CN110727726B/zh
Publication of CN110727726A publication Critical patent/CN110727726A/zh
Application granted granted Critical
Publication of CN110727726B publication Critical patent/CN110727726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本发明涉及数据库领域,具体涉及一种文档型数据库中数据抽取到关系数据库的方法和系统,其中文档型数据库中数据抽取方法包含以下步骤:在文档型数据库中创建视图,视图包括所有需进行数据转换的文档;获取视图中所有文档,并获取每一个文档的文档ID;获取视图中所有文档中出现过的域名的并集;在关系数据库中创建视图对应的表,并集中的每一个域名为表中的一个字段名;将每个需进行数据转换的文档中每个域的第一数据分别转换为对应域的预设数据类型的第二数据,根据文档的全局唯一ID和域名,将第二数据插入表的相应位置。本发明解决了文档型数据库中数据抽取时不同文档域集不同的问题,提供了一种可正确、快速、批量进行数据抽取的方法和系统。

Description

一种文档型数据库中数据抽取到关系数据库的方法和系统
【技术领域】
本发明涉及数据库领域,特别是涉及一种文档型数据库中数据抽取到关系数据库的方法和系统。
【背景技术】
目前常用的数据库有文档型数据库和关系数据库两种类型。文档型数据库以文档作为基本存储单元存放数据,不同性质数据存储在不同域中。关系数据库以表作为基本存储单元存放数据,不同性质数据存放在不同字段中。两种数据库对于数据及文件的组织方式不同,数据存取的方式也不同。
为了解决文档型数据库和关系数据库间数据交换问题,将文档型数据库中以文档形式存储的数据转换至关系数据库的表形式存储,需要将文档型数据库中的数据按照一定规则抽取至关系数据库中。目前,一般的抽取方式是直接使用数据读取接口读取文档型数据库中需转换文档各域的数据,插入关系数据库表中相应的位置。
但是,文档型数据库中不同文档存放的数据属性和内容不同,因此每一文档中的域集可根据需要进行自定义,除了通用域外的域集可能不一致,相同域名的数据类型可能不一致,同一文档中存在域名重复现象,且文档中可能包含不属于同一数据库实例的附件。因此,直接提取数据的方式可能造成数据冲突或提取不完整等问题,导致目前文档型数据库中数据抽取到关系数据库中时一般需要为每一个待抽取文档建立一个表进行存储,若需将多个文档的数据存放在同一个表中进行管理,还需在进行数据抽取后再使用数据库工具将多个表合并至一个表中,无法方便的将多个文档抽取至同一表中。
鉴于此,如何克服该现有技术所存在的缺陷,,避免数据抽取时的域名冲突,是本技术领域亟待解决的问题。
【发明内容】
针对现有技术的以上缺陷或改进需求,本发明解决了文档型数据库向关系数据库中进行数据抽取时各文档域集不一致导致的无法批量抽取,以及文档内域名重复等因素造成的数据抽取错误。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种文档型数据库中数据抽取到关系数据库的方法,包括:在文档型数据库中创建视图,视图包括所有需进行数据转换的文档;获取视图中所有文档,并获取每一个文档的文档ID,每一个文档的文档ID为全局唯一ID;获取视图中每一文档中域名的集合,并将各文档中域名的集合取并集;在关系数据库中创建视图对应的表,以并集中的每一个域名为字段名,向表中插入字段;获取每个文档中每个域中待抽取的数据,将第一数据转换为相应域名的字段的预设数据类型的数据;根据文档的文档ID和域名,将转换后的数据插入表的相应位置。
优选的,将转换后的数据插入表的相应位置,具体为:以文档ID为主键向表中插入行,其中每一行存放一个文档的所有数据;将文档中每个域的转换后的数据插入文档所在行相应域名的字段。
优选的,将转换后的数据插入视图对应表的相应位置,还包括:若同一文档中存在多个相同域名的域,将每个域中的数据单独进行数据转换,转换后的第二数据用预设连接符连接成为第三数据,将第三数据插入文档所在行相应域名的字段。
优选的,将每个需进行数据转换的文档中每个域的第一数据分别转换为对应域的预设数据类型的第二数据,具体为:判断第一数据是否为富文本,若是,预设数据类型为CLOB类型;若否,判断第一数据长度是否大于预设数据长度,若是,预设数据类型为CLOB类型,若否,预设数据类型为VARCHAR类型;将第一数据转换为预设数据类型的第二数据。
优选的,步骤判断第一数据是否为富文本之前,还包括:将前一次转换使用的预设数据类型保存为历史数据类型;判断历史数据类型是否为CLOB类型,若是,不判断本次转换数据类型,使用历史数据类型作为本次转换的预设数据类型。
优选的,还包括:获取每一需进行数据转换的文档的每一域的第一数据;获取表中与需进行数据转换的文档对应的行中每一字段的第二数据;判断域名对应字段的第二数据是否与第一数据相同,若是,表明数据转换正确,完成转换;若否,表明数据转换不正确,重新获取对应字段的第二数据。
优选的,还包括:在文档型数据库的附件库中创建完全视图;遍历完全视图中所有文档,判断每一文档是否包含附件域,若是,获取源附件文件,将源附件文件提取到本地文件系统中生成目标附件文件;表中设置附件路径字段,将目标附件文件在本地文件系统中的绝对路径插入相应文档的附件路径字段。
优选的,还包括:生产源附件文件的第一SHA校验值,和目标附件文件的第二SHA校验值;判断第一SHA校验值和第二SHA校验值是否一致,若否,删除现有目标附件文件,再次获取源附件文件,将源附件文件提取到本地文件系统生成第二目标附件文件。
优选的,还包括:视图中每一文档数据抽取完成后,将当前文档的文档ID标记为已抽取文档ID;若产生错误导致数据抽取中断,中断恢复时判断待抽取文档的文档ID是否为已抽取文档ID,若是,跳过当前文档,若否,对文档进行数据抽取。
另一方面,本发明提供了一种文档型数据库中数据抽取系统,包含至少一个服务器和至少一个客户端:服务器可部署关系数据库,客户端可部署文档型数据库,服务器和客户端间可进行数据库数据和文件交换;服务器包括至少一个第一处理器和第一存储器,至少一个第一处理器和第一存储器之间通过数据总线连接,第一存储器存储有可被至少一个第一处理器执行的指令,指令在被第一处理器执行后,用于完成权利要求1-9任一的文档型数据库中数据抽取到关系数据库的方法;客户端包括至少一个第二处理器和第二存储器,至少一个第二处理器和第二存储器之间通过数据总线连接,第二存储器存储有可被至少一个第二处理器执行的指令,指令在被第二处理器执行后,用于完成权利要求1-9任一的文档型数据库中数据抽取到关系数据库的方法。
与现有技术相比,本发明实施例的有益效果在于:本发明通过对文档型数据库中需进行数据转换的文档中域集的整合,不同文档域集不一致、同一文档中域名重复等问题,实现了多个文档数据批量抽取至同一个表中,同时保证了所抽取数据的准确性及数据组织结构的完整性。
进一步,在本发明的优选方案中,本发明提供了文档型数据库中数据抽取时数据类型转换和附件文件提取的方法,解决了数据抽取时相同域名的数据类型不一致和文档所包含的附件文件提取的问题。同时,通过数据准确性验证及文件完整性验证保证了数据抽取时的数据准确度,通过增量抽取方法保证了抽取中断恢复时的提取准确性和效率。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种文档型数据库中数据抽取到关系数据库的方法流程图;
图2为文档型数据库中数据存储组织架构示意图;
图3为本发明实施例提供的另一种文档型数据库中数据抽取到关系数据库的方法流程图;
图4为本发明实施例提供的另一种文档型数据库中数据抽取到关系数据库的方法流程图;
图5为本发明实施例提供的另一种文档型数据库中数据抽取到关系数据库的方法流程图;
图6为本发明实施例提供的另一种文档型数据库中数据抽取到关系数据库的方法流程图;
图7为本发明实施例提供的另一种文档型数据库中数据抽取到关系数据库的方法流程图;
图8本发明实施例提供的一种文档型数据库中数据抽取系统架构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及文档型数据库和关系数据库,文档型数据库以文档结构为基础存放数据,关系数据库以表结构为基础存放数据。
本实施例中使用的文档型数据库及关系数据库可使用目前通用的各种类型数据库,如Lotus Domino/Notes、Oracle等。
两种数据库结构对应关系如下表:
Figure BDA0002223235090000061
本发明各实施方式的服务器或客户端的硬件部分可以多种形式存在,包括但不限于可部属数据库并进行数据库读写的下列设备:
(1)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(2)个人计算机及超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能。这类终端包括:普通个人PC、PDA、MID和UMPC设备等,例如iPad。
(3)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机等。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
对于大量数据管理,通常会使用数据库进行管理,目前常用的数据库有文档型数据库和关系数据库。文档型数据库基于共享文档思想建立,可简便的通过文件系统对数据进行访问,但无法方便的使用SQL语言对数据进行操作。因此,在一些应用场景下,如系统主数据库是关系数据库但辅助系统数据库是文档型数据库时,需要将辅助系统的文档型数据库中的数据抽取至作为主数据库的关系数据库中进行整合使用。
在文档型数据库中,存储的基本单元为文档,文档中不同属性的数据存放于不同域中。在关系数据库中,存储的基本单元为表,表中不同属性的数据存放于不同字段中。为了对某一类文档中的数据批量抽取及管理,需要将文档型数据库中多个不同文档中相同域的数据放入同一张表的相同字段中。
但不同文档中所包含的域不一定完全相同,不同文档同名域中的数据类型不一定相同。因此,如何将不同文档中的域集合整合为同一张表中的字段集合,避免因不同文档中的域集,或不同文档中同名域的数据类型不同造成的数据抽取错误或遗漏是本实施例需解决的问题。
本实施例提供了一种文档型数据库中数据抽取到关系数据库的方法,如图1所示,步骤如下:
步骤101:在文档型数据库中创建视图,视图包括所有需进行数据转换的文档。
文档型数据库中文档的基本组织形式如图2所示,。文档型数据库中的文档可以通过视图来显示,视图是满足某种规则的文档的集合,在本实施例中,将需数据转换的文档放入同一视图中进行管理,以便后续操作。
步骤102:获取视图中所有文档,并获取每一个文档的文档ID,每一个文档的文档ID为全局唯一ID。
每一个文档的文档ID是进行数据抽取时每个文档的唯一标识,文档型数据库中,每一个文档的属性值都包括有文档ID,该文档ID值由文档型数据库进行管理,为全局唯一ID。在进行数据抽取时,可以将文档的文档ID作为区别不同文档的特征值。将数据抽取放入关系数据库的表中后,文档ID也作为关系数据库中每个文档对应行的键值使用。
步骤103:获取视图中每一文档中域名的集合,并将各文档中域名的集合取并集。
文档型数据库的每个文档中都包含多个域,且每个文档所包含的域类型数量不一定相同。有些域在不同文档中的域名和数据属性都相同,如系统内置域,还有一些文档中包含仅自己使用的特殊域。在某一具体应用场景中,视图中各文档的域名和各域的数据类型如图2所示,其中域数据类型“—”表示非富文本类型,域名为明确指出为“fjmssid”的都不为“fjmssid”。数据抽取时要这些域作为一张表的字段放入同一表中,就需要汇总所有文档中使用的域,并将相同域名和属性的域合并避免重复。获取视图中每一文档中的域名,并将域名取并集后,并集中既包含全部域名,又剔除了重复的域名,因此可以将其作为所有文档的共有域名集进行使用,保证数据抽取时每一域名都有对应的字段可用于数据插入。
步骤104:在关系数据库中创建视图对应的表,以并集中的每一个域名为字段名,向表中插入字段。
文档型数据库的数据基本存储单元为文档,文档内不同性质的数据存储在不同域中,而关系数据库中基本存储单元为表,表内不同性质的数据存储在不同字段中。进行数据抽取时,需要将使用域组织的不同属性数据插入表中的对应字段中,因此需要将步骤103中获得的所有文档中域的并集作为表的字段建立表,表的字段数与并集中域名数相同,表中每一字段的字段名为并集中的一个域名,字段中数据就是对应域的数据。
步骤105:获取每个文档中每个域的第一数据,将第一数据转换为相应域名的字段的第二数据。
关系数据库中常见的数据类型一般有整数型、字符串型、长字符串型等静态数据类型,通常仅使用VARCHAR和CLOB两种类型。文档型数据库中常见的数据类型除了一般有文本数据类型、图片视频等静态富文本数据类型,可能还包括按钮、html语句等非静态数据类型。因此,在进行数据抽取时,需要进行数据转换,将文档型数据库中不同类型的第一数据转换为关系数据库可接受的统一数据类型的第二数据。
步骤106:根据文档的文档ID和域名,将第二数据插入表的相应位置。
文档型数据库中的数据抽取至关系数据库中时,每一文档对应表中的一行,以文档ID为键值,避免冲突。具体的,由于文档中所有域已进行整合,成为表中的一个字段,只需将每一文档内已转换数据类型的各域中的数据分别插入该行相应字段。
通过上述步骤,可将文档型数据库中的多个独立且域集不同的文档方便的存放入关系数据库中的一个文档/域二维表中,实现了文档型数据库中文档的批量抽取和数据同一管理。
本实施例中的提供的数据抽取方法,在进行数据抽取前,对待抽取的文档中域进行整合,取得域并集,以域的并集作为关系数据库表中的字段集,可以方便的使用SQL语句将文档型数据库中的数据批量提取至关系数据库中,避免目前数据提取方式对于多个域集不相同的文档无法批量提取、数据整合不方便的问题。
在本实施例的某些应用场景中,以文档的文档ID对文档进行区分,除了可避免同名文档冲突、文档数据抽取遗漏等错误发生,还可在进行数据抽取时作为判断文档是否已抽取的判断依据,在数据抽取中断回复后判断是否文档已抽取,以便进行断点续传,提高数据抽取的效率。
在本实施例的某些应用场景中,对数据准确性要求较高,需进行数据验证,可根据文档ID获取与表中每一行记录对应的文档,判断每一字段的数据与相应域的数据是否相同,避免因数据插入错误造成的数据抽取错误。
在本实施例的某些应用场景中,当进行域名整合时,若某文档中存在名为“$FILE”的域,说明该文档中存在附件,需进一步进行附件提取操作,对文档中的域进行整合分析避免了数据提取时遗漏附件,保证了文件的完整性。
实施例2:
在进行文档型数据库数据抽取的过程中,在实施例1的数据抽取方法基础上,还需针对不同情况对个各步骤进行调整。
在某些具体应用场景中,同一个文档中存在多个同名域,这些同名域中存放的数据不相同,但由于域名相同,进行数据抽取时都需放入同一字段中,因此需要进行连接,确保所有数据都被抽取入关系数据库的表中,如图4所示,抽取连接步骤如下:
步骤201:抽取同名域中的数据。
步骤202:进行数据类型转换。
步骤203:使用预设连接符连接转换后的数据。
步骤204:将连接后的数据插入相应行的相应字段中。
具体的,预设连接符可为数据库可保存的无特殊含义的字符,如连字符、分隔符等。还可以在连接时为每个数据添加标识符,如数字标识,便于数据使用时进行查找解析。
文档型数据库中数据类型丰富,某些数据类型如按钮、公式等数据类型不被关系数据库支持,在进行数据抽取时需转换为关系数据库可支持的数据类型,需进行数据转换。
为了将不同类型和长度的数据放入表中同一字段内,并能容纳非纯文本类型的数据,在本实施例中采用VARCHAR和CLOB两种数据类型。具体的,域中数据长度小于预设数据长度时,使用存储空间占用较小的VARCHAR类型;域中数据长度大于预设数据长度或非纯文本类型时,使用存储容量更大内容更灵活的CLOB类型。预设数据长度可设为VARCHAR类型的最大长度值65535字节。
进一步的,由于不同文档中同名域的数据类型和数据长度不同,在某些具体应用场景中。若之前文档中进行数据抽取的某一域转换后的第二数据类型为VARCHAR类型,则该字段的数据类型为VARCHAR类型,当前文档中同一域的第一数据为富文本类型需转换为CLOB类型第二数据,无法存入VARCHAR类型字段中,则需要将整个字段的数据类型变化为CLOB类型,之前文档中已转换的VARCHAR类型第二数据也需再次转换为CLOB类型第二数据,以保证数据类型统一。若之前文档中进行数据抽取的某一域转换后的第二数据类型为CLOB类型,而CLOB数据类型第二数据无法使用VARCHAR类型数据存储,当前文档中同一域的第一数据即使可转换为VARCHAR类型第二数据,也需使用CLOB类型保证数据类型同一。因此,进行数据类型转换的具体步骤如图5所示:
步骤301:将前一次转换使用的预设数据类型保存为历史数据类型。
步骤302:判断历史数据类型是否为CLOB类型。若是,转步骤303;若否,转步骤304。
步骤303:使用历史数据类型作为本次转换的预设数据类型。
步骤304:判断本次转换数据类型是否为CLOB类型。若否,转步骤305;若是,转步骤306。
步骤305:历史数据类型和本次转换数据类型都为VARCHAR类型,使用VARCHAR数据类型作为本次转换数据类型。
步306骤:使用CLOB类型作为本次转换数据类型,将该字段已转换的第二数据都再次转换为CLOB类型。
使用上述数据类型转换方法,可以方便快速的将不同文档的同一域中不同类型的第一数据转换为相应字段中数据类型统一的第二数据。
本实施例的另一些实际应用场景中,文档型数据库的文档中还包含附件,数据提取时除了提取文档中的数据,还需提取文档相应的附件。在文档型数据库中,附件由独立的附件库进行存储和管理,在文档中使用"$FILE"域存储附件的路径等属性。如图6所示,进行附件提取的具体步骤如下:
步骤401:在文档型数据库的附件库中创建完全视图。
步骤402:遍历完全视图中所有文档,判断每一文档是否包含附件域。若是,转步骤403。
步骤403:获取源附件文件,将源附件文件提取到本地文件系统中生成目标附件文件。
步骤404:若进行步骤403,表中设置附件路径字段,将目标附件文件在本地文件系统中的绝对路径插入相应文档的附件路径字段。
步骤403中,由于附件库完全视图中可包含多个附件库,因此进行附件提取时,需对不同附件库中存储的附件路径进行区别,可以再本地建立以附件库为文件夹名称的文件夹对不同附件库内的附件进行分类存储。具体的,附件路径字段为:基础路径\附件库名称\文档ID。
通过上述步骤,可完整准确的将Domino文档中的附件提取至关系数据库的本地系统中,并通过附件路径字段建立索引,保证数据抽取的完整和调用的便捷。
在本实施例的某些具体应用场景中,对于数据准确性要求较高,在进行数据抽取时,需对已抽取数据和附件的准确性进行验证。
对于数据准确性的验证,可将每个文档的每个域中的第一数据,与进行数据类型转换后相应行相应字段中的第二数据进行对比,若数据内容相同则数据抽取正确,若数据内容不同删除已转换的第二数据,重新获取第一数据进行数据转换。如图7所示,具体校验步骤如下:
步骤501:获取文档中某一域的第一数据。
步骤502:获取表中相应文档相应字段的第二数据。
步骤503:判断第一数据和第二数据是否相同。若是,转步骤504;若否,转步骤505。
步骤504:获取文档中下一个域继续验证。
步骤505:使用第一数据重新进行数据转换,再次获得第二数据。
在步骤505中,对于某些数据准确性要求较高,或需对不同类型错误进行不同处理的应用场景,也可不重新进行数据转换,而采用程序中断报错的处理方式,或其它常用异常处理方式。
对于附件准确性的验证,可使用一般的文件完整性验证方式,如SHA校验、MD5校验等。具体的,在本实施例中,使用安全性较高的SHA校验,可根据实际需求选用SHA1或SHA256校验方法。比较文档型数据库中存放的源附件文件与抽取至关系数据库本地系统中的目标附件文件的SHA校验值,若两附件文件SHA校验值一致,表示两文件一致,抽取正确,若两附件文件校验值不一致,表示两文件不一致,可能存在抽取错误,删除已抽取至本地的目标附件文件,重新将源文件抽取至本地文件系统中生成第二目标附件文件,替换抽取错误的目标附件文件。
上述数据及附件准确性验证方法,在抽取后验证数据和附件文件与原始数据和附件文件的一致性,在出现抽取错误后删除错误数据和附件文件重新进行抽取,保证了数据抽取时的准确性,防止出现数据抽取错误。
在本实施例的某些实际应用场景中,由于文档型数据库存储的数据量较大,因此在进行数据抽取时需具有断点续传的功能。在本实施例中,可在每一文档中的数据抽取完成后,将当前文档的文档ID标记为已抽取文档ID,在出现错误中断并恢复后,跳过已抽取的文档,仅对未进行过数据抽取的文件进行数据抽取,以避免对已进行过数据抽取的文档重复抽取,造成数据重复和时间浪费。
本实施例提供的文档型数据库中数据抽取到关系数据库的方法可保证操作简便、抽取效率高的基础上保证数据抽取时类型一致性,以及所抽取数据的准确性。
实施例3:
在上述实施例1和实施例2提供的文档型数据库中数据抽取到关系数据库的方法的基础上,本发明还提供了一种可用于实现上述方法的文档型数据库中数据抽取系统,如图8所示,是本发明实施例的系统架构示意图。
如图8A所示,本实施例的文档型数据库中数据抽取系统包含至少一个服务器1和至少一个客户端2,服务器1中可部署关系数据库,客户端2中可部署文档型数据库,服务器1和客户端2间可进行数据库数据和文件交换。客户端2中部署的文档型数据库内数据通过数据交换,传输至服务器1中部署的关系数据库中存储;客户端2中部署的文档型数据库内附件,通过文件交换,传输至服务器1的本地文件系统,供关系数据库通过保存的文件路径调用。
服务器1包括一个或多个处理器21以及存储器22,图8B中以一个处理器21为例,处理器21和存储器22可以通过总线或者其他方式连接,图8B中以通过总线连接为例。
客户端2包括一个或多个处理器23以及存储器24,图8C中以一个处理器23为例,处理器23和存储器24可以通过总线或者其他方式连接,图8C中以通过总线连接为例。
存储器22和24作为一种文档型数据库中数据抽取到关系数据库的方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的文档型数据库中数据抽取到关系数据库的方法。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行文档型数据库中数据抽取系统的各种功能应用以及数据处理,即实现实施例1和实施例2的文档型数据库中数据抽取到关系数据库的方法。
存储器22和24可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22或24中,当被一个或者多个处理器21或23执行时,执行上述实施例1中的文档型数据库中数据抽取到关系数据库的方法,例如,执行以上描述的图1、图4-图7所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种文档型数据库中数据抽取到关系数据库的方法,其特征在于,包括:
在文档型数据中创建视图,所述视图包括所有需进行数据转换的文档;
获取视图中所有文档,并获取每一个文档的文档ID,每一个文档的文档ID为全局唯一ID;
获取所述视图中每一文档中域名的集合,并将各文档中域名的集合取并集;
在关系数据库中创建视图对应的表,以所述并集中的每一个域名为字段名,向所述表中插入字段;
获取每个文档中每个域中待抽取的数据,将第一数据转换为相应域名的字段的预设数据类型的数据;
根据所述文档的文档ID和域名,将所述转换后的数据插入所述表的相应位置。
2.如权利要求1所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,所述将转换后的数据插入所述表的相应位置,具体为:
以所述文档ID为主键向所述表中插入行,其中每一行存放一个文档的所有数据;
将所述文档中每个域的转换后的数据插入文档所在行相应域名的字段。
3.如权利要求2所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,所述将转换后的数据插入所述视图对应表的相应位置,还包括:
若同一文档中存在多个相同域名的域,将每个域中的数据单独进行数据转换,转换后的第二数据用预设连接符连接成为第三数据,将第三数据插入文档所在行相应域名的字段。
4.如权利要求3所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,将每个需进行数据转换的文档中每个域的第一数据分别转换为对应域的预设数据类型的第二数据,具体为:
判断所述第一数据是否为富文本,若是,所述预设数据类型为CLOB类型;
若否,判断所述第一数据长度是否大于预设数据长度,若是,所述预设数据类型为CLOB类型,若否,预设数据类型为VARCHAR类型;
将所述第一数据转换为预设数据类型的第二数据。
5.如权利要求4所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,步骤判断所述第一数据是否为富文本之前,还包括:
将前一次转换使用的预设数据类型保存为历史数据类型;
判断历史数据类型是否为CLOB类型,若是,不判断本次转换数据类型,使用历史数据类型作为本次转换的预设数据类型。
6.如权利要求1所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,还包括:
获取每一需进行数据转换的文档的每一域的第一数据;
获取所述表中与需进行数据转换的文档对应的行中每一字段的第二数据;
判断域名对应字段的第二数据是否与第一数据相同,若是,表明数据转换正确,完成转换;若否,表明数据转换不正确,重新获取对应字段的第二数据。
7.如权利要求1所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,还包括:
在文档型数据库的附件库中创建完全视图;
遍历完全视图中所有文档,判断每一文档是否包含附件域,若是,获取源附件文件,将源附件文件提取到本地文件系统中生成目标附件文件;
所述表中设置附件路径字段,将目标附件文件在本地文件系统中的绝对路径插入相应文档的附件路径字段。
8.如权利要求7所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,还包括:
生产所述源附件文件的第一SHA校验值,和目标附件文件的第二SHA校验值;
判断所述第一SHA校验值和第二SHA校验值是否一致,若否,删除现有目标附件文件,再次获取源附件文件,将源附件文件提取到本地文件系统生成第二目标附件文件。
9.如权利要求1所述文档型数据库中数据抽取到关系数据库的方法,其特征在于,还包括:
所述视图中每一文档数据抽取完成后,将当前文档的文档ID标记为已抽取文档ID;
若产生错误导致数据抽取中断,中断恢复时判断待抽取文档的文档ID是否为已抽取文档ID,若是,跳过当前文档,若否,对文档进行数据抽取。
10.一种文档型数据库中数据抽取系统,包含至少一个服务器和至少一个客户端,其特征在于:
所述服务器可部署关系数据库,所述客户端可部署文档型数据库,所述服务器和所述客户端间可进行数据库数据和文件交换;
所述服务器包括至少一个第一处理器和第一存储器,所述至少一个第一处理器和第一存储器之间通过数据总线连接,所述第一存储器存储有可被所述至少一个第一处理器执行的指令,所述指令在被所述第一处理器执行后,用于完成权利要求1-9任一所述的文档型数据库中数据抽取到关系数据库的方法;
所述客户端包括至少一个第二处理器和第二存储器,所述至少一个第二处理器和第二存储器之间通过数据总线连接,所述第二存储器存储有可被所述至少一个第二处理器执行的指令,所述指令在被所述第二处理器执行后,用于完成权利要求1-9任一所述的文档型数据库中数据抽取到关系数据库的方法。
CN201910942206.9A 2019-09-30 2019-09-30 一种文档型数据库中数据抽取到关系数据库的方法和系统 Active CN110727726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910942206.9A CN110727726B (zh) 2019-09-30 2019-09-30 一种文档型数据库中数据抽取到关系数据库的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910942206.9A CN110727726B (zh) 2019-09-30 2019-09-30 一种文档型数据库中数据抽取到关系数据库的方法和系统

Publications (2)

Publication Number Publication Date
CN110727726A true CN110727726A (zh) 2020-01-24
CN110727726B CN110727726B (zh) 2022-09-30

Family

ID=69218696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910942206.9A Active CN110727726B (zh) 2019-09-30 2019-09-30 一种文档型数据库中数据抽取到关系数据库的方法和系统

Country Status (1)

Country Link
CN (1) CN110727726B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328444A (zh) * 2020-10-09 2021-02-05 国家电网有限公司 一种云计算机管理系统及其管理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561810A (zh) * 2008-04-16 2009-10-21 鸿富锦精密工业(深圳)有限公司 将文档数据库的数据存储到关系数据库的系统及方法
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
CN102033954A (zh) * 2010-12-24 2011-04-27 东北大学 关系数据库中可扩展标记语言文档全文检索查询索引方法
CN102236653A (zh) * 2010-04-26 2011-11-09 北京开普互联科技有限公司 一种实现版式文档与关系数据库交互的方法
CN103955517A (zh) * 2014-05-05 2014-07-30 中国工商银行股份有限公司 将文档型数据库的数据转换至关系型数据库的方法及系统
CN106528898A (zh) * 2017-01-04 2017-03-22 泰康保险集团股份有限公司 将非关系型数据库数据转换到关系型数据库的方法及装置
US20170308606A1 (en) * 2016-04-22 2017-10-26 Quest Software Inc. Systems and methods for using a structured query dialect to access document databases and merging with other sources
CN110019139A (zh) * 2017-12-29 2019-07-16 中国移动通信集团内蒙古有限公司 数据迁移的方法、装置、电子设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561810A (zh) * 2008-04-16 2009-10-21 鸿富锦精密工业(深圳)有限公司 将文档数据库的数据存储到关系数据库的系统及方法
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
CN102236653A (zh) * 2010-04-26 2011-11-09 北京开普互联科技有限公司 一种实现版式文档与关系数据库交互的方法
CN102033954A (zh) * 2010-12-24 2011-04-27 东北大学 关系数据库中可扩展标记语言文档全文检索查询索引方法
CN103955517A (zh) * 2014-05-05 2014-07-30 中国工商银行股份有限公司 将文档型数据库的数据转换至关系型数据库的方法及系统
US20170308606A1 (en) * 2016-04-22 2017-10-26 Quest Software Inc. Systems and methods for using a structured query dialect to access document databases and merging with other sources
CN106528898A (zh) * 2017-01-04 2017-03-22 泰康保险集团股份有限公司 将非关系型数据库数据转换到关系型数据库的方法及装置
CN110019139A (zh) * 2017-12-29 2019-07-16 中国移动通信集团内蒙古有限公司 数据迁移的方法、装置、电子设备和存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CLOCKMAKER: "《Domino数据转移到关系型数据库(一)》", 《HTTP://WWW.TALKWITHTHREND.COM/ARTICLE/214911》 *
WANSA PAOIN 等: "《Development of surgical operation data interchange model using XML and relational database》", 《IEEE》 *
朱晓燕: "异构数据转换在数字图书馆建设中的应用", 《现代情报》 *
李伟等: "基于MongoDB数据库的临床医疗大数据存储方案设计与优化", 《工业控制计算机》 *
黄煜: "《海量数据的迁移和报表自动生成的研究和实现》", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328444A (zh) * 2020-10-09 2021-02-05 国家电网有限公司 一种云计算机管理系统及其管理方法

Also Published As

Publication number Publication date
CN110727726B (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
US11798208B2 (en) Computerized systems and methods for graph data modeling
CN109086382B (zh) 一种数据同步方法、装置、设备及存储介质
CN111290956A (zh) 基于脑图的测试方法、装置、电子设备及存储介质
CN110659282A (zh) 数据路由的构建方法、装置、计算机设备和存储介质
CN113672204A (zh) 一种接口文档生成方法、系统、电子设备及存储介质
CN111858730A (zh) 一种图数据库的数据导入导出装置、方法、设备及介质
CN113051347A (zh) 异构数据库之间数据同步方法、系统、设备及存储介质
CN114090671A (zh) 数据导入方法、装置、电子设备及存储介质
CN110727726B (zh) 一种文档型数据库中数据抽取到关系数据库的方法和系统
CN112650529B (zh) 可配置生成移动端app代码的系统及方法
CN116126997B (zh) 一种文献去重存储方法、系统、设备及存储介质
CN111859863A (zh) 一种文档的结构转换方法、装置、存储介质及电子设备
CN115599388A (zh) 一种api接口文档生成方法、存储介质及电子设备
CN114461193A (zh) 一种通信协议代码的生成方法、装置、设备及存储介质
CN114625751A (zh) 基于区块链的数据溯源查询方法及装置
CN114416847A (zh) 一种数据转换的方法、装置、服务器及存储介质
CN114461454A (zh) 数据恢复方法、装置、存储介质及电子设备
CN114356454A (zh) 对账数据处理方法、设备、存储介质及程序产品
CN114443625A (zh) 数据库的处理方法、装置
Aygün S2S: structural-to-syntactic matching similar documents
CN112965993B (zh) 一种数据处理系统、方法、装置及存储介质
CN111221846B (zh) 一种sql语句的自动翻译方法及装置
CN117009319B (zh) 基于大语言模型的数据库操作方法、系统及存储介质
CN115545008B (zh) 一种谱图文件解析方法、装置、设备及存储介质
CN111427870B (zh) 一种资源管理方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Mei Gang

Inventor after: Hu Gaokun

Inventor before: Mei Gang

Inventor before: Fu Quan

Inventor before: Hu Gaokun

Inventor before: Zhou Chun

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant