掌桥专利:专业的专利平台
掌桥专利
首页

一种图数据库更新方法及装置

文献发布时间:2023-06-19 12:24:27


一种图数据库更新方法及装置

技术领域

本申请涉及互联网技术领域,特别涉及一种图数据库更新方法、装置、计算设备及计算机可读存储介质。

背景技术

随着互联网技术的发展,使用互联网的用户数量也随之增多,相应的,为了存储用户的各种数据,对于数据库技术的需求也越来越大。

若要保存大量的用户信息并使用户信息以知识图谱的方式进行存储,可以使用图数据库来解决该问题。在知识图谱的使用过程中,对于实时数据,往往伴随着数据源(一般为结构化数据)的变化,保证图数据库与结构化数据库中的数据同步是知识图谱使用的重要需求。目前实现信息同步的方法一般有两种,第一:使用人工同步,利用人力将结构化数据的变化更新至图数据库中,但使用人工同步会存在准确性差、实时性差的问题,并且人工成本较高,无法维护大规模的图数据库,也无法应对高频率更新的数据。第二:基于Binlog的同步方法,即根据结构化数据库的数据变化行为直接更新图数据库中的数据,但基于Binlog的同步方法无法实现有效的数据映射,对于更新数据,在数据结构及内容上没有完善的检查方法和过程,并且无法自动解决更新行为和知识图谱中现有数据存在的数据矛盾。

发明内容

有鉴于此,本申请实施例提供了一种图数据库更新方法、装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种图数据库更新方法,包括:

监控数据源,从所述数据源中获取变更源数据;

基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据;

根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据;

将所述待导入图数据导入至所述原图数据库获得新图数据库。。

根据本说明书实施例的第二方面,提供了一种图数据库更新装置,包括:

获取模块,被配置为监控数据源,从所述数据源中获取变更源数据;

确定模块,被配置为基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据;

映射模块,被配置为根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据;

导入模块,被配置为将所述待导入图数据导入至所述原图数据库获得新图数据库。

根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述图数据库更新方法的步骤。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述图数据库更新方法的步骤。

根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机指令,该指令被芯片执行时实现所述图数据库更新方法的步骤。

本申请通过监控数据源,从所述数据源中获取变更源数据;基于原图数据库的本体结构从所述源数据中确定与所述原图数据库相关的变更数据;按照所述本体结构及所述原图数据库的数据导入规则对所述变更数据进行映射得到待导入图数据;将所述待导入图数据导入至所述原图数据库获得新图数据库。本申请的图数据库更新方法,对数据源进行实时监控,便于及时将数据源中变更源数据同步至图数据库中;本申请的图数据库更新方法,对数据源进行监控,提高了图数据库更新的及时性,根据图数据库中规定的数据规则只获取结构化数据库中与图数据库相关的数据,提高了更新效率,对数据进行合理性进行检查,确保了图数据库更新的准确性。

附图说明

图1是本申请实施例提供的数据流向示意图;

图2是本申请实施例提供的计算设备的结构框图;

图3是本申请实施例提供的一种图数据库更新方法的流程图;

图4是本申请实施例提供的图数据库的本体结构和源数据示意图;

图5是本申请实施例提供的源数据A

图6是本申请实施例提供的数据A

图7是本申请实施例提供的源数据导入图数据库得到更新后的图数据库的整体流程示意图;

图8是本申请实施例提供的节点的删除、恢复过程示意图;

图9是本申请实施例提供的应用于本体结构中包含人物节点类型、学校节点类型以及就读关系类型的图数据库更新方法的流程图;

图10是本申请实施例提供的变更源数据示意图;

图11是本申请实施例提供的提取图数据库相关数据的示意图;

图12是本申请实施例提供的数据映射示意图;

图13是本申请实施例提供的检查人物类型节点的示意图;

图14是本申请实施例提供的检查学校类型节点的示意图;

图15是本申请实施例提供的检查就读类型关系的示意图;

图16是本申请实施例提供的导入节点数据示意图;

图17是本申请实施例提供的搜索节点ID示意图;

图18是本申请实施例提供的索引管理示意图;

图19是本申请实施例提供的图数据更新装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“在......情况下”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

本体结构(Schema):用于定义图数据库中所包含的元素的类型、属性以及对所述元素的约束信息,所述元素包括节点和边。

知识图谱(Knowledge Graph):是一种基于图的数据结构,由节点(point)和边(Edge)组成,每个节点表示一个“实体”,每条边为实体与实体之间的“关系”,知识图谱本质上是语义网络。实体指的可以是现实世界中的事物,比如姓名、地名、公司、电话、动物学名等;关系则用来表达不同实体之间的某种联系。

