CN112445889A - 存储数据、检索数据的方法及相关设备 - Google Patents

存储数据、检索数据的方法及相关设备 Download PDF

Info

Publication number
CN112445889A
CN112445889A CN202011378238.XA CN202011378238A CN112445889A CN 112445889 A CN112445889 A CN 112445889A CN 202011378238 A CN202011378238 A CN 202011378238A CN 112445889 A CN112445889 A CN 112445889A
Authority
CN
China
Prior art keywords
event
data
database
entity
retrieval
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
CN202011378238.XA
Other languages
English (en)
Other versions
CN112445889B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202011378238.XA priority Critical patent/CN112445889B/zh
Publication of CN112445889A publication Critical patent/CN112445889A/zh
Application granted granted Critical
Publication of CN112445889B publication Critical patent/CN112445889B/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种存储数据、检索数据的方法及相关设备,属于信息处理技术领域。在该方法中,先判断待存储数据的类型属于实体数据、还是属于关系数据或者是属于事件数据,然后基于判断结果将不同类型的待存储数据存储到图数据库或事件数据库中。本申请实施例通过提供的存储系统实现知识图谱时,知识图谱可以保留事件本身的完整性,实现对现实生活的准确性描述。另外,减少了知识图谱的图数据库的存储空间的占用,有利于知识图谱中图数据库的查询。

Description

