CN111090760A - 数据存储方法和装置、计算机可读存储介质、电子设备 - Google Patents
数据存储方法和装置、计算机可读存储介质、电子设备 Download PDFInfo
- Publication number
- CN111090760A CN111090760A CN201911167684.3A CN201911167684A CN111090760A CN 111090760 A CN111090760 A CN 111090760A CN 201911167684 A CN201911167684 A CN 201911167684A CN 111090760 A CN111090760 A CN 111090760A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- edge
- edge data
- storing
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/55—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据存储方法和装置、计算机可读存储介质、电子设备,其中,方法包括:获取数据集中的每个待存储数据的类型标签;分别对所述数据集中的每个待存储数据进行分类,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,本实施例通过批量将节点数据和边数据存入图数据库,加快了图数据库的数据上传过程,实现稳定的上传海量数据到图数据库,提高了数据上传的效率和准确率。
Description
技术领域
本公开涉及数据存储技术,尤其是一种数据存储方法和装置、计算机可读存储介质、电子设备。
背景技术
现在随着大数据时代的来临,人们越发的认识到数据的重要性,各类数据挖掘的需求层出不穷,传统的关系型数据库已经不能满足人们的需要,于是非关系型数据库应运而生。通常情况下,非关系型数据库(NoSQL)分为4种:Graph, Document,Column Family和Key value;其中,图数据库就属于非关系型数据库中的一种,对于关系的存储和查询有着很好的支持。传统的关系型数据库是根据“实体建模”这一理念设计的,并没有提供对实体间关系的直接支持。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据存储方法和装置、计算机可读存储介质、电子设备。
根据本公开实施例的一个方面,提供了一种数据存储方法,包括:
获取数据集中的每个待存储数据的类型标签;
对所述数据集中的每个待存储数据进行处理,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;
基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中。
可选地,所述边数据包括:开始节点、关系名称和结束节点;
所述基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,包括:
按照所述节点数据对应的类型标签对所述节点数据集进行分类,获得至少一组所述节点数据组;其中,每组所述节点数据组中包括对应同一类别标签的节点数据;
按照所述节点数据组将所述节点数据存入所述图数据库;
根据所述边数据对应的开始节点将所述边数据集中的边数据存入所述图数据库。
可选地,所述根据所述边数据对应的开始节点将所述边数据集中的边数据存入所述图数据库,包括:
根据所述边数据集中每个所述边数据对应的开始节点对所述边数据进行聚类,获得至少一个聚类集;
以所述聚类集为单位将所述边数据存入所述图数据库。
可选地,还包括:响应于所述开始节点对应的所述边数据的数量超出设定数量,删除所述开始节点。
可选地,所述按照所述节点数据组将所述节点数据存入所述图数据库,包括:
通过至少两个通道将所述节点数据组中的节点数据并行存入所述图数据库;和/或
所述以所述聚类集为单位将所述边数据存入所述图数据库,包括:
通过至少两个通道将所述聚类集中的边数据并行存入所述图数据库。
可选地,还包括:
响应于所述至少两个通道中的至少一个通道存储节点数据错误,将所述至少两通道对应的所述节点数据组中的节点数据重新存入所述图像数据库;和/或
响应于所述至少两个通道中的至少一个通道存储边数据错误,将所述至少两通道对应的所述边数据组中的边数据重新存入所述图像数据库。
可选地,在基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中之前,还包括:
为所述节点数据集中的每个所述节点数据分配一个用于标识所述节点数据的节点标识以及标识名称;其中,每个所述节点标识用于标识一个所述节点数据,每个所述标识名称基于对应的节点标识获得;和/或
为所述边数据集中的每个所述边数据分配一个用于标识所述边数据的边标识以及边标识名称;其中,每个所述边标识用于标识一个所述边数据,每个所述边标识名称基于对应的边标识获得。
可选地,所述分别对所述数据集中的每个待存储数据进行处理,获得节点数据集和边数据集,包括:
根据所述图数据库的定义,确定所述数据集中的每个待存储数据的提取特征;
基于所述待存储数据的提取特征将所述待存储数据确定为节点数据或边数据,获得节点数据集和边数据集。
可选地,所述基于所述待存储数据的提取特征将所述待存储数据确定为节点数据或边数据,包括:
根据应用场景中的预设条件确定所述节点数据对应的提取特征和所述边数据对应的提取特征;
基于所述待存储数据的提取特征与所述节点数据对应的提取特征和所述边数据对应的提取特征的匹配情况,确定所述待存储数据为节点数据或边数据。
可选地,所述数据集中的每个待存储数据包括以下至少一种数据:结构化数据、半结构化数据、非结构化数据;
在获取待存储数据的类型标签之前,还包括:
利用自然语言处理技术对所述半结构化数据和/或所述非结构化数据进行语义识别处理。
可选地,所述一个开始节点和一个结束节点之间的关系包括:通过一条所述边数据连接的单边关系或通过多条所述边数据连接的多边关系;
所述方法还包括:
响应于所述开始节点和所述结束节点之间产生关系,根据所述开始节点和所述结束节点之间为单边关系或多边关系确定增加或更新边数据。
可选地,所述根据所述开始节点和所述结束节点之间为单边关系或多边关系确定增加或更新边数据,包括:
当所述开始节点和所述结束节点之间为单边关系,更新所述开始节点和所述结束节点之间的边数据;
当所述开始节点和所述结束节点之间为多边关系,对所述开始节点和所述结束节点之间增加新的边数据。
根据本公开实施例的另一方面,提供了一种数据存储装置,包括:
类型获取模块,用于获取数据集中的每个待存储数据的类型标签;
数据分类模块,用于对所述数据集中的每个待存储数据进行处理,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;
批量存储模块,用于基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中。
可选地,所述边数据包括:开始节点关系名称和结束节点;
所述批量存储模块,包括:
节点分类单元,用于按照所述节点数据对应的类型标签对所述节点数据集进行分类,获得至少一组所述节点数据组;其中,每组所述节点数据组中包括对应同一类别标签的节点数据;
节点存储单元,用于按照所述节点数据组将所述节点数据存入所述图数据库;
边存储单元,用于根据所述边数据对应的开始节点将所述边数据集中的边数据存入所述图数据库。
可选地,所述边存储单元,具体用于根据所述边数据集中每个所述边数据对应的开始节点对所述边数据进行聚类,获得至少一个聚类集;以所述聚类集为单位将所述边数据存入所述图数据库。
可选地,所述边存储单元,还用于响应于所述开始节点对应的所述边数据的数量超出设定数量,删除所述开始节点。
可选地,所述节点存储单元,用于通过至少两个通道将所述节点数据组中的节点数据并行存入所述图数据库;和/或
所述边存储单元,用于通过至少两个通道将所述聚类集中的边数据并行存入所述图数据库。
可选地,所述批量存储模块,还包括:数据重存单元,用于响应于所述至少两个通道中的至少一个通道存储节点数据错误,将所述至少两通道对应的所述节点数据组中的节点数据重新存入所述图像数据库;响应于所述至少两个通道中的至少一个通道存储边数据错误,将所述至少两通道对应的所述边数据组中的边数据重新存入所述图像数据库。
可选地,所述装置还包括:
节点格式设置模块,用于为所述节点数据集中的每个所述节点数据分配一个用于标识所述节点数据的节点标识以及标识名称;其中,每个所述节点标识用于标识一个所述节点数据,每个所述标识名称基于对应的节点标识获得;和/或
边格式设置模块,用于为所述边数据集中的每个所述边数据分配一个用于标识所述边数据的边标识以及边标识名称;其中,每个所述边标识用于标识一个所述边数据,每个所述边标识名称基于对应的边标识获得。
可选地,所述数据分类模块,包括:
属性确定单元,用于根据所述图数据库的定义,确定所述数据集中的每个待存储数据的提取特征;
分类单元,用于基于所述待存储数据的提取特征将所述待存储数据确定为节点数据或边数据,获得节点数据集和边数据集。
可选地,所述分类单元,具体用于根据应用场景中的预设条件确定所述节点数据对应的提取特征和所述边数据对应的提取特征;基于所述待存储数据的提取特征与所述节点数据对应的提取特征和所述边数据对应的提取特征的匹配情况,确定所述待存储数据为节点数据或边数据。
可选地,所述数据集中的每个待存储数据包括以下至少一种数据:结构化数据、半结构化数据、非结构化数据;
所述装置还包括:
语义识别模块,用于利用自然语言处理技术对所述半结构化数据和/或所述非结构化数据进行语义识别处理。
可选地,所述一个开始节点和一个结束节点之间的关系包括:通过一条所述边数据连接的单边关系或通过多条所述边数据连接的多边关系;
所述装置还包括:
数据变更模块,用于响应于所述开始节点和所述结束节点之间产生关系,根据所述开始节点和所述结束节点之间为单边关系或多边关系确定增加或更新边数据。
可选地,所述数据变更模块,具体用于当所述开始节点和所述结束节点之间为单边关系,更新所述开始节点和所述结束节点之间的边数据;当所述开始节点和所述结束节点之间为多边关系,对所述开始节点和所述结束节点之间增加新的边数据。
根据本公开实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的数据存储方法。
根据本公开实施例的还一方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的数据存储方法。
基于本公开上述实施例提供的一种数据存储方法和装置、计算机可读存储介质、电子设备,获取数据集中的每个待存储数据的类型标签;分别对所述数据集中的每个待存储数据进行分类,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,本实施例通过批量将节点数据和边数据存入图数据库,加快了图数据库的数据上传过程,实现稳定的上传海量数据到图数据库,提高了数据上传的效率和准确率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的数据存储方法的流程示意图。
图2是本公开图1所示的实施例中步骤106的一个流程示意图。
图3是本公开图2所示的实施例中步骤1063的一个流程示意图。
图4A是本公开图1所示的实施例中步骤104的一个流程示意图。
图4B是本公开另一示例性实施例提供的数据存储方法中节点数据和边数据的结构示意图。
图5是本公开一示例性实施例提供的数据存储装置的结构示意图。
图6是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/ 或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
在实现本公开的过程中,发明人发现,图数据库由于其具有边数据和节点数据,其实现了对间接关系的描述,并且提升了关联查询的效率,至少存在以下问题:目前图数据库仍处于发展阶段,并没有一个稳定易用的上传方式,数据上传速度慢,影响图数据库的使用。
示例性方法
图1是本公开一示例性实施例提供的数据存储方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:
步骤102,获取数据集中的每个待存储数据的类型标签。
可选地,类型标签是对存储数据进行预先设置的,在本实施例中进行获取是为了实现图数据库中的数据存储,图数据库中定义的数据包括节点数据和边数据,每一个节点和边都可以由类型标签描述,类型标签可以类比为关系型数据库中的表名,或者根据该关系型数据库的表名或者根据该数据进行预定规则的处理获得的,例如,可以根据表名“房源”,获取对应的类型标签为“房产”。可选地,每一个节点和边还可以添加任意数量的属性数据,用来描述节点和边的特征。在对图像数据库查询数据时,可以通过给类型标签和属性建立索引,来快速的提取相应的节点和边,并通过游走模型,BFS(Breadth First Search),DFS(Depth First Search)等图算法来进行关系的查询及分析。
步骤104,对数据集中的每个待存储数据进行处理,获得节点数据集和边数据集。
其中,节点数据集中包括多个节点数据,边数据集中包括多个边数据,每个边数据表示两个节点数据之间的关联关系。
可选地,数据集的处理是为了从原始数据中抽象出模型,提取关系,构建属性,形成属性节点和属性边,即将待存储数据分类为节点数据和边数据。
步骤106,基于类型标签将节点数据集和边数据集批量存入图数据库中。
本实施例为了满足大量(例如,数十亿级别)的节点数据和边数据上传到图数据库,采用分布式上传数据,满足稳定,批量上传数据的需求;例如,利用spark 技术为JanusGraph开发了一个分布式上传数据的脚本实现数据上传。可选地,选用HBase作为JanusGraph后端数据存储的平台,实现了数据实时性查询的要求。
本公开上述实施例提供的一种数据存储方法,获取数据集中的每个待存储数据的类型标签;分别对所述数据集中的每个待存储数据进行分类,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,本实施例通过批量将节点数据和边数据存入图数据库,加快了图数据库的数据上传过程,实现稳定的上传海量数据到图数据库,提高了数据上传的效率和准确率。
如图2所示,在上述图1所示实施例的基础上,步骤106可包括如下步骤:
步骤1061,按照节点数据对应的类型标签对节点数据集进行分类,获得至少一组节点数据组。
其中,每组节点数据组中包括对应同一类别标签的节点数据。
步骤1062,按照节点数据组将节点数据存入图数据库。
步骤1063,根据边数据对应的开始节点将边数据集中的边数据存入图数据库。
其中,边数据包括但不限于:开始节点、关系名称和结束节点。
本实施例为了实现批量将节点数据和边数据存入图数据库,首先将节点数据和边数据分类,并且,由于节点数据和边数据的不同,通过不同方式分类,节点数据可通过类型进行分类,按照类型批量写入即可。例如,节点数据包括属性数据和标识(如,主键),此时按照节点数据包括的属性数据和标识提取json属性字符串和主键,然后运行spark代码上传即可。例如,每累计5000条数据commit 写入后端一次,同时休眠50ms。
如图3所示,在上述图2所示实施例的基础上,步骤1063可包括如下步骤:
步骤301,根据边数据集中每个边数据对应的开始节点对边数据进行聚类,获得至少一个聚类集。
步骤302,以聚类集为单位将边数据存入图数据库。
本实施例中,为了减小后端HBase访问压力,把边数据按照开始节点(sourceVertex)进行聚类,同一个起点发出的所有的边会被聚集到一起,统一写入。可选地,本实施例提供的方法,还包括:响应于开始节点对应的边数据的数量超出设定数量,删除开始节点。即,如果一个开始节点对应的边数据的数量超出设定数量(例如,10万条以上),那么可以认为这是一个脏数据,删掉该开始节点。
在一些可选的实施例中,步骤1062可以包括:
通过至少两个通道将节点数据组中的节点数据并行存入图数据库。
步骤302可以包括:通过至少两个通道将聚类集中的边数据并行存入图数据库。
本实施例为了提高批量存储数据的效率,采用并行存储的方式,并行(例如,利用spark并行上传)上传数据加速了数据上传的速度,但可能会造成后端HBase 访问压力增大,不同节点数据写入冲突等问题;为了解决访问压力增大的问题,本实施例对最大并行数进行限制,例如,限制spark最大并行数为60,而为了解决数据写入冲突的问题,可以对每一条数据都分配一个唯一的标识(例如,主键值),防止写入冲突。
在一些可选的实施例中,在节点数据和边数据存入图数据库之前,对节点数据和边数据进行处理:
为节点数据集中的每个节点数据分配一个用于标识节点数据的节点标识以及标识名称。
其中,每个节点标识用于标识一个节点数据,每个标识名称基于对应的节点标识获得;
为边数据集中的每个边数据分配一个用于标识边数据的边标识以及边标识名称。
其中,每个边标识用于标识一个边数据,每个边标识名称基于对应的边标识获得。
本实施例为了满足海量数据的建模和存储,设计了一个标准的数据呈现和存储格式,数据分布式的存储在Hive中,保证了稳定性和可扩展性,为下一步的数据上传和处理做好了准备。
例如,节点数据格式如表1所示:
节点label | 节点主键名 | 节点主键值 | 节点属性json |
房源 | md5ld | 3b4387ee53ef3c921959a461d031d50b | {″listing_time″:″2016-10-02″,″bedroom_num″:″2″,″district_name″:″龙岗区″} |
... |
表1一种节点数据的格式示意表
边数据格式如表2所示:
表2一种边数据的格式示意表
由上述可知,不论是节点数据还是边数据,都有类型标签,主键名称、主键值(对应标识)和属性json字符串。根据类型标签、主键值和属性三个值,可以唯一的定位出目标节点数据或者目标边数据。
在一些可选的实施例中,一个开始节点和一个结束节点之间的关系包括:通过一条边数据连接的单边关系或通过多条边数据连接的多边关系;
本实施例提供的方法还包括:
响应于开始节点和结束节点之间产生关系,根据开始节点和结束节点之间为单边关系或多边关系确定增加或更新边数据。
相比于节点数据,边数据要复杂一些,涉及到关系(边)的维度和更新方式。根据关系的维度,本实施例把关系分为多边(Multi)关系和单边(Simple)关系;根据更新方式,可以将边划分为增加(Add)关系和更新(Update)关系。
其中,Multi:任意两个节点间允许有多个同标签的边;Simple:任意两个节点间,对于给定的标签,最多只能有一条边。
可选地,当开始节点和结束节点之间为单边关系,更新开始节点和结束节点之间的边数据;当开始节点和结束节点之间为多边关系,对开始节点和结束节点之间增加新的边数据。
本实施例提出在更新数据时,如果是Add方式,就继续在两个节点之间添加边;如果是Update方式,则更新已有边的信息。
综上,2种边的维度和2种更新方式,一共会有如下情况:
Simple
Add
不存在边:创建;
存在边:出错(不可以添加边);
Update
不存在边:创建;
存在边:更改;
Multi
Add
不存在边:创建;
存在边:创建;
Update
不存在边:创建;
存在边:更改。
如图4A所示,在上述图1所示实施例的基础上,步骤104可包括如下步骤:
步骤1041,根据图数据库的定义,确定数据集中的每个待存储数据的提取特征。
步骤1042,基于待存储数据的提取特征将待存储数据分类为节点数据或边数据,获得节点数据集和边数据集。
例如,待存储的数据可以为存储房源信息的表格数据,针对每一个房源,表格中都会有对应的房源ID、面积数据、朝向信息、价格信息、对接经纪人。那么,首先提取节点:房源,经纪人;然后进一步提取属性信息,例如,可以把表格中可以用预定类型表示的数据规划为该房源的属性,例如,将房源ID、面积数据、朝向信息、价格信息规划为房源的属性。将预定类型之外的信息,例如此表格中该房源的对接关系,就定义为边。如图4B所示。
步骤1042包括:根据应用场景中的预设条件确定节点数据对应的提取特征和边数据对应的提取特征;
基于待存储数据的提取特征与节点数据对应的提取特征和边数据对应的提取特征的匹配情况,确定待存储数据为节点数据或边数据。
可选地,待存储数据的提取特征包括:执行主体、主体之间的关系;此时,将提取特征为执行主体的存储数据确定为节点数据,将提取特征为主体之间的关系的存储数据确定为边数据。
可选地,根据业务场景构建本体库,本体库,就是将现实中的各种事物归纳总结成实体(节点数据)及关系(边数据)。例如,在房产领域,抽象覆盖了5 大类,46种实体和90多种关系。以房产领域中的数据为例,“小王”隶属于经纪人这个实体,“房子A”隶属于房屋这个实体,而“带看”这个关系把两者联系了起来。
本实施例实现,根据本体库的定义,处理原始数据,提取出实体属性(节点属性)和实体关系(边数据)。其中,实体属性,用来描述实体状态,多为数值型,例如,房间的面积,楼层等。实体关系是连接两个实体的纽带,比如房子“位于”城市,房子和城市都是某个的实体而非数值。依据实体-数值,实体-实体的区别,例如,通过设计了两种属性类型:DataProperty数据属性,ObjectProperty 对象属性是一个节点,对未定义的边关系进行查找节点。
在一些可选的实施例中,数据集中的每个待存储数据包括以下至少一种数据:结构化数据、半结构化数据、非结构化数据;
执行步骤102之前,还可以包括:
利用自然语言处理技术对半结构化数据和/或非结构化数据进行语义识别处理。
本实施例处理的待处理数据的来源可以是结构化数据、半结构化数据、非结构化数据中的至少一种。其中,结构化数据就是指表格数据,半结构化数据是类似百科网站上面比较规范的数据,而非结构化数据就是指文章。结构化的数据可以直接用来建模应用,而半结构和非结构化数据则需要首先经过自然语言处理 (NLP)技术处理,进行语义和实体识别后再来使用。
本公开实施例提供的任一种数据存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种数据存储方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种数据存储方法。下文不再赘述。
示例性装置
图5是本公开一示例性实施例提供的数据存储装置的结构示意图。如图5所示,本实施例包括:
类型获取模块51,用于获取数据集中的每个待存储数据的类型标签。
数据分类模块52,用于分别对数据集中的每个待存储数据进行分类,获得节点数据集和边数据集。
其中,节点数据集中包括多个节点数据,边数据集中包括多个边数据,每个边数据表示两个节点数据之间的关联关系。
批量存储模块53,用于基于类型标签将节点数据集和边数据集批量存入图数据库中。
本公开上述实施例提供的一种数据存储装置,获取数据集中的每个待存储数据的类型标签;分别对所述数据集中的每个待存储数据进行分类,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,本实施例通过批量将节点数据和边数据存入图数据库,加快了图数据库的数据上传过程,实现稳定的上传海量数据到图数据库,提高了数据上传的效率和准确率。
在一些可选实施例中,边数据包括:开始节点关系名称和结束节点;
批量存储模块53,包括:
节点分类单元,用于按照节点数据对应的类型标签对节点数据集进行分类,获得至少一组节点数据组;其中,每组节点数据组中包括对应同一类别标签的节点数据;
节点存储单元,用于按照节点数据组将节点数据存入图数据库;
边存储单元,用于根据边数据对应的开始节点将边数据集中的边数据存入图数据库。
可选地,边存储单元,具体用于根据边数据集中每个边数据对应的开始节点对边数据进行聚类,获得至少一个聚类集;以聚类集为单位将边数据存入图数据库。
可选地,边存储单元,还用于响应于开始节点对应的边数据的数量超出设定数量,删除开始节点。
可选地,节点存储单元,用于通过至少两个通道将节点数据组中的节点数据并行存入图数据库;和/或
边存储单元,用于通过至少两个通道将聚类集中的边数据并行存入图数据库。
可选地,批量存储模块53,还包括:数据重存单元,用于响应于至少两个通道中的至少一个通道存储节点数据错误,将至少两通道对应的节点数据组中的节点数据重新存入图像数据库;响应于至少两个通道中的至少一个通道存储边数据错误,将至少两通道对应的边数据组中的边数据重新存入图像数据库。
在一些可选的实施例中,本实施例提供的装置还包括:
节点格式设置模块,用于为节点数据集中的每个节点数据分配一个用于标识节点数据的节点标识以及标识名称;其中,每个节点标识用于标识一个节点数据,每个标识名称基于对应的节点标识获得;和/或
边格式设置模块,用于为边数据集中的每个边数据分配一个用于标识边数据的边标识以及边标识名称;其中,每个边标识用于标识一个边数据,每个边标识名称基于对应的边标识获得。
在一些可选的实施例中,数据分类模块52,包括:
属性确定单元,用于根据图数据库的定义,确定数据集中的每个待存储数据的提取特征;
分类单元,用于基于待存储数据的提取特征将待存储数据确定为节点数据或边数据,获得节点数据集和边数据集。
可选地,分类单元,具体用于根据应用场景中的预设条件确定节点数据对应的提取特征和边数据对应的提取特征;基于待存储数据的提取特征与节点数据对应的提取特征和边数据对应的提取特征的匹配情况,确定待存储数据为节点数据或边数据。
可选地,数据集中的每个待存储数据包括以下至少一种数据:结构化数据、半结构化数据、非结构化数据;
本实施例提供的装置还包括:
语义识别模块,用于利用自然语言处理技术对半结构化数据和/或非结构化数据进行语义识别处理。
在一些可选的实施例中,一个开始节点和一个结束节点之间的关系包括:通过一条边数据连接的单边关系或通过多条边数据连接的多边关系;
本实施例提供的装置还包括:
数据变更模块,用于响应于开始节点和结束节点之间产生关系,根据开始节点和结束节点之间为单边关系或多边关系确定增加或更新边数据。
可选地,数据变更模块,具体用于当开始节点和结束节点之间为单边关系,更新开始节点和结束节点之间的边数据;当开始节点和结束节点之间为多边关系,对开始节点和结束节点之间增加新的边数据。
示例性电子设备
下面,参考图6来描述根据本公开实施例的电子设备。该电子设备可以是第一设备100和第二设备200中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图6图示了根据本公开实施例的电子设备的框图。
如图6所示,电子设备60包括一个或多个处理器61和存储器62。
处理器61可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备60中的其他组件以执行期望的功能。
存储器62可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器 (cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器61可以运行所述程序指令,以实现上文所述的本公开的各个实施例的数据存储方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备60还可以包括:输入装置63和输出装置64,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备100或第二设备200时,该输入装置63可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置63可以是通信网络连接器,用于从第一设备100和第二设备200接收所采集的输入信号。
此外,该输入设备63还可以包括例如键盘、鼠标等等。
该输出装置64可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备64可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备60中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备60还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据存储方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据存储方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
获取数据集中的每个待存储数据的类型标签;
对所述数据集中的每个待存储数据进行处理,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;
基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中。
2.根据权利要求1所述的方法,其特征在于,所述边数据包括:开始节点、关系名称和结束节点;
所述基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中,包括:
按照所述节点数据对应的类型标签对所述节点数据集进行分类,获得至少一组所述节点数据组;其中,每组所述节点数据组中包括对应同一类别标签的节点数据;
按照所述节点数据组将所述节点数据存入所述图数据库;
根据所述边数据对应的开始节点将所述边数据集中的边数据存入所述图数据库。
3.根据权利要求2所述的方法,其特征在于,所述根据所述边数据对应的开始节点将所述边数据集中的边数据存入所述图数据库,包括:
根据所述边数据集中每个所述边数据对应的开始节点对所述边数据进行聚类,获得至少一个聚类集;
以所述聚类集为单位将所述边数据存入所述图数据库。
4.根据权利要求3所述的方法,其特征在于,还包括:响应于所述开始节点对应的所述边数据的数量超出设定数量,删除所述开始节点。
5.根据权利要求3或4所述的方法,其特征在于,
所述按照所述节点数据组将所述节点数据存入所述图数据库,包括:
通过至少两个通道将所述节点数据组中的节点数据并行存入所述图数据库;和/或
所述以所述聚类集为单位将所述边数据存入所述图数据库,包括:
通过至少两个通道将所述聚类集中的边数据并行存入所述图数据库。
6.根据权利要求5所述的方法,其特征在于,还包括:
响应于所述至少两个通道中的至少一个通道存储节点数据错误,将所述至少两通道对应的所述节点数据组中的节点数据重新存入所述图像数据库;和/或
响应于所述至少两个通道中的至少一个通道存储边数据错误,将所述至少两通道对应的所述边数据组中的边数据重新存入所述图像数据库。
7.根据权利要求1-6任一所述的方法,其特征在于,在基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中之前,还包括:
为所述节点数据集中的每个所述节点数据分配一个用于标识所述节点数据的节点标识以及标识名称;其中,每个所述节点标识用于标识一个所述节点数据,每个所述标识名称基于对应的节点标识获得;和/或
为所述边数据集中的每个所述边数据分配一个用于标识所述边数据的边标识以及边标识名称;其中,每个所述边标识用于标识一个所述边数据,每个所述边标识名称基于对应的边标识获得。
8.一种数据存储装置,其特征在于,包括:
类型获取模块,用于获取数据集中的每个待存储数据的类型标签;
数据分类模块,用于对所述数据集中的每个待存储数据进行处理,获得节点数据集和边数据集;其中,所述节点数据集中包括多个节点数据,所述边数据集中包括多个边数据,每个所述边数据表示两个所述节点数据之间的关联关系;
批量存储模块,用于基于所述类型标签将所述节点数据集和所述边数据集批量存入图数据库中。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一所述的数据存储方法。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167684.3A CN111090760A (zh) | 2019-11-25 | 2019-11-25 | 数据存储方法和装置、计算机可读存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911167684.3A CN111090760A (zh) | 2019-11-25 | 2019-11-25 | 数据存储方法和装置、计算机可读存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111090760A true CN111090760A (zh) | 2020-05-01 |
Family
ID=70393729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911167684.3A Pending CN111090760A (zh) | 2019-11-25 | 2019-11-25 | 数据存储方法和装置、计算机可读存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090760A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858610A (zh) * | 2020-07-28 | 2020-10-30 | 贝壳技术有限公司 | 数据行号分配方法和装置、存储介质、电子设备 |
CN112528090A (zh) * | 2020-12-11 | 2021-03-19 | 北京百度网讯科技有限公司 | 图数据的存储方法和存储装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615677A (zh) * | 2015-01-20 | 2015-05-13 | 同济大学 | 一种图数据存取方法及系统 |
CN106325756A (zh) * | 2015-06-15 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种数据存储、数据计算方法和设备 |
CN109871383A (zh) * | 2019-02-15 | 2019-06-11 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN109947850A (zh) * | 2019-03-12 | 2019-06-28 | 深圳灵图慧视科技有限公司 | 数据分发方法、装置和设备 |
CN110162571A (zh) * | 2019-04-26 | 2019-08-23 | 厦门市美亚柏科信息股份有限公司 | 一种异构数据库之间数据同步的系统、方法、存储介质 |
CN110427505A (zh) * | 2019-07-05 | 2019-11-08 | 苏州浪潮智能科技有限公司 | 一种批量数据导入图像数据库的方法和装置 |
-
2019
- 2019-11-25 CN CN201911167684.3A patent/CN111090760A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615677A (zh) * | 2015-01-20 | 2015-05-13 | 同济大学 | 一种图数据存取方法及系统 |
CN106325756A (zh) * | 2015-06-15 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种数据存储、数据计算方法和设备 |
CN109871383A (zh) * | 2019-02-15 | 2019-06-11 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN109947850A (zh) * | 2019-03-12 | 2019-06-28 | 深圳灵图慧视科技有限公司 | 数据分发方法、装置和设备 |
CN110162571A (zh) * | 2019-04-26 | 2019-08-23 | 厦门市美亚柏科信息股份有限公司 | 一种异构数据库之间数据同步的系统、方法、存储介质 |
CN110427505A (zh) * | 2019-07-05 | 2019-11-08 | 苏州浪潮智能科技有限公司 | 一种批量数据导入图像数据库的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858610A (zh) * | 2020-07-28 | 2020-10-30 | 贝壳技术有限公司 | 数据行号分配方法和装置、存储介质、电子设备 |
CN112528090A (zh) * | 2020-12-11 | 2021-03-19 | 北京百度网讯科技有限公司 | 图数据的存储方法和存储装置 |
CN112528090B (zh) * | 2020-12-11 | 2023-08-04 | 北京百度网讯科技有限公司 | 图数据的存储方法和存储装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649455B (zh) | 一种大数据开发的标准化系统归类、命令集系统 | |
CN107357933B (zh) | 一种用于多源异构科技信息资源的标签描述方法和装置 | |
US11288241B1 (en) | Systems and methods for integration and analysis of data records | |
US9026518B2 (en) | System and method for clustering content according to similarity | |
Caicedo et al. | Multimodal representation, indexing, automated annotation and retrieval of image collections via non-negative matrix factorization | |
WO2017074174A1 (en) | A system and method for processing big data using electronic document and electronic file-based system that operates on rdbms | |
US9959326B2 (en) | Annotating schema elements based on associating data instances with knowledge base entities | |
WO2017096454A1 (en) | Clustering documents based on textual content | |
US20180181646A1 (en) | System and method for determining identity relationships among enterprise data entities | |
JP2013519138A (ja) | アイテム関連付けのための結合埋込 | |
CN108647322B (zh) | 基于词网识别大量Web文本信息相似度的方法 | |
US20140006369A1 (en) | Processing structured and unstructured data | |
CN107329987A (zh) | 一种基于mongo数据库的搜索系统 | |
CN111611266A (zh) | 知识驱动的联合大数据查询和分析平台 | |
CN111611304A (zh) | 知识驱动的联合大数据查询和分析平台 | |
WO2013109524A1 (en) | Automatic method for profile database aggregation, deduplication, and analysis | |
KR20180129001A (ko) | 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템 | |
CN111090760A (zh) | 数据存储方法和装置、计算机可读存储介质、电子设备 | |
CN111611448A (zh) | 知识驱动的联合大数据查询和分析平台 | |
WO2017158802A1 (ja) | データ変換システム及びデータ変換方法 | |
CN114416998A (zh) | 文本标签的识别方法、装置、电子设备及存储介质 | |
US20150261837A1 (en) | Querying Structured And Unstructured Databases | |
Benny et al. | Hadoop framework for entity resolution within high velocity streams | |
CN110874366A (zh) | 数据处理、查询方法和装置 | |
CN111858617A (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 |