图数据库(Figure database):图数据库是一种关系型数据库,应用图形理论存储实体、以及实体之间的关系信息,例如图数据库有Neo4j、OrientDB、titan等。图数据库是知识图谱的重要载体。

数据导入规则:用于确定图数据库的本体结构中的节点(或者边)对应的数据在结构化数据库中的存储位置,以及所述节点(或者边)对应的结构化数据库与图数据库中的数据的映射方法。

首先,结合图1本申请实施例提供的数据流向示意图。对本申请更新图数据方法的构思进行简述。

结构化数据库104中存储有可导入图数据库108中的结构化数据,即结构化数据库104可作为图数据库108的数据来源。结构化数据库104响应于监控数据源请求102,监控结构化数据库104中发生变化的结构化数据,对变化的结构化数据进行记录生成变更源数据106。图数据库108中存储有本体结构110以及数据导入规则112,根据本体结构110从图数据库108中获取与本体结构110对应的数据导入规则112。根据数据导入规则112以及本体结构110确定变更源数据106中与图数据库108相关的源数据并记录,得到变更数据114。根据数据导入规则中预设的映射方法,所述映射方法为将结构化数据映射为符合图数据形式要求的数据处理方法,将变更数据114映射为待导入图数据116。检查待导入图数据116是否符合本体结构110中规定的约束规则,所述约束规则为规定了节点或边的数据形式的规则,例如,约束节点数据类型为字符类型等,并将待导入图数据116与图数据库108中的数据进行对比,确定是否存在冲突,所述冲突即待导入图数据116与图数据库108中的数据出现相同的情况,并对发生冲突的数据进行记录,得到冲突日志。将未发生冲突的待导入图数据116导入图数据库108中,完成对图数据库的更新。

图2示出了根据本说明书一实施例的计算设备200的结构框图。该计算设备200的部件包括但不限于存储器210和处理器220。处理器220与存储器210通过总线230相连接,数据库250用于保存数据。

计算设备200还包括接入设备240,接入设备240使得计算设备200能够经由一个或多个网络260通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备200的上述部件以及图2中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图2所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备200可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备200还可以是移动式或静止式的服务器。

其中,处理器220可以执行图3所示方法中的步骤。图3是示出了根据本申请一实施例的图数据库更新方法的示意性流程图,包括步骤302至步骤308。

步骤302:监控数据源,从所述数据源中获取变更源数据。

数据源可以是存有结构化数据的结构化数据库,例如结构化数据库104,结构化数据库可以是MySQL数据库。变更源数据可以是结构化数据库中发生变化的结构化数据,例如,在数据源中添加或者删除一条数据“张三”的情况下,则数据“张三”便作为结构化数据库中的变更源数据。

在实际应用中,获取变更源数据的步骤包括S3021至S3022:

S3021、获取所述数据源中存储的更新日志;

S3022、基于所述更新日志,从所述数据源中读取发生变化的数据,生成变更源数据。

在本申请具体实施例中,结构化数据库中存储有日志文件,用于记录对数据库的操作。

日志文件中记录的可以是在某一时间段内对结构化数据库进行的操作,例如,读取数据操作、删除数据操作、添加数据操作等等。其中,日志文件记录的包括实质性操作和非实质性操作。实质性操作是指使数据发生变化的操作,例如,添加数据操作、删除数据操作等;非实质性操作是指未使数据发生变化的操作,例如,读取数据操作、复制数据操作等。

获取日志文件中所有实质性操作对应的实质性操作标识,根据实质性操作标识获取日志文件中的实质性操作信息,构成更新日志。

即所述更新日志中记录的可以是在某一时间段内对结构化数据库的实质性操作。日志文件与更新日志的区别在于日志文件中记录的是对结构化数据库的全部操作,包括非实质性操作和实质性操作;而更新日志中记录的仅为对结构化数据库的实质性操作。根据更新日志的记录,可以确定数据源中哪些数据发生了变化,从而在结构化数据库中读取发生变化的数据,将发生变化的数据汇总生成变更源数据。

本申请一具体实施方式中,以基于二进制日志文件(Binlog)的结构化数据库MySQL中的数据更新实现对图数据库Neo4j的更新过程为例,对具体获取变更源数据的方法进行如下说明。

在结构化数据库MySQL中包含更新日志,更新日志用于保存对数据库的各种实质性操作记录,例如数据的增加、修改等操作,更新日志可以采用二进制日志文件(Binlog)。二进制日志文件(Binlog)是用于记录数据库中表结构变更的信息和数据变更的信息的二进制日志文件。基于二进制日志文件(Binlog)的结构化数据库,是指应用二进制日志文件(Binlog)记录对结构化数据库的实质性操作的结构化数据库。