存储数据、检索数据的方法及相关设备
技术领域
本申请实施例涉及信息处理技术领域,特别涉及一种存储数据、检索数据的方法及相关设备。
背景技术
随着信息的不断增加,用于表征信息的数据呈现爆炸式增长的态势。目前诸如知识图谱(knowledge graph)这类存储系统可以把复杂的数据通过数据挖掘、信息处理、知识计量和图形绘制等方式显示出来,给数据工作者和科学家探求数据更深层次内容提供了便利。其中,如何向存储系统存储数据是当前关注的热点。
相关技术中,知识图谱用于将现实生活中的信息映射为实体以及实体与实体之间的关系这类数据,然后在知识图谱中存储实体以及关系。其中,实体是指现实生活中的客观物体,关系是指描述两个实体之间的实际关系。知识图谱存储的实体以及关系构成一个网络结构,该网络结构由实体作为节点、关系作为连接节点的边所构成。
但是,由于当前知识图谱只关注实体和关系的存储,导致现实生活中的事件需要被拆解为实体和/或关系存储,因此,在知识图谱中没有保留事件特有的完整性和灵活性,从而使得知识图谱中缺少了对现实生活准确性的描述。另外若在两个实体之间发生了多个事件,则会在知识图谱中被拆解为这两个实体之间的多个关系进行存储,不仅占用大量的存储空间,而且不利于知识图谱的查询。
发明内容
本申请实施例提供了一种存储数据、检索数据的方法及相关设备,可以使得构建的存储系统能够满足对现实生活准确性描述,并且还可以减少数据存储压力。所述技术方案如下:
一方面,提供了一种存储数据的方法,所述方法包括:
获取待存储数据,所述待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据;
在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库;
在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入存储系统中的事件数据库。
可选地,所述实体数据包括与实体元数据中的定义的数据格式对应的数据,所述实体元数据中定义的数据格式包括实体的标签、实体的主键字段以及实体的多个属性的数据格式,所述实体的主键字段用于唯一标识一个实体,所述实体的标签用于指示实体的类型;
可选地,所述关系数据包括与关系元数据中的定义的数据格式对应的数据,所述关系元数据中定义的数据格式包括关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段、以及关系的多个属性的数据格式;
可选地,所述事件数据包括与事件元数据中的定义的数据格式对应的数据,所述事件元数据中定义的数据格式包括事件的标签、事件关联的实体的标签和主键字段、事件的多个属性的数据格式。
所述事件数据包括事件类型,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息,所述事件数据库包括与不同事件类型分别对应的子数据库;
所述在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入存储系统中的事件数据库,包括:
根据所述事件数据中包括的事件类型,从所述事件数据库中选择相应的子数据库;
将所述事件数据写入选择的子数据库中。
可选地,所述事件类型包括普通事件,所述普通事件是指检索过程中关注的属性中均不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的子数据库包括第一列式数据库和索引数据库;
所述将所述事件数据写入选择的子数据库中,包括:
根据所述事件数据确定事件标识;
将所述事件标识和所述事件数据中的事件的多个属性写入所述第一列式数据库中;
将所述事件标识、所述事件数据中与事件关联的实体的标签和主键字段、和/或所述多个属性中的检索属性写入所述索引数据库中,所述检索属性是指用于检索事件的属性;
可选地,所述事件类型包括时序事件,所述时序事件是指检索过程中关注的属性中包括时间信息但不包括空间信息的事件,所述事件数据库中与所述时序事件对应的子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述将所述事件数据写入选择的子数据库中,包括:
根据所述事件数据生成行键,所述行键中的监控项指示所述事件数据中的事件标签,所述行键中的时间戳指示所述事件数据中的时间信息,所述行键中的值指示所述事件数据中统计的指标的监控结果,所述行键中的键值对指示所述事件数据中的其他属性;
将所述行键写入所述时间序列数据表。
可选地,所述事件类型包括时空事件,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述将所述事件数据写入选择的子数据库中,包括:
从所述事件数据中获取与所述空间属性索引表对应的空间索引字段、与所述时间属性索引表对应的时间索引字段、以及普通属性索引表对应的普通属性索引字段中的两者或多者;
将所述事件数据写入所述时空数据库中的全量数据库中,将所述空间索引字段写入所述空间属性索引表,将所述时间索引字段写入所述时间属性索引表,将所述普通属性索引字段写入所述普通属性索引表,其中,所述时空数据库中配置有所述空间索引字段和所述事件数据之间的对应关系,所述时间索引字段和所述事件数据之间的对应关系,以及所述普通属性索引字段和所述事件数据之间的对应关系。
可选地,所述在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库,包括:
根据所述待存储数据确定实体或关系的标识;
将所述待存储数据中的部分数据和所述实体或关系的标识写入所述图数据库,将所述待存储数据中的其他数据和所述实体或关系的标识写入第二列式数据库。
另一方面,提供了一种检索数据的方法,所述方法包括:
根据检索请求确定待检索的元素类型以及检索条件,所述元素类型包括实体、关系或事件,所述检索条件包括针对实体的检索条件和/或针对事件属性的检索条件;
在所述元素类型为实体或关系的情况下,从存储系统中的图数据库中基于所述检索条件获取检索结果;
在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果。
可选地,所述事件数据库包括与不同事件类型分别对应的子数据库,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息;
所述在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果,包括:
确定待检索事件的事件类型,得到目标事件类型;
从所述事件数据库中选择和所述目标事件类型对应的目标子数据库;
从所述目标子数据库中基于所述检索条件获取所述检索结果。
可选地,所述目标事件类型为普通事件,所述检索条件包括针对目标实体的筛选条件,所述普通事件是指检索过程中关注的属性中不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的目标子数据库包括第一列式数据库和索引数据库;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述目标实体的筛选条件从所述索引数据库中获取所述待检索事件的标识;
根据所述待检索事件的标识从所述第一列式数据库中获取所述待检索事件的多个属性,得到所述检索结果。
可选地,所述目标事件类型为时序事件,所述检索条件包括针对目标实体的筛选条件和/或针对时间信息的筛选条件,所述时序事件是指检索过程中关注的属性中包括时间信息但是不包括空间信息的事件,所述事件数据库中与所述时序事件对应的目标子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述检索条件从所述时间序列数据表中获取匹配的行键;
根据匹配的行键中存储的信息确定所述待检索事件的多个属性,得到所述检索结果。
可选地,所述目标事件类型为时空事件,所述检索条件包括针对目标实体的筛选条件和/或针对时空信息的筛选条件,所述时空信息为空间信息,或者空间信息和时间信息,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的目标子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述检索条件,从所述空间属性索引表、时间属性索引表以及普通属性索引表中选择待检索的目标索引表;
基于所述检索条件从所述目标索引表中获取所述待检索事件的多个属性,得到所述检索结果。
可选地,在所述检索请求携带针对目标实体的筛选条件的情况下,所述检索条件包括针对所述目标实体的筛选条件,在所述检索请求携带包括针对目标关系的筛选条件的情况下,所述检索条件包括与所述目标关系关联的两个实体的筛选条件。
可选地,在所述目标实体为两个以上实体的情况下,所述从存储系统中的事件数据库中基于所述检索条件获取检索结果之前,还包括:
根据所述事件数据库判断是否存在与所述目标实体均关联的事件;
如果存在与所述目标实体均关联的事件,则执行从存储系统中的事件数据库中基于所述检索条件获取检索结果的操作。
另一方面,提供了一种存储数据的装置,所述装置包括:
获取模块,用于获取待存储数据,所述待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据;
写入模块,用于在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库;
所述写入模块,还用于在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入所述存储系统中的事件数据库。
可选地,所述实体数据包括与实体元数据中的定义的数据格式对应的数据,所述实体元数据中定义的数据格式包括实体的标签、实体的主键字段以及实体的多个属性的数据格式,所述实体的主键字段用于唯一标识一个实体,所述实体的标签用于指示实体的类型;
所述关系数据包括与关系元数据中的定义的数据格式对应的数据,所述关系元数据中定义的数据格式包括关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段、以及关系的多个属性的数据格式;
所述事件数据包括与事件元数据中的定义的数据格式对应的数据,所述事件元数据中定义的数据格式包括事件的标签、事件关联的实体的标签和主键字段、事件的多个属性的数据格式。
可选地,所述事件数据包括事件类型,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息,所述事件数据库包括与不同事件类型分别对应的子数据库;
所述写入模块包括:
选择单元,用于根据所述事件数据中包括的事件类型,从所述事件数据库中选择相应的子数据库;
写入单元,用于将所述事件数据写入选择的子数据库中。
可选地,所述事件类型包括普通事件,所述普通事件是指检索过程中关注的属性中均不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的子数据库包括第一列式数据库和索引数据库;
所述写入单元,用于:
根据所述事件数据确定事件标识;
将所述事件标识和所述事件数据中的事件的多个属性写入所述第一列式数据库中;
将所述事件标识、所述事件数据中与事件关联的实体的标签和主键字段、和/或所述多个属性中的检索属性写入所述索引数据库中,所述检索属性是指用于检索事件的属性;
可选地,所述事件类型包括时序事件,所述时序事件是指检索过程中关注的属性中包括时间信息但不包括空间信息的事件,所述事件数据库中与所述时序事件对应的子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述写入单元,用于:
根据所述事件数据生成行键,所述行键中的监控项指示所述事件数据中的事件标签,所述行键中的时间戳指示所述事件数据中的时间信息,所述行键中的值指示所述事件数据中统计的指标的监控结果,所述行键中的键值对指示所述事件数据中的其他属性;
将所述行键写入所述时间序列数据表。
可选地,所述事件类型包括时空事件,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述写入单元,用于:
从所述事件数据中获取与所述空间属性索引表对应的空间索引字段、与所述时间属性索引表对应的时间索引字段、以及普通属性索引表对应的普通属性索引字段中的两者或多者;
将所述事件数据写入所述时空数据库中的全量数据库中,将所述空间索引字段写入所述空间属性索引表,将所述时间索引字段写入所述时间属性索引表,将所述普通属性索引字段写入所述普通属性索引表,其中,所述时空数据库中配置有所述空间索引字段和所述事件数据之间的对应关系,所述时间索引字段和所述事件数据之间的对应关系,以及所述普通属性索引字段和所述事件数据之间的对应关系。
可选地,所述写入模块包括:
确定单元,用于根据所述待存储数据确定实体或关系的标识;
存储单元,用于将所述待存储数据中的部分数据和所述实体或关系的标识写入所述图数据库,将所述待存储数据中的其他数据和所述实体或关系的标识写入第二列式数据库。
另一方面,提供了一种检索数据的装置,所述装置包括:
确定模块,用于根据检索请求确定待检索的元素类型以及检索条件,所述元素类型包括实体、关系或事件,所述检索条件包括针对实体的检索条件和/或针对事件属性的检索条件;
检索模块,用于在所述元素类型为实体或关系的情况下,从存储系统中的图数据库中基于所述检索条件获取检索结果;
所述检索模块,还用于在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果。
可选地,所述事件数据库包括与不同事件类型分别对应的子数据库,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息;
所述检索模块包括:
确定单元,用于确定待检索事件的事件类型,得到目标事件类型;
选择单元,用于从所述事件数据库中选择和所述目标事件类型对应的目标子数据库;
检索单元,用于从所述目标子数据库中基于所述检索条件获取所述检索结果。
可选地,所述目标事件类型为普通事件,所述检索条件包括针对目标实体的筛选条件,所述普通事件是指检索过程中关注的属性中不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的目标子数据库包括第一列式数据库和索引数据库;
所述检索单元,用于:
根据所述目标实体的筛选条件从所述索引数据库中获取所述待检索事件的标识;
根据所述待检索事件的标识从所述第一列式数据库中获取所述待检索事件的多个属性,得到所述检索结果。
可选地,所述目标事件类型为时序事件,所述检索条件包括针对目标实体的筛选条件和/或针对时间信息的筛选条件,所述时序事件是指检索过程中关注的属性中包括时间信息但是不包括空间信息的事件,所述事件数据库中与所述时序事件对应的目标子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述检索单元,用于:
根据所述检索条件从所述时间序列数据表中获取匹配的行键;
根据匹配的行键中存储的信息确定所述待检索事件的多个属性,得到所述检索结果。
可选地,所述目标事件类型为时空事件,所述检索条件包括针对目标实体的筛选条件和/或针对时空信息的筛选条件,所述时空信息为空间信息,或者空间信息和时间信息,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的目标子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述检索单元,用于:
根据所述检索条件,从所述空间属性索引表、时间属性索引表以及普通属性索引表中选择待检索的目标索引表;
基于所述检索条件从所述目标索引表中获取所述待检索事件的多个属性,得到所述检索结果。
可选地,在所述检索请求携带针对目标实体的筛选条件的情况下,所述检索条件包括针对所述目标实体的筛选条件,在所述检索请求携带包括针对目标关系的筛选条件的情况下,所述检索条件包括与所述目标关系关联的两个实体的筛选条件。
可选地,所述装置还包括:
判断模块,用于根据所述事件数据库判断是否存在与所述目标实体均关联的事件;
执行模块,用于如果存在与所述目标实体均关联的事件,则执行从存储系统中的事件数据库中基于所述检索条件获取检索结果的操作。
另一方面,提供了一种服务器,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述所述的存储数据的方法、或者执行上述所述的检索数据的方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述所述的存储数据的方法、或者执行上述所述的检索数据的方法。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的存储数据的方法、或者执行上述所述的检索数据的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,先判断待存储数据类型属于实体数据、还是属于关系数据或者是属于事件数据,然后基于判断结果将不同类型的待存储数据存储到图数据库或事件数据库中。由此可知,本申请实施例提供了一种能够同时存储实体、关系以及事件的存储系统。如此,当通过本申请实施例提供的存储系统实现知识图谱时,知识图谱中能够存储除了实体和关系之外的事件,并且无需将事件拆解为实体以及和/或关系进行存储,因此知识图谱可以保留事件本身的完整性,从而使得知识图谱能够实现对现实生活准确性的描述,极大丰富了知识图谱中的信息。并且判断出数据类型为事件数据时,将事件数据存储到知识图谱的事件数据库中,因此若在两个实体之间发生了多个事件,图数据库中仍然只存储了这两个实体的实体数据和这两个实体之间的关系的关系数据,无需存储用于指示多个事件的其他关系的相关信息,因此大大减少了图数据库中的数据,从而减少了图数据库的存储空间的占用,有利于知识图谱中图数据库的查询。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种存储系统的结构示意图;
图2是本申请实施例提供的一种存储数据的方法流程图;
图3是本申请实施例提供的一种检索数据的方法的流程图;
图4是本申请实施例提供的一种存储数据的装置的结构示意图;
图5是本申请实施例提供的一种检索数据的装置的结构示意图;
图6是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例中的应用场景予以说明。
本申请实施例提供的存储数据和检索数据的方法可以应用于知识图谱中。知识图谱的描述能力非常强大,可以用来描述现实生活中存在的各种信息。该各种信息可以为诸如现实生活中存在的实体以及它们之间的关系。知识图谱将实体和关系分别显示为节点和边。此外,知识图谱的底层存储系统各有不同,本申请实施例不做限定。
图1是本申请实施例提供的一种存储系统的结构的示意图。参见图1,该存储系统100可以包括:图数据库110、第二列式数据库120和事件数据库130。
图数据库110用于存储实体和关系的相关的属性信息。基于实体和关系的相关的属性信息将实体和关系形成的网络结构。其中,图数据库110的可视化界面中,包括节点和边。一个节点代表一个实体。两个节点之间的边代表一种关系。这种存储结构能够使得在图数据库中的遍历速度快,从而使得检索高效。
第二列式数据库120用于存储实体或关系的部分属性信息。由于实体或关系的相关的属性信息中存在大量对后续检索结果的遍历过程影响不大的属性信息,因此,可以将实体或关系的这部分属性信息存储在第二列式数据库中。在图数据库110中只需存储对后续检索结果的遍历过程影响较大的属性信息。这种存储结构可以减少图数据库中的存储空间的占用,从而进一步提高后续检索的效率。
可选地,可以将实体和关系的相关的属性信息全部存储在图数据库中。这种场景下,图1所示的存储系统可以不包括第二列式数据库120。本申请实施例对此不做具体限定。
事件数据库130用于存储事件的相关的属性信息。因此,通过事件数据库130能够查询某个具体的事件的相关的属性信息,也即是该事件的全量字段。这样,该存储系统可以保留事件本身的完整性,实现对现实生活的准确性描述。
此外,为了提高后续检索数据的效率,在存储事件过程中,基于事件相关的属性信息中是否包括时间信息和空间信息,将事件类型划分为三种类型,分别为普通事件、时序事件和时空事件。关于普通事件、时序事件和时空事件的详细信息将在后续实施例中解释说明,在此先不展开说明。
基于不同的事件类型配置了不同的子数据库131。如图1所示,针对普通事件配置的子数据库131包括第一列式数据库1311和索引数据库1312。针对时序事件配置的子数据库131包括时序数据库1313。针对时空事件配置的子数据库131包括时空数据库1314。这种存储结构能够使得在事件数据库中的遍历速度快,从而使得检索高效。
可选地,事件数据库也可以不按照事件类型划分为不同的子数据库。这种场景下,将所有类型的事件均存储在同一事件数据库即可。
此外,事件通常是关于一个或多个实体之间发生的事件,所以事件数据库130和图数据库110可以通过实体关联。如此,当在事件数据库中查询到某个事件时,还可以进一步基于该事件关联的实体从图数据库中查询该实体的相关的属性信息。
图2是本申请实施例提供的一种存储数据的方法流程图。该方法应用于服务器中,该服务器上部署有图1所示的存储系统或与图1所示的存储系统有通信连接。可选地,该方法也可以应用在其他设备中。下述图2所示的实施例以应用于服务器为例进行说明。如图2所示,该存储数据的方法可以包括如下几个步骤:
步骤201:服务器获取待存储数据,该待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据。
在一种可能的实现方式中,可以从互联网的其他数据库中获取待存储数据,待存储的数据用于描述现实生活中实体、实体和实体之间的关系以及发生的事件。例如,与北京相关的数据用于描述现实生活中的实体“北京”。与同事关系相关的数据用于描述现实生活中的两个同事之间的关系。与CPU的使用率相关的数据用于描述现实生活中与CPU关联的一个事件。
在本申请实施例中,为了能够将实体、关系和事件均存储在存储系统中,因此,预先定义了表征实体、关系和事件的数据的数据格式,也即为实体元数据、关系元数据和事件元数据。其中,实体元数据定义一个实体数据对应的数据格式,关系元数据定义两个实体之间的关系数据对应的数据格式,事件元数据定义和实体关联的事件数据的数据格式。数据格式定义了实体数据、关系数据以及事件数据中分别具体包括哪些数据,以及包括的数据的数据类型等约束条件。
因此,待存储的数据可以分为以下三类:
第一类:待存储的数据是指示实体的实体数据。
实体是指具有可区别性且独立存在的某种事物。例如,人物“张三”为一个实体、地点“北京”为一个实体、电影“我和我的祖国”为一个实体。任何能够描述实体的相关数据均可以设置在实体数据中。例如,用于描述实体“张三”的相关信息“张三的籍贯、张三的学历”等等均可以作为实体“张三”的实体数据。
在一种可能的实现方式中,实体数据包括与实体元数据中的定义的数据格式对应的数据,实体元数据中定义的数据格式包括实体的标签、实体的主键字段以及实体的多个属性的数据格式,实体的主键字段用于唯一标识一个实体,实体的标签用于指示实体的类型。
上述实体的标签表示实体的类型。例如,“人物”是实体元数据中的实体的标签,“小明”是实体元数据中实体的标签“人物”对应的数据。“地点”是实体元数据中的实体的标签,“北京”是实体元数据中实体的标签“地点”对应的数据。实体的主键字段可以唯一标识一个实体。例如,“身份号码”是实体元数据中的实体的主键字段,“1426xxxxxx”是实体元数据中的实体的主键字段“身份证号”对应的数据。“省份简称”是实体元数据中的实体的主键字段,“京”是实体元数据中实体的主键字段“省份简称”对应的数据。实体的属性是用来描述实体的特征。例如,“籍贯”是实体元数据中的实体的属性,“陕西”是实体元数据中的实体的属性“籍贯”对应的数据。实体的属性一般不唯一,本申请实施例对此不做具体限定。
可选地,实体元数据还可以包括与实体相关数据对应的其他数据格式,实体元数据包括的具体内容可以由管理人员预先设置,本申请实施例对此不做限定。
第二类:待存储数据是指示关系的关系数据。
关系用于指示不同实体之间的关系。例如,关系“小明是小红的同事”用于指示小明和小红之间的关系。任何能够描述关系的相关数据均可以设置在关系数据中。例如,用于描述关系“小明是小红的同事”的相关信息“某天,小明和小红成为同事”等等均可以属于关系“小明是小红的同事”的关系数据中的数据。
在一种可能的实现方式中,关系数据包括与关系元数据中的定义的数据格式对应的数据,所述关系元数据中定义的数据格式包括关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段、以及关系的多个属性的数据格式。
上述关系的标签表示关系的类型。例如,“同事”是关系元数据中关系的标签,“小明是小红的同事”是关系元数据中的关系的标签“同事”对应的数据。关系连接的两个实体分别称为主体和客体。主体一般是指关系连接的主动方,客体一般是指关系连接的被动方。例如,在关系“小明是小红的同事”中,小明为该关系关联的主体,小红为该关系关联的客体。
此外,每个主体和客体都是一个实体,因此,前述关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段均可以参考实体数据的相关解释,此处不再论述。关系的属性是用来描述关系的特征。例如,“开始时间”是关系元数据中的关系的属性,“2018年”是关系元数据中关系的属性“开始时间”对应的数据。关系的属性不唯一,本申请实施例对此不做具体限定。
可选地,关系元数据还可以包括与关系相关数据对应的其他数据格式,关系元数据包括的具体内容可以由管理人员预先设置。
第三类:待存储数据是指示事件的事件数据。
事件是指一个或多个实体上发生的事件。例如,CPU的使用情况为一个事件、第一届人大会议召开为一个事件、张三考上大学为一个事件。任何能够描述事件的相关数据均可以设置在事件数据中。例如,用于描述事件“CPU的使用情况”的相关信息“CPU的使用率、某服务器的CPU的使用情况”等等均可以作为事件“CPU使用情况”的事件数据。
在一种可能的实现方式中,事件数据包括与事件元数据中的定义的数据格式对应的数据,所述事件元数据中定义的数据格式包括事件的标签、事件关联的实体的标签和主键字段、事件的多个属性的数据格式。
上述事件的标签表示事件的类型。例如,“电脑硬件使用情况”是事件元数据中事件的标签,“CPU的使用情况”是事件元数据中的事件的标签“电脑硬件使用情况”对应的数据。事件是关于某一实体的相关描述,因此,前述事件关联的实体的标签和主键字段均可以参考实体数据的相关解释,此处不再论述。事件的属性是用来描述事件的特征,例如,“CPU的使用率”是事件元数据中事件的属性,“80%”是事件元数据中事件的属性“CPU的使用率”对应的数据。事件的属性不唯一,本申请实施例对此不做具体限定。
可选地,由于事件本身具有发生频率不固定、事件信息不确定的特点。因此,事件数据还可以包括其他类型的与事件相关属性信息,例如,时间信息和空间信息。其中,时间信息是指随着时间变化的信息。例如,事件“CPU的使用情况”,该事件中CPU的使用情况是无法预测的,随着时间不断变化,因此,该事件的属性可以包括时间信息。又例如,对于街道交叉口的车流量这个事件,由于车流量随着时间变化。因此,街道交叉口的车流量这个事件的属性中包括车流量随着时间变化的情况。空间信息指的是随着空间变化的信息。例如,对于车的行驶路径这个事件,由于行驶路径随着空间变化。因此,车的行驶路径这个事件的属性中包括行驶路径随着空间变化的情况。此外,事件数据包括的具体内容可以由管理人员预先设置,本申请实施例不做限定。
此外,为了提高后续检索数据的效率,基于不同类型的数据配置不同的存储系统,此处的不同类型是指实体数据、关系数据以及事件数据这三种不同的类型。在一种可能的实现方式中,如图1所示,存储系统包括图数据库和事件数据库。其中,图数据库中存储实体数据和关系数据。事件数据库中存储事件数据。因此,可以根据待存储数据所属的数据的类型不同,将待存储数据存储到存储系统的不同数据库中。具体实现方式如下述步骤202至步骤204所示。需要说明的是,步骤202至步骤204之间没有先后顺序。
步骤202:在待存储数据为实体数据的情况下,将待存储数据写入存储系统中的图数据库。
由于实体数据中包括的属性不唯一且属性的数量很多,如果将实体数据中的属性都存储在图数据库中,对后续遍历图数据库进而获取检索结果的意义不大。并且容易导致检索过程比较耗时。因此,本实施例将实体数据中的部分属性存储在图数据库,而实体数据中的其他属性存储在第二列式数据库,从而减少图数据库的存储的数据,使得图数据库的规模变小,也即是使得图数据库轻量,有利于提升图数据库的遍历性能。
基于上述原因,在一种可能的实现方式中,将实体数据写入图数据库的过程可以通过以下几个步骤实现:
步骤a:根据待存储数据确定实体的标识。
在一种可能的实现方式中,基于实体数据中实体的标签、实体的主键字段以及实体的多个属性经过哈希(hash)算法生成实体的标识。本申请实施例中涉及的标识均是指用于唯一标识一个对象的符号,该标识还可以称为ID(identification,标识符)。
可选地,也可以通过其他自定义规则生成实体的标识,本申请实施例对此不做具体限定。
步骤b:将待存储数据中的部分数据和实体的标识写入图数据库,将待存储数据中的其他数据和实体的标识写入第二列式数据库。
在一种可能的实现方式中,上述待存储数据中的部分数据是指实体元数据中实体的标签对应的数据、实体的主键字段对应的数据和实体的部分属性对应的数据。需要说明的是,本申请实施例并不限定将实体数据中哪些数据写入图数据库,将实体数据中哪些数据写入第二列式数据库。在具体存储实体数据时,可以将对后续获取检索结果的遍历过程影响不大的部分数据写入第二列式数据库,对后续获取检索结果的遍历过程影响较大的部分数据写入图数据库。
例如,实体“小明”的实体数据包括:人物小明、身份证号1426xxxxxx、姓名小明、性别女、年龄26、身高160cm、体重90kg、爱好游泳等。其中,“小明”为实体标签“人物”对应的数据。“1426xxxxxx”是实体的主键字段“身份证号”对应的数据。小明、女、26、160cm、90kg、游泳等数据为实体的属性“姓名”、“年龄”、“身高”、“体重”以及“爱好”对应的数据。将待存储数据中的部分数据和实体标识写入图数据库过程中可以是指:将小明、1426xxxxxx、小明、女、实体的标识写入图数据库中,即把实体的标签、主键字段、实体的姓名和性别两个属性、以及实体的标识写入了图数据库中。将待存储数据中的26、160cm、90kg、游泳和实体的标识写入第二列式数据库中,即把实体中的其他数据以及实体的标识写入了第二列式数据库中。
下面对如何将实体数据写入图数据库和第二列式数据库进一步进行详细解释说明。
图数据库可以是Janusgraph分布式图数据库,也可以是Neo4j、Orient-DB(database,数据库),本申请实施例对此不做具体限定。
以Janusgraph分布式图数据库为例。Janusgraph是一个可扩展的图数据库,可以把包含数千亿个节点和边的图存储在存储系统上。该图数据库支持数千用户实时、并发访问存储系统。在Janusgraph数据库中,预先定义图(schema)、节点(vertex)、边(edge)。在上述将实体的标签、实体的主键字段、实体的部分属性和实体标识写入Janusgraph数据库时,便可通过Janusgraph数据库中的节点和边来表示实体的标签、实体的主键字段、实体的部分属性和实体的标识。具体地,将小明、1426xxxxxx、小明、女、实体的标识表示为节点,人物和小明之间用边连接,表示小明的类型为人物。小明和1426xxxxxx之间用边连接,表示小明的身份证号是1426xxxxxx。小明和女之间用边连接,表示小明的性别是女生。实体的标识与小明之间用边连接,表示小明的唯一标识是实体标识。其中,针对小明的实体的标识是基于小明、1426xxxxxx、小明、女等等通过哈希算法确定的。
第二列式数据库是指以列相关存储架构进行存储的列式数据库。列式数据库适用于批量数据处理和实时查询,可以不需要定义列的数据,只需定义行键,一个行键对应一个列族。在将数据写入和删除过程中,不需要修改列的数据,只需对行键中的列族进行修改,因此,对数据的修改灵活。
常用的列式数据库为Hbase(hadoop database,一种开放式的数据库)。需要说明的是,第二列式数据库仅仅是对存储实体数据的列式数据库一种命名而已,目的在于和后续事件数据库中的第一列式数据库进行区分。第二列式数据库和第一列式数据库两者相互独立。
Hbase中预先定义有行键、列族和列名。一个列族中包括多个列,本申请实例中可以预先定义一个列族,也可以定义多个列族。在一种可能的实现方式中,将实体标识和实体数据中的各个属性写入Hbase过程具体是指:将实体标识作为Hbase的行键,将实体的各个属性的字段名作为Hbase的列族中某一列的列名,每一列用于存储实体的一个属性。使用一定序列化规则将实体的各个属性对应存储。例如,将实体标识作为行键,将年龄、身高、体重、爱好作为列名。将26存储在年龄这一列中。将160cm存储在身高这一列中。将90kg存储在体重这一列中。将游泳存储在爱好这一列中。
需要说明的是,上述步骤202仅仅是将实体数据写入图数据库的一种可能的实现方式。可选地,也可以将实体数据全部存储在图数据库中,在此不再详细说明。
步骤203:在待存储数据为关系数据的情况下,将待存储数据写入存储系统中的图数据库。
由于关系数据中包括的属性不唯一且属性的数量很多,如果将关系数据中的属性都存储在图数据库中,对后续遍历图数据库进而获取检索结果的意义不大。并且容易导致检索过程比较耗时。因此,本实施例将关系数据中的部分属性存储在图数据库,而关系数据中的其他属性存储在第二列式数据库,从而减少图数据库的存储的数据,使得图数据库的规模变小,也即是使得图数据库轻量,有利于提升图数据库的遍历性能。
基于上述原因,在一种可能的实现方式中,将关系数据写入图数据库的过程可以通过以下几个步骤实现::
步骤a:根据待存储数据确定关系的标识。
在一种可能的实体方式中,基于关系数据中关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段以及关系的多个属性等经过哈希(hash)算法生成关系的标识。
可选地,也可以通过其他自定义规则生成关系的标识,本申请实施例对此不做具体限定。
步骤b:将待存储数据中的部分数据和关系的标识写入图数据库,将待存储数据中的其他数据和关系的标识写入第二列式数据库。
在一种可能的实现方式中,上述待存储数据中的部分数据是指关系元数据中关系的标签对应的数据、关系关联的主体的标签和主键字段对应的数据、关系关联的客体的标签和主键字段对应的数据以及关系的部分属性对应的数据。需要说明的是,本申请实施例并不限定将关系数据中哪些数据写入图数据库,将关系数据中哪些数据写入第二列式数据库。在具体存储关系数据时,可以将对后续获取检索结果的遍历过程影响不大的部分数据写入第二列式数据库,对后续获取检索结果的遍历过程影响较大的部分数据写入图数据库。
例如,关系“小明是小红的同事”的关系数据包括:同事小明是小红的同事、人物小明、身份证号1426xxxxxx、人物小红、身份证号1436xxxxxx、开始时间2018、公司A、地点陕西。其中,“小明是小红的同事”为关系标签“同事”对应的数据。“小明”是关系关联的主体的标签“人物”对应的数据。“1426xxxxxx”是关系关联的主体的主键字段“身份证号”对应的数据。“小红”是关系关联的客体的标签“人物”对应的数据。“1436xxxxxxx”是关系关联的客体的主键字段“身份证号”对应的数据。2018、A、陕西是关系属性“开始时间”、“公司”、“地点”对应的数据。将待存储数据的部分数据和关系标识写入图数据库过程中可以是指:将小明是小红的同事、小明、1426xxxxxx、小红、1436xxxxxx、2018和该关系的标识写入图数据库中,即把关系的标签、关系关联的客体的标签和主键字段、关系关联的主体的标签和主键字段、关系的开始时间的属性、以及关系的标识写入了图数据库中。将待存储数据中的A、陕西和关系的标识写入第二列式数据库中,即把关系中的其他数据以及关系的标识写入了第二列式数据库中。
此外,关于如何将关系数据写入图数据库和第二列式数据库,可以参考前述将实体数据写入图数据库和第二列式数据库的具体实现方式,在此不再重复说明。
需要说明的是,上述步骤203仅仅是将关系数据写入图数据库的一种可能的实现方式。可选地,也可以将关系数据全部存储在图数据库中。
步骤204:在待存储数据为事件数据的情况下,将待存储数据写入存储系统中的事件数据库。
基于图1所示存储系统可知,为了提高后续检索效率,实现事件数据库中不同子数据库的强大分析功能,基于检索过程中关注的事件属性是否包括时间信息或空间信息,可以将事件类型划分为三种类型,分别为普通事件、时序事件和时空事件。检索过程中关注的事件属性是指用户后续需要进行统计分析的事件属性,这些事件属性通常可以包括时间信息和/或空间信息。并且根据不同的事件类型将事件数据写入事件数据库的不同的子数据库中。因此,在一种可能的实现方式中,上述步骤204的实现过程可以为:确定事件数据的事件类型,从事件数据库中选择相应的子数据库进行存储。
具体地,上述从事件数据库中选择与事件数据包括的事件类型相应的子数据库进行存储可以分以下三种情况分别进行解释说明。
(1)事件类型为普通事件。
事件的数据包含有事件的多个属性,当检索过程中关注的事件的属性中均不包括时间信息和空间信息时,将此事件确定为普通事件。如图1所示,将普通事件存储在第一列式数据库和索引数据库中。索引数据库相当于事件的目录,用于检索事件的标识。第一列式数据库存储事件的详细信息。这种情况下,将事件数据写入第一列式数据库和索引数据库可以通过以下几个步骤实现:
步骤a:根据事件数据确定事件标识。
在一种可能的实现方式中,基于事件数据中事件的标签、事件关联的实体的标签和主键字段、事件的多个属性等经过哈希(hash)算法生成事件的标识。
可选地,也可以通过其他自定义规则生成事件的标识,本申请实施例对此不做具体限定。
步骤b:将事件标识和事件数据中的事件的多个属性写入第一列式数据库中。
第一列式数据库是指以列相关存储架构进行存储的列式数据库。常用的列式数据库为Hbase。
关于Hbase的具体结构在前述已经说明,在此不再赘述。在一种可能的实现方式中,将事件标识和事件数据中的事件的多个属性写入Hbase过程具体是指:将事件标识作为Hbase的行键,将事件的多个属性的字段名作为Hbase中列族中某一列的列名,每一列用于存储事件的一个属性,使用一定序列化规则将事件的多个属性对应存储。例如,对于事件“小明考上大学”,将事件的标识作为行键,将考上时间、大学地点、专业作为列名。将2018年存储在考上时间这一列中。将北京存储在大学地点这一列中。将物理专业存储在专业这一列中。
步骤c:将事件标识、事件数据中与事件关联的实体的标签和主键字段、和/或多个属性中的检索属性写入索引数据库中,检索属性是指用于检索事件的属性。
上述将事件标识、事件数据中与事件关联的实体的标签和主键字段、和/或多个属性中的检索属性写入索引数据库中包括两种情况。一种是将事件标识、事件数据中与事件关联的实体的标签和主键字段写入索引数据库中。另一种是将事件标识、事件数据中与事件关联的实体的标签和主键字段、以及多个属性中的检索属性写入索引数据库。
在索引数据库中需要将事件标识、事件关联的实体的标签和主键字段、事件的多个属性中的检索属性存储在一个目录下,以便后续检索事件标识。例如,事件“小明考上大学”。将事件标识、人物和小明、北京大学存储在索引数据库的同一个目录下。
此外,检索属性是指对后续遍历过程影响较大的事件多个属性中的一些属性。例如,对于事件“小明考上大学”,大学名字“北京大学”为事件“小明考上大学”的检索属性。
可选地,当事件关联的实体不只一个时,将每个实体之间使用固定的分隔符分隔。使用一个分隔符表示上一个实体存储完成,以此来区分不同的实体。此外,同一实体的不同属性之间也可以使用其他类型的字符分隔开,以区分不同属性。
索引数据库可以为ElasticSearch数据库,本申请实施例不做具体限定。
需要说明的是,上述情况(1)仅仅是将普通事件存储在事件数据库的子数据库的一种可能的实现方式。可选地,也可以将事件关联的实体的标签和主键字段存储在第一列式数据库中,然后将事件的其他信息通过二级索引的方式也存储在第一列式数据库中,此时不需要索引数据库便可以存储普通事件的全部信息。
(2)事件类型为时序事件。
事件的数据包含有事件的多个属性,当事件的属性中包括时间信息但不包括空间信息时,将此事件确定为时序事件。基于时序事件的特点,选择存储时间信息的数据库进行存储。如图1所示,将时序事件存储在时序数据库,时序数据库中包括时间序列数据表。
为了后续便于说明,在此先对时序数据库的结构进行简单说明。
时序数据库是针对具有时间信息的数据提供的存储数据库。时序数据库基于时间信息提供强大的分析能力。时序数据库可以是Open-TSDB(time series database,时间序列数据库),OpenTSDB的底层通过Hbase实现,本申请实施例不做具体限定。下面以OpenTSDB为例解释说明下时序数据库。
OpenTSDB预先定义有监控项(metric)、时间戳(timestamp)、用于指示监控项的监控结果的值(value)、键值对(K1-V1等)和行键(data point)。其中,行键由监控项的监控结果、时间戳、和键值对组成。时间序列数据表用于存储多个行键。
基于上述时序数据库的结构,将事件数据写入时序数据库可以通过以下几个步骤实现:
步骤a:根据事件数据生成行键,行键中的监控项指示事件数据中的事件标签,行键中的时间戳指示事件数据中的时间信息,行键中的值指示事件数据中统计的指标的监控结果,行键中的键值对指示事件数据中的其他属性。
在一种可能的实现方式中,行键可以表示为metric|timestamp|value|k1|v1|k2|v1|。metric是指事件数据的事件标签。timestamp是指事件数据中的时间信息。value是指事件数据中统计的指标的监控结果。k1|v1|k2|v1是指事件数据中的其他属性。其中,监控结果随着时间不断变化。因此,OpenTSDB根据时间戳从大到小或从小到大的规则,可以存储多个行键,这多个行键用于指示一个随着时间变化的事件。
例如,对于CPU的使用率这个事件,该事件的事件数据包括:2018.9.14,A服务器CPU使用率为50%。2018.9.15,A服务器CPU使用率为56%。事件的标签CPU的使用率作为监控项,事件时间2018.9.14和2018.9.15作为两个行键中的时间戳,事件监控结果50%和56%作为两个行键中的值,事件的其他属性A服务器为键值对。即“CPU的使用率|2018.9.14|50%|A服务器|”为一个行键,“CPU的使用率|2018.9.15|56%|A服务器|”为另一个行键。
步骤b:将行键写入时间序列数据表。
OpenTSDB包括两个表,映射表(tsdb-uid)和时间序列数据表(tsde)。将行键写入时间序列数据表的过程具体是指:根据该映射表,将行键中的监控项、时间戳、值、键值对映射成字节。在时间序列数据表中,预先定义有行键、列族和列名。将时间戳、监控结果和键值对序列化的规则存储在每一列中。例如,将“CPU的使用率|2018.9.14|50%|A服务器|”映射成字节后存储为时间序列表中,将2018.9.14存储在时间戳这一列中。50%存储在监控结果这一列中。A服务器存储在键值对这一列中。
(3)事件类型为时空事件。
事件的数据包含有事件的多个属性,当事件的属性中包括空间信息时,比如,事件的属性包括空间信息,或者事件的属性包括空间信息和时间信息时,此事件确定为时空事件。基于时空事件的特点,选择能够存储空间信息的数据库进行存储。如图1所示,将时空事件存储在时空数据库,时空数据库中包括空间属性索引表、时间属性索引表以及普通属性索引表。关于空间属性索引表、时间属性索引表以及普通属性索引表将在后续解释说明,在此先不展开阐述。
因此,将事件数据写入时空数据库可以通过以下几个步骤实现:
步骤a:从事件数据中获取与空间属性索引表对应的空间索引字段、与时间属性索引表对应的时间索引字段、以及普通属性索引表对应的普通属性索引字段中的两者或多者。
时空数据库是针对具有时间信息和空间信息的数据提供的存储数据库。时空数据库基于时间信息和空间信息提供强大的分析能力。时空数据库可以是Geomesa数据库。Geomesa数据库的底层可以通过Hbase实现,本申请实施例不做具体限定。下面以Geomesa数据库为例解释说明下时空数据库。
Geomesa数据库中,创建了三个不同的索引表,分别是空间属性索引表、时间属性索引表和普通属性索引表。空间属性索引表中存储的是事件数据中空间索引字段。其中,事件数据中的空间索引字段是指和地理空间位置相关的信息。空间索引字段的数据类型包括点(point)、线段(linestring)、面(polygon)。例如,事件“9:14,汽车行驶在公园东边,9:45,汽车行驶在公园的西边”。其中,公园的东边、公园的西边为事件数据中的空间索引字段,数据类型为面。在空间属性索引表中,Geomesa数据库根据空间信息的经度维度按照一定规则降维,生成多个的行键。这多个行键用于指示一个随着空间变化的事件。
时间属性索引表中存储的是事件数据中时间索引字段。其中,事件数据中的时间索引字段是指和时间相关的信息。例如,9:14,汽车行驶在公园东边,9:45,汽车行驶在公园的西边。其中,9:14和9:45为事件数据中的时间索引字段。在时间属性索引表中,Geomesa根据时间信息从大到小或从小到大的规则,生成多个行键,这多个行键用于指示一个随着时间变化的事件
普通属性索引表中存储的是事件数据中的普通属性索引字段。例如,9:14,汽车行驶在公园东边,9:45,汽车行驶在公园的西边,其中,公园为事件数据中的普通属性索引字段。
步骤b:将事件数据写入时空数据库中的全量数据库中,将空间索引字段写入空间属性索引表,将时间索引字段写入时间属性索引表,将普通属性索引字段写入普通属性索引表。其中,时空数据库中配置有空间索引字段和事件数据之间的对应关系,时间索引字段和事件数据之间的对应关系,以及普通属性索引字段和事件数据之间的对应关系。
需要说明的是,步骤b中写入数据的过程是基于步骤a中的获取结果的。也即是,如果步骤a中获取的空间索引字段和普通属性索引字段,则将空间索引字段写入空间属性索引表,将普通属性索引字段写入所述普通属性索引表。如果步骤a中获取的空间索引字段和时间属性索引字段,则将空间索引字段写入空间属性索引表,将时间索引字段写入时间属性索引表。如果步骤a中获取的空间索引字段、时间属性索引字段和普通属性索引字段,则将空间索引字段写入空间属性索引表,将时间索引字段写入时间属性索引表,将普通属性索引字段写入所述普通属性索引表。
此外,时空数据库中配置有空间索引字段和事件数据之间的对应关系。在一种可能的实现方式中,将事件数据通过哈希(hash)算法生成事件标识,将空间索引字段和事件数据中的事件标识存储在一个目录下,以便后续基于空间索引字段来检索得到事件标识。然后将全量数据库中的事件标识和事件数据之间的对应关系也存储在一个目录下,这样后续便可基于事件标识得到具体的事件数据。时空数据库中还配置有时间索引字段和事件数据之间的对应关系、以及普通属性索引字段和事件数据之间的对应关系。具体实现方式可以参考前述空间索引字段和事件数据之间的对应关系的实现方式,在此不再赘述。
Hbase作为Geomesa的全量数据库,定义了行键、坐标值(coordinates)、几何对象所占空间的部分(interior)、几何对象的边界(boudary)、几何对象未占有的空间(exterior)、能够覆盖几何对象的最小矩形(MBR)等。行键指示事件的标识,坐标值指示实体的位置,几何对象所占空间的部分指示实体的运动的区域,几何对象的边界指示实体运动区域的边界,几何对象未占有的空间为实体运动区域之外的区域,能够覆盖几何对象的最小矩形为实体的大小。通过坐标值(coordinates)、几何对象所占空间的部分(interior)、几何对象的边界(boudary)、几何对象未占有的空间(exterior)、能够覆盖几何对象的最小矩形(MBR)等信息来存储事件数据。例如,汽车在某花园的行驶路径,在Geometry中选择类型为多边形,将汽车的大小写入MBR、用坐标值记录汽车的行驶路径。
在本申请实施例中,先判断待存储数据类型属于实体数据、还是属于关系数据或者是属于事件数据,然后基于判断结果将不同类型的待存储数据存储到图数据库或事件数据库中。由此可知,本申请实施例提供了一种能够同时存储实体、关系以及事件的存储系统。如此,当通过本申请实施例提供的存储系统实现知识图谱时,知识图谱中能够存储除了实体和关系之外的事件,并且无需将事件拆解为实体以及和/或关系进行存储,因此知识图谱可以保留事件本身的完整性,从而使得知识图谱能够实现对现实生活准确性的描述,极大丰富了知识图谱中的信息。并且判断出数据类型为事件数据时,将事件的数据存储到知识图谱的事件数据库中,因此若在两个实体之间发生了多个事件,图数据库中仍然只存储了这两个实体的实体数据和这两个实体之间的关系的关系数据,无需存储用于指示多个事件的其他关系的相关信息,因此大大减少了图数据库中的数据,从而减少了图数据库的存储空间的占用,有利于知识图谱中图数据库的查询。
在本申请实施例中,上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。
图3是本申请实施例提供的一种检索数据的方法流程图。该方法应用与服务器中,该服务器上部署有图1所示的存储系统或与图1所示的存储系统有通信连接。如图3所示,该检索数据的方法可以包括如下几个步骤:
步骤301:服务器根据检索请求确定待检索的元素类型以及检索条件,该元素类型包括实体、关系或事件。检索条件包括针对实体的检索条件和/或针对事件属性的检索条件。
基于图2所示的实施例可知,存储系统中存储的数据可以为指示实体的实体数据,也可以为指示关系的关系数据,也可以为指示事件的事件数据,且不同类型的数据存储在不同的数据库中,因此,在本申请实施例中,能够从存储系统中检索一个实体、或一个关系或一个事件的相关信息,也即是检索出不同的元素类型的相关信息。
比如,检索请求中携带“张三”,则可以确定待检索的元素类型为一个实体该检索请求用于检索出实体“张三”的相关信息。
另外,检索请求可以分为三类。第一类检索请求为针对实体进行检索。例如,检索中国、小明、北京大学、CPU等。第二类检索请求为针对事件属性进行检索。例如,检索高峰期、某个时间、某个地点等。第三类检索请求为针对关系的属性进行检索。
由于事件以及关系的检索通常是针对某个实体的事件进行检索,或者是针对某个实体的关系进行检索,因此,基于检索请求得到的检索条件通常包括针对实体的检索条件和/或针对事件属性的检索条件。
在一种可能的实现方式中,在检索请求携带针对目标实体的筛选条件的情况下,检索条件包括针对目标实体的筛选条件。该目标实体可以是与事件关联的实体,也可以是独立于事件的一个实体。在检索请求携带包括针对目标关系的筛选条件的情况下,检索条件包括与目标关系关联的两个实体的筛选条件。
在本申请实施例中,由于不同的元素类型的相关信息存储在不同的存储系统中,因此,可以根据待检索数据所述的元素的类型不同,在不同的存储数据库中进行检索。具体实现方式如下述步骤302至步骤304所示。需要说明的是,步骤302至步骤304之间没有先后顺序。
步骤302:在元素类型为实体的情况下,从存储系统中的图数据库中基于检索条件获取检索结果。
在一种可能的实现方式中,实体数据存储在图数据库和第二列式数据库中,存储系统包括图数据库和第二列式数据库。因此,在本申请实施例中,当元素类型为实体的情况下,在图数据库和第二列式数据库中进行检索。具体检索过程可以通过以下几个步骤实现:
步骤a:根据检索条件确定实体的标识。
当检索条件是针对实体进行检索时,根据检索条件中实体的信息,在图数据库Janusgraph中可以检索到实体的实体的标识以及实体的其他相关信息。例如,检索条件为:小明,女。则在图数据库中返回检索结果为人物、小明、女、26、实体的标识1。
在从图数据库中检索出实体的标识以及实体的其他相关信息的情况下,如果该其他相关信息即为用户所需的检索结果,此时,则无需执行下述步骤b。可选地,如果用户还需要进一步获取该实体更多的相关信息,则可以通过下述步骤b在第二列式数据库中继续检索。
步骤b:根据实体的标识确定实体的其他属性。
在第二列式数据库中,根据实体标识和需要查找的属性字段名,可以检索出和实体相关的其他信息。例如,根据实体标识1和身高,在第二列式数据库中返回160cm。
可选地,当实体的数据全部存储在图数据库中时,当元素类型为实体的情况下,只需在图数据库进行检索。
步骤303:在元素类型为关系的情况下,从存储系统中的图数据库中基于检索条件获取检索结果。
在一种可能的实现方式中,关系数据存储在图数据库和第二列式数据库中时,存储系统为图数据库和第二列式数据库。因此,在本申请实施例中,当元素类型为关系的情况下,在图数据库和第二列式数据库中进行检索。具体检索过程可以通过以下几个步骤实现:
步骤a:根据检索数据确定关系的标识。
当检索条件是针对关系进行检索时,根据检索条件中关系的信息,在图数据库Janusgraph中检索到关系标识和关系的其他相关信息。例如,检索条件为:中国、北京、首都。则在图数据库中返回检索结果为1949年,北京成为中国的首都和关系标识2。
在从图数据库中检索出关系的标识以及关系的其他相关信息的情况下,如果该其他相关信息即为用户所需的检索结果,此时,则无需执行下述步骤b。可选地,如果用户还需要进一步获取该关系更多的相关信息,则可以通过下述步骤b在第二列式数据库中继续检索。
步骤b:根据关系的标识确定关系的其他属性。
在第二列式数据库中,根据关系标识和需要查找的属性字段名,可以检索出和关系相关的其他信息。例如,根据关系标识2和会议,在第二列式数据库中返回中国人民政治协商会议第一届全体会议。
可选地,当关系的数据全部存储在图数据库中时,当元素类型为关系的情况下,只需在图数据库进行检索。
步骤304:在元素类型为事件的情况下,从存储系统中的事件数据库中基于检索条件获取检索结果。
基于事件的类型,可知,事件类型分为三种,分别为普通事件、时序事件和时空事件。由于在事件数据库中,不同的事件类型配置不同的子数据库。因此,在一种可能的实现方式中,上述步骤304的实现过程可以为:确定待检索事件的事件类型,得到目标事件类型,从事件数据库中选择和目标事件类型对应的目标子数据库,从目标子数据库中基于检索条件获取检索结果。
检索条件包括针对目标实体的筛选条件和/或针对事件属性的筛选条件。当检索条件中的目标实体有两个或两个以上,可以先在元数据中判断检索条件中的实体之间是否存在定义的事件,若存在则开放事件检索分析的功能,与单个实体检索事件的方法一样。为了方便描述,本申请实施例仅以目标实体有1个为例进行示意性说明,并不对本申请构成限定。
具体地,上述基于不同的事件类型选择相应的子数据库进行检索可以分以下三种情况分别进行解释说明。
(1)目标事件类型为普通事件。
根据不同的检索条件可以区分不同的事件类型。当检索条件中包括对目标实体的筛选条件时,若检索条件中不包括时间信息和空间信息时,确定待检索的目标事件的目标事件类型为普通事件,例如,检索条件为“小明”,该检索条件不包括时间信息和空间信息,所以服务器确定待检索的事件为普通事件。事件数据库中与普通事件对应的目标子数据库包括第一列式数据库和索引数据库。这种情况下,从目标子数据库中基于检索条件获取检索结果可以通过以下几个步骤实现:
步骤a:根据目标实体的筛选条件从索引数据库中获取待检索事件的标识。
目标实体的筛选条件可以实体的标签和主键字段。在索引数据库中根据目标实体的标签和主键字段查找到对应的事件的标识。例如,检索条件为人物-小明,索引数据库ElasticSearch根据实体的标签和实体的主键字段返回该事件的标识。
步骤b:根据待检索事件的标识从第一列式数据库中获取待检索事件的多个属性,得到检索结果。
事件的标识为第一列式数据库中的行键,根据Hbase的行键可以查找到事件的多个属性。根据属性的字段名在Hbase中查找到对应的属性。例如,在索引数据中查找到的事件标识,作为Hbase中的行键,查找到对应的事件后,输入需要查找的属性字段名,Hbase返回该属性字段名这一列中的属性值。
需要说明的是,上述情况(1)仅仅是检索普通事件的一种可能的实现方式。可选地,当普通事件的相关信息通过二级索引的方式存储在第一列式数据库时,也可以直接通过第一列式数据库检索普通事件的相关信息,无需先从索引数据库中获取待检索事件的标识。
(2)目标事件类型为时序事件。
根据不同的检索条件可以区分不同的事件类型,当检索条件包括针对目标实体的筛选条件和/或针对时间信息的筛选条件时,确定目标事件类型为时序事件。例如,检索条件为“2018.9.14和2018.9.15期间服务器A的CPU用率”。检索条件中包括针对时间信息的筛选条件,所以服务器确定待检索的事件为时序事件。事件数据库中与时序事件对应的目标子数据库为时序数据库,时序数据库中包括时间序列数据表。这种情况下,从目标子数据库中基于检索条件获取检索结果可以通过以下几个步骤实现:
步骤a:根据检索条件从时间序列数据表中获取匹配的行键。
检索条件可以为目标实体的主键字段和事件的时间信息。根据目标实体的主键字段和事件的时间信息,先在映射表中查找到该目标实体的主键字段和事件的时间信息对应的映射字节。然后在时间序列数据表中获取包括该映射字节的行键,即为匹配的行键。例如,检索条件为2018.9.14和2018.9.15CPU使用率的变化,时序数据库OpenTSDB根据目标实体的主键字段返回时间序列数据表匹配的行键。
步骤b:根据匹配的行键中存储的信息确定待检索事件的多个属性,得到检索结果。
根据匹配的行键,在时序数据库OpenTSDB中的映射表中找到与行键中的字节对应的属性,从而检索到多个属性。
(3)目标事件类型为时空事件。
根据不同的检索条件可以区分不同的事件类型,当检索条件包括针对目标实体的筛选条件和/或针对时空信息的筛选条件时,时空信息为空间信息,或者空间信息和时间信息,确定目标事件类型为时空事件。例如,检索条件为“汽车的行驶路径”。检索条件中包括针对空间信息的筛选条件,所以服务器确定待检索的事件为时空事件。事件数据库中与时空事件对应的目标子数据库为时空数据库,时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表。这种情况下,从目标子数据库中基于检索条件获取检索结果可以通过以下几个步骤实现:
步骤a:根据检索条件,从空间属性索引表、时间属性索引表以及普通属性索引表中选择待检索的目标索引表。
检索条件可以为目标实体的主键字段和事件的属性。根据目标实体的主键字段和事件的属性,在时空数据库根据检索条件在对应的目标索引表中检索。当检索条件中不包括时间信息和空间信息时,选择普通属性索引表作为目标索引表。当检索条件中包括时间信息但不包括空间信息时,选择时间属性索引表作为目标索引表。当检索条件中包括空间信息,选择空间属性索引表作为目标索引表。当检索条件中包括时间信息和空间信息时,选择时间属性索引表和空间属性索引表作为目标索引表。当检索条件中包括时间信息和空间信息、以及其他信息时,选择时间属性索引表和空间属性索引表、以及普通属性索引表作为目标索引表。
步骤b:基于检索条件从目标索引表中获取待检索事件的多个属性,得到检索结果。
在一种可能的实现方式中,目标索引表根据检索条件返回事件的标识,Hbase根据事件标识返回事件的多个属性。例如,当检索条件为“汽车在某花园的行驶路径”,空间属性索引表根据汽车、花园、行驶路径返回汽车在某花园的行驶路径的事件标识,Hbase根据事件标识,查找到Hbase中对应的行键,根据行键返回事件位置信息、目标实体的大小等多个属性。
此外,在存储系统的事件数据库中进行检索时,基于不同的事件类型用户的需求不同。
比如,针对普通事件进行检索时,索引数据库和第一列式数据库基于检索条件将检索出事件的相关信息返回给用户,完成检索。
比如,针对时序事件进行检索时,如果检索条件中要求对时序事件进行统计分析,则时序数据库基于该时间信息,将该时间信息划分为同等间隔的时间字段。基于该时间字段进行统计分析,得出每个时间字段的统计指标和分析结果,将该分析结果返回给用户,完成检索。例如,检索条件为“分析2018年10月的股票的走势”,将10月划分为31天,统计每天的股票信息进行分析,将分析结果返回给用户。
可选地,如果检索条件中没有要求对时序事件进行统计分析,则时序数据库基于检索条件将检索到的事件的相关信息返回给用户即可,无需对时序事件的时间信息进行统计分析。
又比如,针对时空事件进行检索时,如果检索条件中要求对时空事件进行空间信息分析,则时空数据库基于检索条件将分析的结果返回给用户,完成检索。这种情况下,还可以结合可视化界面对统计的空间信息进行地图轨迹展示,极大丰富知识图谱的分析功能。如果检索条件中要求对时空事件进行空间信息和时间信息进行分析,则时空数据库基于检索条件将分析的结果返回给用户,完成检索。
可选地,如果检索条件中没有要求对时空事件进行空间信息和时间信息进行分析,则时空数据库基于检索条件将检索到的事件的相关信息返回给用户即可,无需对时空事件的空间信息和时间信息进行分析。
在本申请实施例中,先根据检索请求确定待检索的元素类型属于实体元素、还是属于关系元素或者是属于事件元素。基于不同的元素类型选择图数据库或事件数据库中检索,在图数据库或事件数据库中再根据检索条件获取检索结果。由此可知,本申请实施例提供了一种能够同时检索实体、关系以及事件的存储系统。如此,当通过本申请实施例提供的存储系统实现知识图谱时,知识图谱中能够检索除了实体和关系之外的事件,并且检索事件时,是在事件数据库中检索。由于事件数据库存储了完整的事件,因此知识图谱可以检索到比较完整的事件,从而使得知识图谱能够实现对现实生活准确性的描述,极大丰富了知识图谱中的信息。另外,在知识图谱检索数据的过程中,元素类型为事件时则在事件数据库中进行检索。因此若在两个实体之间发生了多个事件,检索的多个事件是在事件数据库中检索,无需在图数据库中检索。只有元素类型为实体或关系时则在图数据库中进行检索。因此,大大减少了在一个数据库图数据库中检索的压力,从而有利于知识图谱中图数据库的检索。
图4是本申请实施例提供的一种存储数据的装置的结构示意图。如图4所示,该存储数据的装置400可以包括:
获取模块401,用于获取待存储数据,待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据;
写入模块402,用于在待存储数据为实体数据或关系数据的情况下,将待存储数据写入存储系统中的图数据库;
写入模块402,还用于在待存储数据为事件数据的情况下,将待存储数据写入存储系统中的事件数据库。
可选地,实体数据包括与实体元数据中的定义的数据格式对应的数据,所述实体元数据中定义的数据格式包括实体的标签、实体的主键字段以及实体的多个属性的数据格式,实体的主键字段用于唯一标识一个实体,实体的标签用于指示实体的类型;
关系数据包括与关系元数据中的定义的数据格式对应的数据,所述关系元数据中定义的数据格式包括关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段、以及关系的多个属性的数据格式;
事件数据包括与事件元数据中的定义的数据格式对应的数据,所述事件元数据中定义的数据格式包括事件的标签、事件关联的实体的标签和主键字段、事件的多个属性的数据格式。
可选地,事件数据包括事件类型,事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息,事件数据库包括与不同事件类型分别对应的子数据库;
写入模块402包括:
选择单元,用于根据事件数据中包括的事件类型,从事件数据库中选择相应的子数据库;
写入单元,用于将事件数据写入选择的子数据库中。
可选地,事件类型包括普通事件,普通事件是指检索过程中关注的属性中均不包括时间信息和空间信息的事件,事件数据库中与普通事件对应的子数据库包括第一列式数据库和索引数据库;
写入单元,用于:
根据事件数据确定事件标识;
将事件标识和事件数据中的事件的多个属性写入第一列式数据库中;
将事件标识、事件数据中与事件关联的实体的标签和主键字段、和/或多个属性中的检索属性写入索引数据库中,检索属性是指用于检索事件的属性;
可选地,事件类型包括时序事件,时序事件是指检索过程中关注的属性中包括时间信息但不包括空间信息的事件,事件数据库中与时序事件对应的子数据库包括时序数据库,时序数据库中包括时间序列数据表;
写入单元,用于:
根据事件数据生成行键,行键中的监控项指示事件数据中的事件标签,行键中的时间戳指示事件数据中的时间信息,行键中的值指示事件数据中统计的指标的监控结果,行键中的键值对指示事件数据中的其他属性;
将行键写入时间序列数据表。
可选地,事件类型包括时空事件,时空事件是指检索过程中关注的属性中包括空间信息的事件,事件数据库中与时空事件对应的子数据库包括时空数据库,时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
写入单元,用于:
从事件数据中获取与空间属性索引表对应的空间索引字段、与时间属性索引表对应的时间索引字段、以及普通属性索引表对应的普通属性索引字段中的两者或多者;
将事件数据写入时空数据库中的全量数据库中,将空间索引字段写入空间属性索引表,将时间索引字段写入时间属性索引表,将普通属性索引字段写入普通属性索引表,其中,时空数据库中配置有空间索引字段和事件数据之间的对应关系,时间索引字段和事件数据之间的对应关系,以及普通属性索引字段和事件数据之间的对应关系。
可选地,写入模块402包括:
确定单元,用于根据待存储数据确定实体或关系的标识;
存储单元,用于将待存储数据中的部分数据和实体或关系的标识写入图数据库,将待存储数据中的其他数据和实体或关系的标识写入第二列式数据库。
在本申请实施例中,先判断待存储数据类型属于实体数据、还是属于关系数据或者是属于事件数据,然后基于判断结果将不同类型的待存储数据存储到图数据库或事件数据库中。由此可知,本申请实施例提供了一种能够同时存储实体、关系以及事件的存储系统。如此,当通过本申请实施例提供的存储系统实现知识图谱时,知识图谱中能够存储除了实体和关系之外的事件,并且无需将事件拆解为实体以及和/或关系进行存储,因此知识图谱可以保留事件本身的完整性,从而使得知识图谱能够实现对现实生活准确性的描述,极大丰富了知识图谱中的信息。并且判断出数据类型为事件数据时,将事件的数据存储到知识图谱的事件数据库中,因此若在两个实体之间发生了多个事件,图数据库中仍然只存储了这两个实体的实体数据和这两个实体之间的关系的关系数据,无需存储用于指示多个事件的其他关系的相关信息,因此大大减少了图数据库中的数据,从而减少了图数据库的存储空间的占用,有利于知识图谱中图数据库的查询。
需要说明的是:上述实施例提供的存储数据的装置在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储数据的装置与存储数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种检索数据的装置的结构示意图。如图5所示,该检索数据的装置500可以包括:
确定模块501,用于根据检索请求确定待检索的元素类型以及检索条件,元素类型包括实体、关系或事件,检索条件包括针对实体的检索条件和/或针对事件属性的检索条件;
检索模块502,用于在元素类型为实体或关系的情况下,从存储系统中的图数据库中基于检索条件获取检索结果;
该检索模块502,还用于在元素类型为事件的情况下,从存储系统中的事件数据库中基于检索条件获取检索结果。
可选地,事件数据库包括与不同事件类型分别对应的子数据库,事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息;
检索模块502包括:
确定单元,用于确定待检索事件的事件类型,得到目标事件类型;
选择单元,用于从事件数据库中选择和目标事件类型对应的目标子数据库;
检索单元,用于从目标子数据库中基于检索条件获取检索结果。
可选地,目标事件类型为普通事件,检索条件包括针对目标实体的筛选条件,普通事件是指检索过程中关注的属性中不包括时间信息和空间信息的事件,事件数据库中与普通事件对应的目标子数据库包括第一列式数据库和索引数据库;
检索单元,用于:
根据目标实体的筛选条件从索引数据库中获取待检索事件的标识;
根据待检索事件的标识从第一列式数据库中获取待检索事件的多个属性,得到检索结果。
可选地,目标事件类型为时序事件,检索条件包括针对目标实体的筛选条件和/或针对时间信息的筛选条件,时序事件是指检索过程中关注的属性中包括时间信息但是不包括空间信息的事件,事件数据库中与时序事件对应的目标子数据库包括时序数据库,时序数据库中包括时间序列数据表;
检索单元,用于:
根据检索条件从时间序列数据表中获取匹配的行键;
根据匹配的行键中存储的信息确定待检索事件的多个属性,得到检索结果。
可选地,目标事件类型为时空事件,检索条件包括针对目标实体的筛选条件和/或针对时空信息的筛选条件,时空信息为空间信息,或者空间信息和时间信息,时空事件是指检索过程中关注的属性中包括空间信息的事件,事件数据库中与时空事件对应的目标子数据库包括时空数据库,时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
检索单元,用于:
根据检索条件,从空间属性索引表、时间属性索引表以及普通属性索引表中选择待检索的目标索引表;
基于检索条件从目标索引表中获取待检索事件的多个属性,得到检索结果。
可选地,在检索请求携带针对目标实体的筛选条件的情况下,检索条件包括针对目标实体的筛选条件,在检索请求携带包括针对目标关系的筛选条件的情况下,检索条件包括与目标关系关联的两个实体的筛选条件。
该装置还包括:
判断模块503,用于根据事件数据库判断是否存在与目标实体均关联的事件;
执行模块504,用于如果存在与目标实体均关联的事件,则执行从存储系统中的事件数据库中基于检索条件获取检索结果的操作。
在本申请实施例中,先根据检索请求确定待检索的元素类型属于实体元素、还是属于关系元素或者是属于事件元素。基于不同的元素类型选择图数据库或事件数据库中检索,在图数据库或事件数据库中再根据检索条件获取检索结果。由此可知,本申请实施例提供了一种能够同时检索实体、关系以及事件的存储系统。如此,当通过本申请实施例提供的存储系统实现知识图谱时,知识图谱中能够检索除了实体和关系之外的事件,并且检索事件时,是在事件数据库中检索。由于事件数据库存储了完整的事件,因此知识图谱可以检索到比较完整的事件,从而使得知识图谱能够实现对现实生活准确性的描述,极大丰富了知识图谱中的信息。另外,在知识图谱检索数据的过程中,元素类型为事件时则在事件数据库中进行检索。因此若在两个实体之间发生了多个事件,检索的多个事件是在事件数据库中检索,无需在图数据库中检索。只有元素类型为实体或关系时则在图数据库中进行检索。因此,大大减少了在一个数据库图数据库中检索的压力,从而有利于知识图谱中图数据库的检索。
需要说明的是:上述实施例提供的检索数据的装置在检索数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的检索数据的装置与检索数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种服务器的结构示意图。上述实施例中涉及的存储数据的方法以及检索数据的方法均可以通过该服务器实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的存储数据的方法或检索数据的方法。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述实施例提供的存储数据的方法或检索数据的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得服务器执行上述实施例提供的存储数据的方法或检索数据的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的较佳实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种存储数据的方法,其特征在于,所述方法包括:
获取待存储数据,所述待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据;
在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库;
在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入所述存储系统中的事件数据库。
2.如权利要求1所述的方法,其特征在于,所述实体数据包括与实体元数据中的定义的数据格式对应的数据,所述实体元数据中定义的数据格式包括实体的标签、实体的主键字段以及实体的多个属性的数据格式,所述实体的主键字段用于唯一标识一个实体,所述实体的标签用于指示实体的类型;
所述关系数据包括与关系元数据中的定义的数据格式对应的数据,所述关系元数据中定义的数据格式包括关系的标签、关系关联的主体的标签和主键字段、关系关联的客体的标签和主键字段、以及关系的多个属性的数据格式;
所述事件数据包括与事件元数据中的定义的数据格式对应的数据,所述事件元数据中定义的数据格式包括事件的标签、事件关联的实体的标签和主键字段、事件的多个属性的数据格式。
3.如权利要求1或2所述的方法,其特征在于,所述事件数据包括事件类型,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息,所述事件数据库包括与不同事件类型分别对应的子数据库;
所述在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入存储系统中的事件数据库,包括:
根据所述事件数据中包括的事件类型,从所述事件数据库中选择相应的子数据库;
将所述事件数据写入选择的子数据库中。
4.如权利要求3所述的方法,其特征在于,所述事件类型包括普通事件,所述普通事件是指检索过程中关注的属性中均不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的子数据库包括第一列式数据库和索引数据库;
所述将所述事件数据写入选择的子数据库中,包括:
根据所述事件数据确定事件标识;
将所述事件标识和所述事件数据中的事件的多个属性写入所述第一列式数据库中;
将所述事件标识、所述事件数据中与事件关联的实体的标签和主键字段、和/或所述多个属性中的检索属性写入所述索引数据库中,所述检索属性是指用于检索事件的属性。
5.如权利要求3所述的方法,其特征在于,所述事件类型包括时序事件,所述时序事件是指检索过程中关注的属性中包括时间信息但不包括空间信息的事件,所述事件数据库中与所述时序事件对应的子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述将所述事件数据写入选择的子数据库中,包括:
根据所述事件数据生成行键,所述行键中的监控项指示所述事件数据中的事件标签,所述行键中的时间戳指示所述事件数据中的时间信息,所述行键中的值指示所述事件数据中统计的指标的监控结果,所述行键中的键值对指示所述事件数据中的其他属性;
将所述行键写入所述时间序列数据表。
6.如权利要求3所述的方法,其特征在于,所述事件类型包括时空事件,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述将所述事件数据写入选择的子数据库中,包括:
从所述事件数据中获取与所述空间属性索引表对应的空间索引字段、与所述时间属性索引表对应的时间索引字段、以及普通属性索引表对应的普通属性索引字段中的两者或多者;
将所述事件数据写入所述时空数据库中的全量数据库中,将所述空间索引字段写入所述空间属性索引表,将所述时间索引字段写入所述时间属性索引表,将所述普通属性索引字段写入所述普通属性索引表,其中,所述时空数据库中配置有所述空间索引字段和所述事件数据之间的对应关系,所述时间索引字段和所述事件数据之间的对应关系,以及所述普通属性索引字段和所述事件数据之间的对应关系。
7.如权利要求1所述的方法,其特征在于,所述在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库,包括:
根据所述待存储数据确定实体或关系的标识;
将所述待存储数据中的部分数据和所述实体或关系的标识写入所述图数据库,将所述待存储数据中的其他数据和所述实体或关系的标识写入第二列式数据库。
8.一种检索数据的方法,其特征在于,所述方法包括:
根据检索请求确定待检索的元素类型以及检索条件,所述元素类型包括实体、关系或事件,所述检索条件包括针对实体的检索条件和/或针对事件属性的检索条件;
在所述元素类型为实体或关系的情况下,从存储系统中的图数据库中基于所述检索条件获取检索结果;
在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果。
9.如权利要求8所述的方法,其特征在于,所述事件数据库包括与不同事件类型分别对应的子数据库,所述事件类型用于指示检索过程中关注的事件属性是否包括时间信息或空间信息;
所述在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果,包括:
确定待检索事件的事件类型,得到目标事件类型;
从所述事件数据库中选择和所述目标事件类型对应的目标子数据库;
从所述目标子数据库中基于所述检索条件获取所述检索结果。
10.如权利要求9所述的方法,其特征在于,所述目标事件类型为普通事件,所述检索条件包括针对目标实体的筛选条件,所述普通事件是指检索过程中关注的属性中不包括时间信息和空间信息的事件,所述事件数据库中与所述普通事件对应的目标子数据库包括第一列式数据库和索引数据库;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述目标实体的筛选条件从所述索引数据库中获取所述待检索事件的标识;
根据所述待检索事件的标识从所述第一列式数据库中获取所述待检索事件的多个属性,得到所述检索结果。
11.如权利要求9所述的方法,其特征在于,所述目标事件类型为时序事件,所述检索条件包括针对目标实体的筛选条件和/或针对时间信息的筛选条件,所述时序事件是指检索过程中关注的属性中包括时间信息但是不包括空间信息的事件,所述事件数据库中与所述时序事件对应的目标子数据库包括时序数据库,所述时序数据库中包括时间序列数据表;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述检索条件从所述时间序列数据表中获取匹配的行键;
根据匹配的行键中存储的信息确定所述待检索事件的多个属性,得到所述检索结果。
12.如权利要求9所述的方法,其特征在于,所述目标事件类型为时空事件,所述检索条件包括针对目标实体的筛选条件和/或针对时空信息的筛选条件,所述时空信息为空间信息,或者空间信息和时间信息,所述时空事件是指检索过程中关注的属性中包括空间信息的事件,所述事件数据库中与所述时空事件对应的目标子数据库包括时空数据库,所述时空数据库包括空间属性索引表、时间属性索引表以及普通属性索引表;
所述从所述目标子数据库中基于所述检索条件获取所述检索结果,包括:
根据所述检索条件,从所述空间属性索引表、时间属性索引表以及普通属性索引表中选择待检索的目标索引表;
基于所述检索条件从所述目标索引表中获取所述待检索事件的多个属性,得到所述检索结果。
13.如权利要求8至12任一所述的方法,其特征在于,在所述检索请求携带针对目标实体的筛选条件的情况下,所述检索条件包括针对所述目标实体的筛选条件,在所述检索请求携带包括针对目标关系的筛选条件的情况下,所述检索条件包括与所述目标关系关联的两个实体的筛选条件。
14.如权利要求13所述的方法,其特征在于,在所述目标实体为两个以上实体的情况下,所述从存储系统中的事件数据库中基于所述检索条件获取检索结果之前,还包括:
根据所述事件数据库判断是否存在与所述目标实体均关联的事件;
如果存在与所述目标实体均关联的事件,则执行从存储系统中的事件数据库中基于所述检索条件获取检索结果的操作。
15.一种存储数据的装置,其特征在于,所述装置包括:
获取模块,用于获取待存储数据,所述待存储数据为用于指示实体的实体数据、或者为用于指示关系的关系数据、或者为用于指示事件的事件数据;
写入模块,用于在所述待存储数据为所述实体数据或所述关系数据的情况下,将所述待存储数据写入存储系统中的图数据库;
所述写入模块,还用于在所述待存储数据为所述事件数据的情况下,将所述待存储数据写入所述存储系统中的事件数据库。
16.一种检索数据的装置,其特征在于,所述装置包括:
确定模块,用于根据检索请求确定待检索的元素类型以及检索条件,所述元素类型包括实体、关系或事件,所述检索条件包括针对实体的检索条件和/或针对事件属性的检索条件;
检索模块,用于在所述元素类型为实体或关系的情况下,从存储系统中的图数据库中基于所述检索条件获取检索结果;
所述检索模块,还用于在所述元素类型为事件的情况下,从存储系统中的事件数据库中基于所述检索条件获取检索结果。
17.一种服务器,其特征在于,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1至7、或者8至14中的任一项权利要求所述的方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述权利要求1至7、或者8至14中的任一项权利要求所述的方法的步骤。
CN202011378238.XA 2020-11-30 2020-11-30 存储数据、检索数据的方法及相关设备 Active CN112445889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011378238.XA CN112445889B (zh) 2020-11-30 2020-11-30 存储数据、检索数据的方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011378238.XA CN112445889B (zh) 2020-11-30 2020-11-30 存储数据、检索数据的方法及相关设备