将数据源中数据的变化记录至更新日志中,根据更新日志中记录的实质性操作信息确定结构化数据库中的变更源数据。

所述数据源,是图数据库进行更新的数据来源,可以是对应的结构化数据库;所述数据源中的数据即为源数据。在本实施例中,以结构化数据库D为例进行说明。该数据库D可以是MySQL数据库,即是本实施例的数据源。数据库D保存有多条结构化数据,所述多条结构化数据的集合为本实施例中的源数据。在对该数据库D进行监控的过程中,若监控到有对该数据库D进行修改的操作,例如插入、删除等操作,则属于所述数据库D发生了变化的情形,所述数据源中发生变化的数据集合即为所述变更源数据。

在实际应用中,可以在结构化数据库中设置监听器,调用所述监听器的相关命令,实时地调取结构化数据库的Binlog文件用于确定所述变更源数据。

下面以一个具体的应用场景对获取变更源数据的情况进行说明。假设在对结构化数据库D进行监控的过程中,在结构化数据库D中插入三条新数据A、B、C,数据A、B、C如下表1所示。根据更新日志中记录的3条增加操作,确定并获取结构化数据库D中的发生变化的数据,生成变更源数据A-1、B-1、C-1。

表1

上述步骤302通过对图数据库对应的结构化数据库D进行实时的监控,能够及时确定变更源数据,从而保障了后续同步对图数据库更新的工作,提高图数据库更新的及时性。

步骤304:基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据。

数据源中存储有与图数据库存在对应关系的结构化数据以及其他结构化数据。在数据源中的与图数据库存在对应关系的结构化数据发生变化的情况下,需要对图数据库进行更新。

原图数据库是指更新前的图数据库,图数据库中保存有用于构建知识图谱的图数据,本申请的技术方案拟对原图数据库实现更新为新图数据库。

在构建知识图谱前先构建本体结构,本体结构中定义了节点类型、关系类型以及约束规则。所述约束规则包括对知识图谱中元素的限制条件,所述限制条件可以是限制数据存入知识图谱的条件,例如某个节点中的值能否为空、该节点是否唯一等限制。

在实际应用中,从变更源数据中确定变更数据的步骤可以是步骤S3041-S3043:

S3041、根据所述原图数据库的本体结构确定所述原图数据库的数据导入规则;

S3042、根据所述数据导入规则确定与所述原图数据库关联的目标数据源,其中所述目标数据源是所述数据源之一;

S3043、根据所述本体结构,从所述目标数据源的变更源数据中获取与所述原图数据库对应的变更数据。

具体的,图数据库中的每一个本体结构均对应有数据导入规则,所述数据导入规则用于确定图数据库的本体结构中的节点或者边对应的数据在结构化数据库中的存储位置,以及将所述节点或者边对应的数据从结构化数据库中导入图数据库时的数据处理方式。具体的,图数据库可拥有多个数据源,即可能有多个结构化数据库均对应了同一个图数据库,每个图数据库可具备多个本体结构,一个本体结构对应一个数据导入规则,数据导入规则中规定的数据源可以决定图数据库中的数据来源于不同的结构化数据库,一个具体的数据导入规则中包括每条源数据在该具体结构化数据库中的存储位置,还包括将源数据从该结构化数据库导入到图数据库的数据处理方式。根据数据导入规则可确定与图数据库对应的目标数据源,从目标数据源的变更源数据中确定符合数据导入规则的变更数据。本申请一具体实施方式中,将数据从结构化数据库中导入图数据库中的数据处理方式可以是源数据和图数据之间的映射方法。

所述变更数据,即为根据图数据库的本体结构和数据导入规则确定的,变更源数据中与图数据库相关的数据。

例如以“以结构化数据库中的字段值作为节点,以结构化数据库中的字段名作为边”作为本体结构创建图数据库,结合数据导入规则即可从结构化数据中确定图数据库所需要的数据。所述数据导入规则可以包括节点或者边对应的数据在结构化数据库中对应的存储位置、源数据和图数据之间的映射方法。所述映射方法为多种数据处理方式构成的集合。以字段名“毕业日期”为例,数据导入规则可以包括基于数据格式:xxxx(year)-xx(month)-xx(day)对“日期”字段进行处理的映射方法,图数据库中的节点“人物”和节点“日期”的关系“毕业日期”来源于结构化数据库的字段名“毕业日期”中。

所述数据导入规则中的映射方法用于对待更新至图数据库中的数据进行处理,使待更新至图数据库中的数据满足图数据的数据格式要求。

需要说明的是,在实际应用中可以根据图数据库的本体结构和数据导入规则确定在变更源数据中与图数据库的相关数据和无关数据,过滤所述无关数据,并将所述相关数据作为变更数据。其中,所述相关数据是变更源数据中与图数据库中的节点或者边有关联关系的字段和对应的字段值;所述无关数据是与图数据库中的节点或者边没有关联关系的字段和对应的字段值。例如,可以将字段名的字段标识与边的属性标识进行比较,其中字段标识来自于变更源数据的字段名的字段标识,边的属性标识是图数据库中节点之间的边的属性标识;也可以将字段值的字段标识与节点的属性标识进行比较,其中字段值的字段标识来自变更源数据,节点的属性标识来自图数据库中。若某个字段标识没有对应的属性标识,则变更源数据的相应字段与图数据库不相关,相应的字段是无关数据,可以对所述无关数据进行过滤删除;若某个字段标识带有对应的属性标识,则变更源数据的相应字段与图数据库相关,相应的字段是相关数据,可以将所述相关数据作为与图数据库相关的变更数据之一。

沿用上例,在结构化数据库MySQL中插入数据A、B、C时,对应的图数据库的本体结构假设是:“以地点、人物姓名、数字和日期为节点,以教育地点、出生地、年龄和毕业日期作为节点之间的边”,对应的数据导入规则为“人物姓名长度不超过16个字节、地点长度不超过8个字节、教育地点长度不超过16个字节、年龄长度不超过4个字节,地点和人物姓名使用字符型,数字使用整型,毕业日期的格式为xxxx(year)-xx(month)-xx(day),教育地点和毕业日期可以为空;图数据库中节点和边的数据来源分别是结构化数据库中的字段名和字段值”,所述数据导入规则存储于所述图数据库中。通过对变更源数据A-1、B-1、C-1中的字段标识与图数据库中的属性标识进行比较,确定图数据库中存在有与所述字段标识相符的属性标识,即可确定变更源数据A-1、B-1、C-1中存在与图数据库的数据具有关联关系的字段,有相关数据。例如,在变更源数据A-1、B-1、C-1中均存在字段标识“人物Per,节点”,与图数据库中存在的属性标识“人物Per,节点”相同,则确定变更源数据A-1、B-1、C-1中的字段“人物”与图数据库中的数据具有关联关系,将所述字段标识“人物Per,节点”对应的字段“人物”作为与图数据库相关的变更数据,该变更数据可以是变更数据114。

下面结合图4对所述本体结构、所述数据导入规则和变更数据做进一步说明。图4为图数据库的本体结构和源数据示意图,其中,401是图数据库的部分本体结构示意图,“约束条件”即为基于图数据库的本体结构对节点和边的约束,“目标列名”即为数据源中的字段名,用于确定源数据在结构化数据库中的存储位置,“属性名”即为图数据库中节点的属性标识,与结构化数据库中的字段标识一一对应,用于确定图数据在图数据库中节点与边的连接关系。

所述属性标识用于对知识图谱中的每一个节点和边进行标记,表示每一个节点或边的类型或者属性信息。类型是用来对节点或者关系整体上的描述,如某知识图谱是关于社会组织的知识图谱,则其类型可以用“org”表示,所述属性信息用于表示每一个节点或边不同属性的描述,例如401可以是一个类型为人物的节点的属性信息,包括“地点”、“人物”、“日期”等不同属性。404为所述本体结构对应的数据导入规则,其中包括将结构化数据映射为图数据的映射方法。

图4中402为结构化数据库中的新增的源数据,其中包括字段名和字段值,“编号”、“人物”、“出生地”、“教育地点”、“年龄”和“毕业日期”为结构化数据库中的字段名,“A、B、C”、“赵大、钱二、郑六”、“石家庄”、“天津大学、清华大学”、“25、63、30”、“2018.6.23、2013.6”为字段值,“null”为空值,每一个字段名和字段值均具有对应的字段标识,但空值可以设定为没有对应的字段标识。所述字段标识用于标记每一个字段的信息,并确定新增的源数据中与知识图谱中的节点、边的属性标识的相关字段的对应关系。例如字段值“赵大”的字段标识为“人物Per,节点”,字段名“出生地”的字段标识为“连接人物节点与地点节点,边”。

仍然以图4为例,若监测到的发生三条插入的源数据如402所示。401中的“属性名”为图数据库中节点“人物”的属性标识,与源数据402中的字段标识对应;“目标列名”是图数据库中节点之间的边,与结构化数据库402中的字段名对应。从图4中可以看出,源数据402中的字段“工资”不在“人物”节点的属性401中,所以源数据402中的“工资”为图数据库中的无关数据。那么除去“工资”字段的源数据就是根据图数据库的本体结构确定的变更源数据中与图数据库相关的数据,即为变更数据。从变更数据源中获取的变更数据A