Publications (2)

Publication Number Publication Date
CN112445889A true CN112445889A (zh) 2021-03-05
CN112445889B CN112445889B (zh) 2024-08-09

Family

ID=74738887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011378238.XA Active CN112445889B (zh) 2020-11-30 2020-11-30 存储数据、检索数据的方法及相关设备

Country Status (1)

Country Link
CN (1) CN112445889B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699252A (zh) * 2021-03-25 2021-04-23 成都数联铭品科技有限公司 应用于知识图谱的属性数据的处理方法及电子设备
CN112883125A (zh) * 2021-04-28 2021-06-01 北京奇岱松科技有限公司 一种实体数据处理方法、装置、设备和存储介质
CN113051441A (zh) * 2021-06-01 2021-06-29 北京道达天际科技有限公司 实体对象的存储设计及管理方法
CN113177142A (zh) * 2021-03-23 2021-07-27 杭州费尔斯通科技有限公司 一种扩展图数据库存储结构方法、系统、设备和储存介质
CN113486194A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 一种知识图谱的防重方法和装置
CN113609100A (zh) * 2021-08-02 2021-11-05 北京百度网讯科技有限公司 数据存储方法、数据查询方法、装置及电子设备
CN114491067A (zh) * 2022-01-20 2022-05-13 科大讯飞股份有限公司 基于知识图谱的实体查询方法、相关设备及可读存储介质
CN116233104A (zh) * 2023-05-10 2023-06-06 广州耐奇电气科技有限公司 基于Elasticsearch的物联网大数据热力监控系统及其监控装置
CN116401703A (zh) * 2023-03-28 2023-07-07 广东利元亨智能装备股份有限公司 数据加工的方法、数据管理平台、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183869A (zh) * 2015-09-16 2015-12-23 分众(中国)信息技术有限公司 楼宇知识图谱数据库及其构建方法
US20180330231A1 (en) * 2017-05-10 2018-11-15 International Business Machines Corporation Entity model establishment
CN109918452A (zh) * 2019-02-14 2019-06-21 北京明略软件系统有限公司 一种数据处理的方法、装置、计算机存储介质及终端
CN110688495A (zh) * 2019-12-09 2020-01-14 武汉中科通达高新技术股份有限公司 一种事件信息的知识图谱模型构建方法、装置、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183869A (zh) * 2015-09-16 2015-12-23 分众(中国)信息技术有限公司 楼宇知识图谱数据库及其构建方法
US20180330231A1 (en) * 2017-05-10 2018-11-15 International Business Machines Corporation Entity model establishment
CN109918452A (zh) * 2019-02-14 2019-06-21 北京明略软件系统有限公司 一种数据处理的方法、装置、计算机存储介质及终端
CN110688495A (zh) * 2019-12-09 2020-01-14 武汉中科通达高新技术股份有限公司 一种事件信息的知识图谱模型构建方法、装置、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陶耀东;贾新桐;吴云坤;: "一种基于知识图谱的工业互联网安全漏洞研究方法", 信息技术与网络安全, no. 01, 10 January 2020 (2020-01-10) *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113177142A (zh) * 2021-03-23 2021-07-27 杭州费尔斯通科技有限公司 一种扩展图数据库存储结构方法、系统、设备和储存介质
CN112699252A (zh) * 2021-03-25 2021-04-23 成都数联铭品科技有限公司 应用于知识图谱的属性数据的处理方法及电子设备
CN112699252B (zh) * 2021-03-25 2021-07-23 成都数联铭品科技有限公司 应用于知识图谱的属性数据的处理方法及电子设备
CN112883125A (zh) * 2021-04-28 2021-06-01 北京奇岱松科技有限公司 一种实体数据处理方法、装置、设备和存储介质
CN113051441A (zh) * 2021-06-01 2021-06-29 北京道达天际科技有限公司 实体对象的存储设计及管理方法
CN113486194A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 一种知识图谱的防重方法和装置
CN113609100A (zh) * 2021-08-02 2021-11-05 北京百度网讯科技有限公司 数据存储方法、数据查询方法、装置及电子设备
CN113609100B (zh) * 2021-08-02 2023-10-27 北京百度网讯科技有限公司 数据存储方法、数据查询方法、装置及电子设备
CN114491067A (zh) * 2022-01-20 2022-05-13 科大讯飞股份有限公司 基于知识图谱的实体查询方法、相关设备及可读存储介质
CN116401703A (zh) * 2023-03-28 2023-07-07 广东利元亨智能装备股份有限公司 数据加工的方法、数据管理平台、设备及存储介质
CN116233104A (zh) * 2023-05-10 2023-06-06 广州耐奇电气科技有限公司 基于Elasticsearch的物联网大数据热力监控系统及其监控装置