表2

本步骤中的技术方案通过在变更源数据中确定与图数据库相关的数据即变更数据,即可用于对图数据库进行更新,避免图数据库中的所有数据进行更新,提高了更新效率。

步骤306:根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据。

待导入图数据,即为所述源数据基于预设的数据导入规则,对源数据中的字段名和字段值进行映射得到的待导入图数据。映射是指将结构化数据库中的结构化数据,根据数据导入规则中的映射方法,将结构化数据转化为符合图数据库要求的数据。

基于本体结构以及数据导入规则处理变更数据,获得待导入图数据的具体步骤包括S3061-S3062:

S3061、根据所述原图数据库的本体结构确定所述变更数据中的节点数据和关系数据;

S3062、根据所述原图数据库的本体结构对应的数据导入规则映射所述节点数据和所述关系数据,获得待导入图数据。

在实际应用中,通过本体结构确定变更数据中的需要进行映射的节点和关系,通过数据导入规则确定变更数据在结构化数据库中的具体存储位置,确定源数据与待导入图数据的对应关系,基于数据导入规则中的映射方法,以源数据的字段名为边、以字段值为节点进行映射,生成每一条源数据对应节点的图数据。

具体的,数据导入规则中包含映射方法,所述映射方法可以人工添加或预先设置在数据导入规则中。根据数据导入规则中节点的映射方法,可以将变更数据中的节点数据映射为待导入节点数据;根据数据导入规则中关系的映射方法,可以将变更数据中的关系数据映射为待导入关系数据。

数据导入规则中包含节点映射方法以及关系映射方法,根据所述原图数据库的本体结构对应的数据导入规则中的节点映射方法,将所述变更数据中的节点数据映射为待导入节点数据;根据所述原图数据库的本体结构对应的数据导入规则中的关系映射方法,将所述变更数据中的关系数据映射为待导入关系数据;

由所述待导入节点数据和所述待导入关系数据构成待导入图数据。

在实际应用中,将变更数据映射为待导入图数据之前,可以对变更数据进行清洗。所述清洗即检查变更数据中可能会出现的重复、乱码等影响变更数据准确性的问题。通过对变更数据进行清洗,可以提高后续向图数据库中导入数据的准确性。

沿用上例,对数据A

以数据A

以数据A

通过将变更数据进行映射,将数据转换为符合图数据库中映射方法的数据,便于将数据更新至图数据库中,提高了图数据库的更新效率。

步骤308:将所述待导入图数据导入至所述原图数据库获得新图数据库。

待导入图数据中包括待导入节点数据以及待导入关系数据。新图数据库即对原图数据库进行更新,更新完成得到的图数据库。

具体的,将待导入图数据中的待导入节点数据以及待导入关系数据导入原图数据库中,包括:

获取所述待导入图数据中的节点标识及关系标识,根据所述节点标识及所述关系标识将节点及关系进行连接,得到所述新图数据库。

在实际应用中,图数据库包含索引管理文件。索引管理文件中包含每个节点及关系的标识,通过节点标识可以确定关系标识从而确定关系数据。将导入原图数据库的待导入节点数据以及待导入关系数据按对应的节点标识进行连接,完成原图数据库的更新,得到新图数据库。

在将所述待导入图数据导入至所述原图数据库获得新图数据库之前,还包括:

判断所述待导入图数据是否符合所述原图数据库的本体结构中定义的约束规则;

若是,则执行将所述待导入图数据导入至所述原图数据库的操作;

若否,则记录所述待导入图数据中不符合约束规则的图数据。

具体的,图数据库中的本体结构定义的约束规则用于约束节点数据以及关系数据,例如,节点A的约束规则为数字类型,即图数据库中节点A的节点数据必须为数字,若节点A的节点数据为“45”则符合约束规则,若节点数据为“四十五”则不符合约束规则,此时停止该条数据的更新并记录不符合约束规则的数据。

在实际应用中,确定所述待导入图数据中与所述原图数据库中存在冲突的图数据,生成冲突日志。例如,节点B的约束规则为唯一性,即图数据库中只可存在唯一的一个节点B,若待导入图数据与图数据库中均包含节点B,即待导入图数据与原图数据中的数据发生冲突,则将节点B发生冲突的事件以日志形式保存,得到冲突日志,以可视化的方式提供给用户。

例如,以同时更新E类节点和F类节点为例。E、F均在数据表G中,对数据表G进行更新,此时E和F将同时根据变化同步更新,在E不符合约束规则是,会发生报错并停止更新,F符合约束规则,则继续更新过程直至完成。

如图7所示,图7为将源数据导入图数据库得到更新后的图数据库的整体流程示意图,沿用上例,对更新的整体和过程进行说明。其中,首先基于对数据源MySQL的监控情况获得变更源数据,其次基于所述变更源数据得到变更数据,之后对所述变更数据进行数据清洗得到清洗后的源数据,按照图数据库的本体结构中预设的数据导入规则对所述清洗后的源数据进行映射,得到待导入图数据,并基于所述待导入图数据对生成的节点与边进行进一步处理,得到具有关联关系的图数据。

将待导入图数据导入图数据库前,为了保证数据的准确性,需要对其进行合理性检查。所述合理性的检查包括确定待导入图数据是否符合本体结构中定义的约束规则。

具体的,对所述具有关联关系的图数据与图数据库Neo4j中的知识图谱进行数据比较,确定待导入图数据与知识图谱中的数据没有冲突,则基于所述待导入图数据生成节点数据,最后将所述节点数据更新至图数据库Neo4j中,并连接图数据库Neo4j中原有的节点与新增的节点,原有节点与新增的节点之间完成连接,实现对基于结构化数据库D对图数据库Neo4j的同步更新。

若存在待导入图数据与原图数据库中的数据存在冲突的情况下,对发生冲突的待导入图数据进行记录,生成冲突日志,冲突日志可根据实际需求向用户进行可视化展示。其他与原图数据库不发生冲突的待导入图数据可导入原图数据库中,完成原图数据库的更新,得到新图数据库。

在实际应用中,在图数据库对应的数据源中与图数据库相关的某个节点数据被删除时,需要将图数据库中对应的节点数据以及与节点连接的关系数据同时删除。

具体的,若知识图谱需要对节点进行删除操作,则会将所述节点与该节点的连接关系一起删除,之后将删除的节点与该节点的连接关系以及对应数据源中的位置保存在删除日志中。当需要将该节点重新插入图数据库中时,根据所述删除日志在图数据库中自动匹配该节点与其它节点的对应关系,对该节点进行恢复。

下面以图8进行具体说明,图8是本申请实施例提供的节点的删除、恢复过程示意图。对节点801进行删除操作后,会同时删除连接节点801与其它节点的边,并生成删除日志,用于记录所述节点801、节点801与其它节点的连接关系和节点801在数据源中的存储位置。例如,删除日志中可以记录“2021-2-20(执行删除操作的时间),删除节点801“王五”,连接关系“年龄”,连接的节点“33”源数据的存储位置“数据源table3””。

在对节点801进行恢复时,可以基于所述删除日志中对于节点801的记录进行恢复,读取删除日志中节点801与其它节点的连接关系,重新在知识图谱中生成节点以及对应的连接关系。重新生成的节点为805,对应的连接关系为804。

本申请实施例提供的图数据库更新方法,通过监控数据源,从所述数据源中获取变更源数据;基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据;根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据;将所述待导入图数据导入至所述原图数据库获得新图数据库。本申请的图数据库更新方法,根据图数据库的本体结构及数据导入规则将结构化数据映射为图数据,并对导入图数据库的数据进行检查,从而提高图数据库更新准确性以及更新效率。

下面以图数据库的本体结构中包含人物节点类型、学校节点类型以及就读关系类型为例,对本申请图数据库的更新方法进行进一步的解释说明,如图9所示,包括步骤902-908。

步骤902:监控数据源,从所述数据源中获得变更源数据。

本实施例中,数据源为MySQL数据库,基于MySQL数据库可构建知识图谱。将数据“姓名:小张,年龄:13岁,小学:实验小学,入学日期:2010-9-1,毕业日期:2016-7-1”插入MySQL数据库中。

由于在数据源中MySQL数据库中新增了数据,基于Binlog监测到数据源MySQL数据库中的数据发生变化,从数据源MySQL数据库中获得变更源数据,如图10变更源数据示意图所示,即从MySQL数据库获取变更源数据“姓名:小张,年龄:13岁,小学:实验小学,入学日期:2010-9-1,毕业日期:2016-7-1”。

步骤904:根据图数据库的本体结构确定数据导入规则,根据数据导入规则获取与待更新的图数据库相关的变更数据。

本实例中,图数据库的本体结构定义了人物类型节点、学校类型节点以及就读类型关系,与本体结构对应的数据导入规则中规定了图数据库的数据源为MySQL数据库以及就读关系属性的映射方法“日期规范”。

基于数据导入规则中规定的MySQL数据库作为获取数据的数据源,在变更源数据中获取与待更新图数据库相关的变更数据。如图11提取图数据库相关数据的示意图所示,由步骤902获取到变更的源数据,基于数据导入规则从变更源数据中提取与图数据库相关的数据,得到与待更新的图数据库相关的变更数据“人物:name:小张,Age:13,学校:name:实验小学,就读:start_time:2010-9-1,end_time:2016-7-1”。