Also Published As

Publication number Publication date
CN112445889B (zh) 2024-08-09

Similar Documents

Publication Publication Date Title
CN112445889B (zh) 存储数据、检索数据的方法及相关设备
US20220284017A1 (en) Systems and methods for rapid data analysis
US11132346B2 (en) Information processing method and apparatus
CN103020204B (zh) 一种对分布式顺序表进行多维区间查询的方法及其系统
US11334544B2 (en) Method, apparatus, device and medium for storing and querying data
JP4878178B2 (ja) データ処理方法および装置並びにその処理プログラム
US20140317117A1 (en) Method, device and computer storage media for user preferences information collection
US11216516B2 (en) Method and system for scalable search using microservice and cloud based search with records indexes
CN104756107A (zh) 采用位置信息剖析数据
CN106407360B (zh) 一种数据的处理方法及装置
CN110659282B (zh) 数据路由的构建方法、装置、计算机设备和存储介质
CN109815240B (zh) 用于管理索引的方法、装置、设备和存储介质
KR20190079354A (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
US11928113B2 (en) Structure and method of aggregation index for improving aggregation query efficiency
CN115658680A (zh) 数据存储方法、数据查询方法和相关装置
CN116595123A (zh) 多维数据查询方法、装置、计算机设备和存储介质
CN113779286B (zh) 管理图数据的方法及装置
CN110874366B (zh) 数据处理、查询方法和装置
CN107341221B (zh) 索引结构的建立、关联检索方法、装置、设备及存储介质
US10019483B2 (en) Search system and search method
Mehta et al. Spatio-temporal keyword queries for moving objects
CN109828984B (zh) 一种分析处理的方法、装置、计算机存储介质及终端
CN115809268B (zh) 一种基于分片索引的自适应查询方法和装置
CN114490833B (zh) 一种图计算结果可视化方法和系统
Guo et al. Cohesive group nearest neighbor queries on road-social networks under multi-criteria

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
GR01 Patent grant
GR01 Patent grant