步骤906:对所述变更数据进行数据清洗。

本实施例中,变更数据为“人物:name:小张,Age:13,学校:name:实验小学,就读:start_time:2010-09-01,end_time:2016-07-01”,检查变更数据中是否存在乱码等影响数据准性的情况。例如,若变更数据出现了“人物:name:小张小张”的重复数据的情况,则对变更数据进行去重处理,得到清洗后的源数据。

步骤908:将数据清洗后的源数据映射为待导入图数据。

本实施例中,在变更数据“人物:name:小张,Age:13,学校:name:实验小学,就读:start_time:2010-09-01,end_time:2016-07-01”中未检测出重复或乱码等影响数据准确性的数据,故将其作为清洗完成得到的源数据。

数据导入规则中规定了源数据到图数据的映射方法,此映射方法可以人工设置或采取其他方式添加至数据导入规则中。如图12数据映射示意图所示,由步骤904可知,本实施例的数据导入规则中包含日期映射方法“日期规范”。对清洗完成得到的源数据“人物:name:小张,Age:13,学校:name:实验小学,就读:start_time:2010-9-1,end_time:2016-7-1”按数据导入规则中的映射方法,将数据映射为待导入图数据“人物:name:小张,Age:13,学校:name:实验小学,就读:start_time:2010-09-01,end_time:2016-07-01”。具体的,待导入图数据包括待导入节点数据以及待导入关系数据:根据本体结构以及数据导入规则确定人物类型节点数据“name:小张,Age:13”为待导入头节点数据、学校类型节点数据“name:实验小学”为待导入尾节点数据、就读关系数据“start_time:2010-09-01,end_time:2016-07-01”为待导入关系数据。

其中,由本体结构可以确定人物类型节点数据为待导入头节点数据、学校类型节点数据为待导入尾节点数据,就读关系数据为待导入关系数据。

步骤910:将所述待导入图数据与所述图数据库中现有的数据进行比较,判断是否发生冲突。

本实施例中,对待导入图数据的检查包括:检查待导入图数据是否符合本体结构中规定的节点、关系的约束规则。

具体的,如图13检查人物类型节点的示意图所示,本实施例中本体结构中规定了人物节点类型的姓名属性约束规则,“唯一性、字符串类型”,以及年龄属性约束规则,“数字类型”。根据约束规则,检查符合人物节点类型的待导入图数据“name:小张”是否符合“唯一性、字符串类型”的规则,以及数据“Age:13”是否符合“数字类型”的规则。

例如,根据待导入图数据中“name:小张”,在对应的图数据库中查询是否存在人物类型节点的name属性与待导入图数据中的name属性“小张”一致,若不存在相同的name属性,则确定节点数据“name:小张”符合“唯一性”约束规则。

如图14检查学校类型节点的示意图所示,本体结构中规定了学校节点类型的名称属性约束规则:“唯一性、字符串类型”,根据约束规则,检查符合学校节点类型的待导入图数据“name:实验小学”是否符合“唯一性、字符串类型”的规则。

例如,根据待导入图数据中“name:实验小学”,在图数据库中查询是否存在学校节点类型的name属性与待导入图数据中name属性“实验小学”一致,若不存在相同的name属性,则确定节点数据“name:实验小学”符合“唯一性”约束规则。

如图15检查就读类型关系的示意图所示,本体结构中规定了就读关系类型的日期约束规则“日期类型类型”,根据约束规则,检查符合就读关系类型的待导入图数据“start-time:2010-09-01,end-time:2016-07-01”是否符合规定的约束规则。

本实施例通过对待导入图数据中的所有数据进行检查,未发现不符合图数据库中规定的约束规则的数据。

在本申请另一实施例中,检查到待导入图数据的节点数据“name:34”不符合节点约束规则“字符串类型”,此时,停止更新图数据的过程并报错;记录不符合约束规则的数据,即节点数据“name:34”,生成冲突日志,并以可视化界面的方式进行展示。

步骤912:根据待导入图数据得到节点数据,将所述节点导入至所述原图数据库获得新图数据库。

本实施例中,如图16导入节点数据示意图所示,从待导入图数据中确定人物类型节点数据“人物:name:小张,Age:13”以及学校类型节点数据“name:实验小学”,将节点数据导入对应的图数据库中,并为每个节点创建节点ID。

图数据库中包含索引管理文件,索引管理文件中记录了图数据库中全部节点以及关系的ID,根据节点或关系的ID可快速确定与节点或关系对应的具体数据。

如图17搜索节点ID示意图所示,根据人物节点数据以及学校节点数据在图数据库中搜索每个节点对应的ID。得到人物节点的ID“Per50”以及学校节点ID“School16”。由学校节点ID,可以确定节点间关系的ID。

如图18索引管理示意图所示,根据人物节点的ID“Per50”与学校节点ID“School16”确定节点间的就读关系;将就读关系数据导入图数据库中,确定就读关系的ID为“Educate100”。用就读关系连接人物节点与学校节点,完成原图数据库的更新,得到新图数据库。

本申请实施例提供的图数据库更新方法,通过对数据源进行实时监控获取变更源数据,可以及时的获取数据源的变化,有助于提升图数据库的更新速度;获取与待更新的图数据库相关的变更数据,保证了可以过滤与图数据库无关的数据;对变更数据进行数据清洗,避免了变更数据中的数据冗余;基于数据导入规则将源数据映射为待导入图数据,可以使待导入图数据满足图数据库中对图数据的映射规则,提升了图数据库的更新效率。

与上述方法实施例相对应,本说明书还提供了一种图数据库更新装置实施例,图19示出了本说明书一个实施例的一种图数据库更新装置的结构示意图。如图19所示,该装置包括:

获取模块1902,被配置为监控数据源,从所述数据源中获取变更源数据;

确定模块1904,被配置为基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据;

映射模块1906,被配置为根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据;

导入模块1908,被配置将所述待导入图数据导入至所述原图数据库获得新图数据库。

所述获取模块1902,被进一步配置为:

获取所述数据源中存储的更新日志;

基于所述更新日志,从所述数据源中读取发生变化的数据,生成变更源数据。

所述确定模块1904,被进一步配置为:

根据所述原图数据库的本体结构确定所述原图数据库的数据导入规则;

根据所述数据导入规则确定与所述原图数据库关联的目标数据源,其中所述目标数据源是所述数据源之一;

根据所述本体结构,从所述目标数据源的变更源数据中获取与所述原图数据库对应的变更数据。

所述映射模块1906,被进一步配置为:

根据所述原图数据库的本体结构确定所述变更数据中的节点数据和关系数据;

根据所述原图数据库的本体结构对应的数据导入规则映射所述节点数据和所述关系数据,获得待导入图数据。

所述映射模块1906,被进一步配置为:

根据所述原图数据库的本体结构对应的数据导入规则中的节点映射方法,将所述变更数据中的节点数据映射为待导入节点数据;

根据所述原图数据库的本体结构对应的数据导入规则中的关系映射方法,将所述变更数据中的关系数据映射为待导入关系数据;

由所述待导入节点数据和所述待导入关系数据构成待导入图数据。

所述映射模块1906,被进一步配置为:

判断所述待导入图数据是否符合所述原图数据库的本体结构中定义的约束规则;

若是,则执行将所述待导入图数据导入至所述原图数据库的操作;

若否,则记录所述待导入图数据中不符合约束规则的图数据。

所述映射模块1906,被进一步配置为:

确定所述待导入图数据中与所述原图数据库中存在冲突的图数据,生成冲突日志。

所述导入模块1908,被进一步配置为:

获取所述待导入图数据中的节点标识及关系标识,根据所述节点标识及所述关系标识将节点及关系进行连接,得到所述新图数据库。

所述装置还包括清洗模块,被配置为:

清洗所述变更数据。

本申请的图数据库更新装置,包括:获取模块,被配置为监控数据源,从所述数据源中获取变更源数据;确定模块,被配置为基于原图数据库的本体结构,从所述变更源数据中确定与所述原图数据库对应的变更数据;映射模块,被配置为根据所述原图数据库的本体结构及所述原图数据库的本体结构对应的数据导入规则处理所述变更数据,获得待导入图数据;导入模块,被配置为将所述待导入图数据导入至所述原图数据库获得新图数据库。通过根据图数据库的本体结构及数据导入规则将结构化数据映射为图数据,并对导入图数据库的数据进行检查,从而提高图数据库更新准确性以及更新效率。

上述为本实施例的一种图数据库更新装置的示意性方案。需要说明的是,该图数据库更新装置的技术方案与上述的图数据库更新方法的技术方案属于同一构思,图数据库更新装置的技术方案未详细描述的细节内容,均可以参见上述图数据库更新方法的技术方案的描述。

需要说明的是,装置权利要求中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。

本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的图数据库更新方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的图数据库更新方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述图数据库更新方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述图数据库更新方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的图数据库更新方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述图数据库更新方法的技术方案的描述。

本申请实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如前所述图数据库更新方法的步骤。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 一种图数据库更新方法及装置
  • 图数据库更新方法及装置
技术分类

06120113284114