CN109902130A - 一种数据存储方法、数据查询方法和装置、存储介质 - Google Patents
一种数据存储方法、数据查询方法和装置、存储介质 Download PDFInfo
- Publication number
- CN109902130A CN109902130A CN201910100866.2A CN201910100866A CN109902130A CN 109902130 A CN109902130 A CN 109902130A CN 201910100866 A CN201910100866 A CN 201910100866A CN 109902130 A CN109902130 A CN 109902130A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- timestamp
- stored
- entity
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据存储方法、数据查询方法和装置、存储介质,所述数据存储方法包括:检测第一数据库(存储最新版本数据)或第二数据库(存储所有版本数据)是否包含待存储数据的版本记录,并比较现有版本记录的时间戳与待存储数据的时间戳;若包含所述版本记录且待存储数据的时间戳在现有版本记录的时间戳之后,使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据对应的版本记录;若包含所述版本记录且待存储数据的时间戳在第一数据库中版本记录的时间戳之前,或者不包含所述版本记录,根据时间戳进行存储。本申请在保证最新状态的数据遍历效率的情况下,快速地查询任意时间点上的数据的历史状态。
Description
技术领域
本申请涉及但不限于数据处理技术领域,尤其涉及一种数据存储方法、数据查询方法和装置、存储介质。
背景技术
知识图谱被用来描述真实世界中存在的各种事物以及它们之间的关联关系,一种知识图谱的描述方式包括:实体(即知识图谱中的点)、关系(即知识图谱中的边)及和实体或者关系关联的属性。其中,实体拥有多个属性,且由一个主键字段进行唯一标示;关系亦拥有多个属性,且由关系的主体主键字段及关系的客体主键字段进行唯一标示。
由于知识图谱中的实体、关系数据是从原始数据(包括结构化、半结构化、非结构化数据)抽取得到,而原始数据会发生变化,比如数据表的一个字段值被修改,导致知识图谱的实体属性、关系属性以及图谱的拓扑结构,都会随着时间的变化而变化,例如,某员工入职一个单位后来又离职了,则该员工实体和单位实体从“有聘用关系”变为“没有聘用关系”。如果采取直接更新图谱存储内容的方式(即不保留过去的历史状态),无法满足根据业务去查询过去时间点上的实体属性、关系属性以及图谱的拓扑状态的需求。
在现有的数据库领域中,对于历史版本的支持方式有以下几种:
(1)通过检查点(Checkpoint)的方式创建快照(Snapshot),并将每个Snapshot视为一个版本,某些关系型数据库(如MySQL)等使用的就是这种方案。这种方案的缺点在于Snapshot往往只能针对所有的数据,无法针对单个的元素(即实体或者关系)进行细粒度的操作;
(2)通过链表结构存储每条记录的历史版本,比如一个数据从v1变成v2,则数据库中存储v2->v1这样的链表结构来体现最新值为v2。这种方案添加新的版本很快,但由于链表结构查询效率是线性的(即O(N)时间复杂度),无法快速查询历史状态;
(3)用图数据库的关系数据记录关系生效的起始和终止时间和同一个实体的不同历史状态,这种方案的问题是对于有频繁数据修改的实体,它在图数据库中的关系边会比没有记录历史状态的情况膨胀很多倍(每一个历史状态都会产生一条新的关系边),因此会极大地影响图谱当前最新状态下的图遍历速度;此外,为了能根据历史时间点查询历史状态,需要为这些记录历史状态的关系边上的有效起止时间建立复杂的索引;
(4)像Hbase(Hadoop Database)等存储方案提供的多版本并发控制(Multi-Version Concurrency Control,MVCC)方案,为了性能和存储空间的考虑,一般只会保留最新的少数几个版本,比较旧的版本会随时间推移被删除。
发明内容
本发明实施例提供了一种数据存储方法、数据查询方法和装置、存储介质,能够在不影响最新状态的数据遍历效率的情况下,快速查询任意时间点上的数据的历史状态。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据存储方法,包括:
检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,则使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
在一实施例中,所述数据为知识图谱数据,所述第一数据库为图数据库,所述第二数据库为表数据库。
在一实施例中,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
实体通过主键进行标识,实体关联的属性包括一个或多个键值对;关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第二数据库中,一个实体的版本由实体的主键和第二时间戳进行标识,一个关系的版本由关系的两个端点实体的主键、关系的类型和第二时间戳进行标识。
在一实施例中,当所述待存储数据为待删除的所述实体或所述关系时,所述将待存储数据存储进第一数据库中,包括:
在所述第一数据库存储的所述实体或所述关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述将待存储数据存储进第二数据库中,包括:在所述第二数据库存储的所述实体或所述关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
在一实施例中,所述第一数据库存储的所述实体或所述关系的版本记录,包括所述实体或所述关系的所有属性值及所述删除标识;
所述第二数据库存储的所述实体或所述关系的版本记录包括删除版本和非删除版本,其中,删除版本只包括所述删除标识,非删除版本包括所述实体或所述关系的所有属性值。
本发明实施例还提供了一种数据存储方法,包括:
检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,则将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据存储方法的步骤。
本发明实施例还提供了一种数据存储装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据存储方法的步骤。
本发明实施例还提供了一种数据存储装置,包括第一检测模块和第一处理模块,其中:
第一检测模块,用于检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,发送第一通知至第一处理模块;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第一处理模块;
第一处理模块,用于接收到第一通知,使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;接收到第二通知,根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
本发明实施例还提供了一种数据存储装置,包括第二检测模块和第二处理模块,其中:
第二检测模块,用于检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,发送第一通知至第二处理模块;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第二处理模块;
第二处理模块,用于接收到第一通知,将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;接收到第二通知,根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
本发明实施例还提供了一种数据查询方法,包括:
接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型;
如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;
如果接收的时间戳在所述最新版本时间戳之前,则从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
在一实施例中,当所述接收的实体或关系的属性值不存在或对应的版本状态包含预设的删除标识时,显示所述待查询的实体或关系不存在。
本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据查询方法的步骤。
本发明实施例还提供了一种数据查询装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据查询方法的步骤。
本发明实施例还提供了一种数据查询装置,包括数据接收模块和数据处理模块,其中:
数据接收模块,用于接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型,如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则发送第一通知至数据处理模块;如果接收的时间戳在所述最新版本时间戳之前,则发送第二通知至数据处理模块;
数据处理模块,用于接收到第一通知,从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;接收到第二通知,从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
本发明实施例提供的数据存储方法、数据查询方法和装置、存储介质,通过在第一数据库中存储最新版本的数据,在第二数据库中存储所有版本或历史版本的数据,可以在不影响最新状态的数据遍历效率的情况下,快速地查询任意时间点上的数据的历史状态。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的一种数据存储方法的流程示意图;
图2为本发明实施例的另一种数据存储方法的流程示意图;
图3为本发明实施例的一种数据存储装置的结构示意图;
图4为本发明实施例的另一种数据存储装置的结构示意图;
图5为本发明实施例的一种数据查询方法的流程示意图;
图6为本发明实施例的一种数据查询装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,根据本发明实施例的一种数据存储方法,包括如下步骤:
步骤101:检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据;
在本发明的一实施例中,所述数据为知识图谱数据,所述第一数据库为图数据库,所述第二数据库为表数据库。
需要说明的是,所述所有版本包括最新版本和历史版本。本申请使用两种不同的存储方式(分别为图数据库、表数据库)实现以下存储方案:
图数据库,比如Titan Graph(一个分布式图数据库,特别为存储和处理大规模图而优化),用于存储图中的点的最新的版本状态,图中的边的最新版本状态,以及所有版本的图谱的拓扑结构;
带树结构索引的表数据库,比如带有日志结构的合并树(Log Structured MergeTree,LSM-tree)树索引的Hbase,用于存储图中的点的所有版本状态、图中的边的所有版本状态。
在本发明的一实施例中,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
如表1所示,实体通过主键(Key)进行标识,实体关联的属性包括一个或多个键值(Key-Value)对;如表2所示,关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第二数据库中,如表3所示,一个实体的版本记录由实体的主键和第二时间戳进行标识,如表4所示,一个关系的版本记录由关系的两个端点实体的主键、关系的类型和第二时间戳进行标识。
表1
在表1中,实体的最新版本由唯一主键Key标识,一个实体包含多个Key-Value业务属性,如果当前最新版本被删除,则将一个名为Deleted的内部属性设置为True。也就是说,在实体被删除时,并不会真正地把这条记录从图数据库中删除,而是在数据库中记录一个特殊的删除标识;并且也不会连带修改该被删除实体的相关关系数据的状态(不删除对应的关系,也不会设置关系的Deleted标识)。LastModifiedTime为该最新版本的修改时间。
实体是产生事件的一个个体,是事件发生的主体,比如火车事件,它是以人为主,则这个实体就是某个人,而表示一个人的方式有多种,如:身份证,护照号,军官证等,所以有时也将一个具体表示一个人的唯一id作为一个实体。实体关联的属性即实体的详细信息,例如在火车事件中,实体关联的属性有车次、车厢、座位号、发站、到站等信息。
表2
在表2中,关系的最新版本由关系的两个端点实体的唯一主键(表中的Subj和Obj)以及关系的类型(Label)唯一标识,一个关系包含多个Key-Value业务属性,如果当前最新版本被删除,则将内部属性Deleted删除标识设置为True。
本申请的关系包括显性关系和隐性关系,其中,显性关系表示实体与实体之间的关系已经客观存在,可以通过事实直接作出判断,比如亲属关系;而隐性关系就是实体与实体之间的关系无法通过简单信息就可以判断,需要一定的计算规则从历史数据做一些统计和计算才能够确定它们是否存在,这种关系是一种可能性也就是满足某个规则的两个实体只是有非常大的可能有这个关系。
表3
在表3中,利用表数据库的线性分布式可扩展性,表数据库中的实体版本存储一个被修改实体的所有版本(包括当前的最新版本和最新版本之前的历史版本)。一个实体的版本记录由实体的主键Key和该版本的修改时间戳ts唯一标识,图中的MAX_LONG代表计算机***中长整型整数的最大值,拼接版本的唯一标识时通过(MAX_LONG-ts)对时间戳进行转换,当检索实体或关系的状态时,如果用户没有输入需要检索的时间戳或时间范围,则取(MAX_LONG-ts)整体值最小的版本即为最新版本,便于快速检索。在这些版本中,对于“删除状态”的版本,只需要记录一个Deleted=True标识,对于“非删除状态”的版本,保留该状态下的所有属性值。无论该实体被修改了一个还是多个属性,每一个历史版本均保留该版本下的所有属性的内容。
表4
在表4中,关系版本同样存储的是一条关系数据的所有版本记录(包含当前的最新版本和最新版本之前的历史版本)。一个关系的版本记录由关系的两个端点实体的主键Subj和Obj、关系的类型Label以及该版本的修改时间戳ts唯一标识,拼接唯一标识时与实体版本一样通过(MAX_LONG-ts)对时间戳进行转换。对于每个版本的属性存储方式与实体类似。
对于进入本申请的知识图谱***的新的实体或关系数据,在内部处理时均被赋予一个历史版本时间戳ts,如果已指定使用实体/关系的一个属性作为该时间戳的来源则直接使用,如果没有指定则使用当前***时间戳。
删除实体/关系操作等同于增加一个Deleted=True的历史版本。
步骤102:如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,则使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;
当增加一个新的实体或关系的版本记录时,如果发现该实体或关系的版本记录已存在但是增加的版本记录的时间戳在第一数据库中的版本记录的时间戳之后,则往图数据库中覆盖写入所述增加的版本记录的内容,记录LastModifiedTime=ts,同时按照以上介绍的存储格式往表数据库中添加一条历史版本记录。
步骤103:如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
当增加一个新的实体或关系的版本记录时,如果不存在该实体或关系的版本记录,则往图数据库中写入所述增加的版本记录的内容,记录LastModifiedTime=ts,同时按照以上介绍的存储格式往表数据库中添加一条历史版本记录;如果第一数据库或第二数据库已包含该实体或关系的版本记录且增加的版本记录的时间戳与现有的第一数据库或第二数据库中的某个版本记录的时间戳相同,则根据所述时间戳更新所述第一数据库或第二数据库中对应时间戳的版本记录;如果第一数据库或第二数据库已包含该实体或关系的版本记录、增加的版本记录的时间戳与现有的第一数据库或第二数据库中的各个版本记录的时间戳不同且在第一数据库中的版本记录的时间戳之前,则在第二数据库中添加对应时间戳的版本记录内容。
在本发明的一实施例中,当所述待存储数据为待删除的实体或关系时,所述将待存储数据存储进第一数据库中,包括:在所述第一数据库存储的所述实体或所述关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述将待存储数据存储进第二数据库中,包括:在所述第二数据库存储的所述实体或所述关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
在该实施例中,所述第一数据库存储的所述实体或关系的版本记录,包括所述实体或所述关系的所有属性值及所述删除标识;
所述第二数据库存储的所述实体或关系的版本记录包括删除版本和非删除版本,其中,删除版本只包括所述删除标识;非删除版本包括所述实体或所述关系的所有属性值。
如图2所示,根据本发明实施例的一种数据存储方法,包括如下步骤:
步骤201:检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据;
在本发明的一实施例中,所述数据为知识图谱数据,所述第三数据库为图数据库,所述第四数据库为表数据库。
在本发明的一实施例中,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
如表1所示,实体通过Key进行标识,实体关联的属性包括一个或多个键值对;如表2所示,关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第四数据库中,如表3所示,一个实体的版本记录由实体的主键和第四时间戳进行标识,如表4所示,一个关系的版本记录由关系的两个端点实体的主键、关系的类型和第四时间戳进行标识。
对于进入本申请的知识图谱***的新的实体或关系数据,在内部处理时均被赋予一个历史版本时间戳ts,如果已指定使用实体/关系的一个属性作为该时间戳的来源则直接使用,如果没有指定则使用当前***时间戳。删除实体/关系操作等同于增加一个Deleted=True的历史版本。
步骤202:如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,则将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;
当增加一个新的实体或关系的版本记录时,如果发现该实体或关系的版本记录已存在但是增加的版本记录的时间戳在第三数据库中的版本记录的时间戳之后,则将图数据库中的记录读出并写入表数据库中,然后往图数据库中覆盖写入所述增加的版本记录的内容,记录LastModifiedTime=ts。
步骤203:如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
当增加一个新的实体或关系的版本记录时,如果图数据库或表数据库不存在该实体或关系的版本记录,则往图数据库中写入所述增加的版本内容,记录LastModifiedTime=ts;如果图数据库或表数据库包含该实体或关系的版本记录且增加的版本记录的时间戳与现有的图数据库或表数据库中的某个版本记录的时间戳相同,则根据所述时间戳更新所述图数据库或表数据库中对应时间戳的版本记录;如果图数据库或表数据库已包含该实体或关系的版本记录、增加的版本记录的时间戳与现有的图数据库或表数据库中的各个版本记录的时间戳不同且在图数据库中的版本记录的时间戳之前,则在表数据库中添加对应时间戳的版本记录内容。
在本发明的一实施例中,当所述待存储数据为待删除的实体或关系时,所述将待存储数据存储进第三数据库中,包括:在所述第三数据库存储的所述实体或关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述将待存储数据存储进第四数据库中,包括:在所述第四数据库存储的所述实体或关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
在该实施例中,所述第三数据库存储的所述实体或关系的版本记录,包括所述实体或关系的所有属性值及所述删除标识;
所述第四数据库存储的所述实体或关系的版本记录包括删除版本和非删除版本,其中,删除版本只包括所述删除标识;非删除版本包括所述实体或关系的所有属性值。
本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据存储方法的步骤。
本发明实施例还提供了一种数据存储装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据存储方法的步骤。
如图3所示,本发明实施例还提供了一种数据存储装置,包括第一检测模块301和第一处理模块302,其中:
第一检测模块301,用于检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,发送第一通知至第一处理模块302;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第一处理模块302;
第一处理模块302,用于接收到第一通知,使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;接收到第二通知,根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
在本发明的一实施例中,所述数据为知识图谱数据,所述第一数据库为图数据库,所述第二数据库为表数据库。
在本发明的一实施例中,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
如表1所示,实体通过Key进行标识,实体关联的属性包括一个或多个键值对;如表2所示,关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第二数据库中,如表3所示,一个实体的版本记录由实体的主键和第二时间戳进行标识,如表4所示,一个关系的版本记录由关系的两个端点实体的主键、关系的类型和第二时间戳进行标识。
对于进入本申请的知识图谱***的新的实体或关系数据,在内部处理时均被赋予一个历史版本时间戳ts,如果已指定使用实体/关系的一个属性作为该时间戳的来源则直接使用,如果没有指定则使用当前***时间戳。删除实体/关系操作等同于增加一个Deleted=True的历史版本。
当增加一个新的实体或关系的版本记录时,如果该实体或关系的版本记录在第一数据库中或第二数据库已存在且增加的版本记录的时间戳与现有的第一数据库或第二数据库中的某个版本记录的时间戳相同,则根据所述时间戳更新所述第一数据库或第二数据库中对应时间戳的版本记录;如果该实体或关系的版本记录已存在但是增加的版本记录的时间戳在现有的第一数据库中的版本记录的时间戳之后,则往第一数据库中覆盖写入所述增加的版本记录的内容,记录LastModifiedTime=ts,同时按照以上介绍的存储格式往第二数据库中添加一条历史版本记录;如果不存在该实体或关系的版本记录,则往第一数据库中写入所述增加的版本记录的内容,记录LastModifiedTime=ts,同时按照以上介绍的存储格式往第二数据库中添加一条历史版本记录;如果第一数据库或第二数据库已包含该实体或关系的版本记录、增加的版本记录的时间戳与现有的第一数据库或第二数据库中的各个版本记录的时间戳不同且在第一数据库中的版本记录的时间戳之前,则在第二数据库中添加对应时间戳的版本记录内容。
在本发明的一实施例中,当所述待存储数据为待删除的实体或关系时,所述第一处理模块302的将待存储数据存储进第一数据库中,包括:
在所述第一数据库存储的所述实体或关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述第一处理模块302的将待存储数据存储进第二数据库中,包括:在所述第二数据库存储的所述实体或所述关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
在该实施例中,所述第一数据库存储的所述实体或关系的版本记录,包括所述实体或关系的所有属性值及所述删除标识;
所述第二数据库存储的所述实体或关系的记录包括删除版本和非删除版本,其中,删除版本只包括删除标识;非删除版本包括所述实体或关系的所有属性值。
如图4所示,本发明实施例还提供了一种数据存储装置,包括第二检测模块401和第二处理模块402,其中:
第二检测模块401,用于检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,发送第一通知至第二处理模块402;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第二处理模块402;
第二处理模块402,用于接收到第一通知,将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;接收到第二通知,根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
在本发明的一实施例中,所述数据为知识图谱数据,所述第三数据库为图数据库,所述第四数据库为表数据库。
在本发明的一实施例中,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
如表1所示,实体通过Key进行标识,实体关联的属性包括一个或多个键值对;如表2所示,关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第四数据库中,如表3所示,一个实体的版本记录由实体的主键和第四时间戳进行标识,如表4所示,一个关系的版本记录由关系的两个端点实体的主键、关系的类型和第四时间戳进行标识。
对于进入本申请的知识图谱***的新的实体或关系数据,在内部处理时均被赋予一个历史版本时间戳ts,如果已指定使用实体/关系的一个属性作为该时间戳的来源则直接使用,如果没有指定则使用当前***时间戳。删除实体/关系操作等同于增加一个Deleted=True的历史版本记录。
当增加一个新的实体或关系的版本记录时,如果该实体或关系的版本记录在第三数据库中或第四数据库已存在且增加的时间戳与现有的图数据库或表数据库中的某个时间戳相同,则根据所述时间戳更新所述图数据库或表数据库中对应时间戳的版本记录;如果该实体或关系的版本记录已存在但是增加的版本记录的时间戳在图数据库中的版本记录的时间戳之后,则将图数据库中的版本记录读出并写入表数据库中,然后往图数据库中覆盖写入所述增加的版本记录的内容,记录LastModifiedTime=ts;如果不存在该实体或关系的版本记录,则往图数据库中写入所述增加的版本记录的内容,记录LastModifiedTime=ts;如果图数据库或表数据库已包含该实体或关系的版本记录、增加的版本记录的时间戳与现有的图数据库或表数据库中的各个版本记录的时间戳不同且在图数据库中的版本记录的时间戳之前,则在表数据库中添加对应时间戳的版本记录内容。
在本发明的一实施例中,当所述待存储数据为待删除的实体或关系时,所述第二处理模块402的将待存储数据存储进第三数据库中,包括:
在所述第三数据库存储的所述实体或关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述第二处理模块402的将待存储数据存储进第四数据库中,包括:在所述第四数据库存储的所述实体或关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
在该实施例中,所述第三数据库存储的所述实体或关系的版本记录,包括所述实体或所述关系的所有属性值及所述删除标识;
所述第四数据库存储的所述实体或关系的版本记录包括删除版本和非删除版本,其中,删除版本只包括所述删除标识,非删除版本包括所述实体或所述关系的所有属性值。
如图5所示,本发明实施例还提供了一种数据查询方法,包括如下步骤:
步骤501:接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型;
步骤502:如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;
步骤503:如果接收的时间戳在所述最新版本时间戳之前,则从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
在本发明的一实施例中,当所述接收的实体或关系的属性值不存在或对应的版本状态包含预设的删除标识时,显示所述待查询的实体或关系不存在。
当接收的查询操作中不包括输入版本时间戳时,我们认为用户需要查询的是最新版本的实体或关系的状态,其中,对于实体的状态,主要根据主键Key来进行查询:直接从图数据库中获取实体的最新版本的状态,对于实体记录不存在或最新状态带Deleted=True的情况,均返回空的结果;对于关系的状态,主要根据关系对应的实体主键及客体主键来进行查询:直接从图数据库中获取关系的最新版本的状态,对于关系记录不存在、关系的最新状态带Deleted=True或者关系的两个端点实体中,有任一个端点实体不存在的情况,均返回空的结果(表明该关系实际上是逻辑上已被删除的)。
当接收的查询操作中包括输入版本时间戳时,对于实体的状态,主要根据主键Key和输入版本时间戳来进行查询:根据主键Key和输入版本时间戳ts在表数据库中利用树结构索引进行范围查询(Range scan),查询表数据库中满足RowKey>=(Key+(MAX_LONG-ts))这一条件的第一条记录,即是时间戳<=ts的最近一个历史版本,对于找不到满足条件的版本记录或该版本状态带Deleted=True的情况,均返回空的结果;对于关系的状态,主要根据关系对应的主体实体主键Subj、客体实体主键Obj及输入版本时间戳来进行查询:首先根据Subj、Obj判断这个关系的两个实体在指定版本时间戳是否存在,如果有一个不存在则直接返回空结果,然后根据主体实体主键Subj和客体实体主键Obj、关系类型Label和输入版本时间戳ts在表数据库中利用树结构索引进行范围查询,查询表数据库中满足RowKey>=(subj+obj+label+(MAX_LONG-ts))这一条件的第一条记录,即是时间戳<=ts的最近一个历史版本,对于找不到满足条件的版本记录或该版本状态带Deleted=True的情况,均返回空的结果。
通过本申请的数据查询方法,还可以根据实体Key获取实体对应的关系及对端的实体。首先根据实体Key判断实体在指定版本时间戳是否存在,如果不存在则直接返回空结果;然后通过图数据库获取该实体的所有关系记录,遍历每一条关系记录,获取每个关系在指定时间戳的版本状态。
本发明实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据查询方法的步骤。
本发明实施例还提供了一种数据查询装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据查询方法的步骤。
如图6所示,本发明实施例还提供了一种数据查询装置,包括数据接收模块601和数据处理模块602,其中:
数据接收模块601,用于接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型,如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则发送第一通知至数据处理模块602;如果接收的时间戳在所述最新版本时间戳之前,则发送第二通知至数据处理模块602;
数据处理模块602,用于接收到第一通知,从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;接收到第二通知,从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
在本发明的一实施例中,当所述待查询的实体或关系的属性值不存在或对应的版本状态包含预设的删除标识时,所述数据处理模块602显示所述待查询的实体或关系不存在。
当接收的查询操作中不包括输入版本时间戳时,我们认为用户需要查询的是最新版本的实体或关系的状态,其中,对于实体的状态,所述数据处理模块602主要根据主键Key来进行查询:直接从图数据库中获取实体的最新版本的状态,对于实体记录不存在或最新状态带Deleted=True的情况,均返回空的结果;对于关系的状态,所述数据处理模块602主要根据关系对应的实体主键及客体主键来进行查询:直接从图数据库中获取关系的最新版本的状态,对于关系记录不存在、关系的最新状态带Deleted=True或者关系的两个端点实体中,有任一个端点实体不存在的情况,均返回空的结果(表明该关系实际上是逻辑上已被删除的)。
当接收的查询操作中包括输入版本时间戳时,对于实体的状态,所述数据处理模块602主要根据主键Key和输入版本时间戳来进行查询:根据主键Key和输入版本时间戳ts在表数据库中利用树结构索引进行范围查询(Range scan),查询表数据库中满足RowKey>=(Key+(MAX_LONG-ts))这一条件的第一条记录,即是时间戳<=ts的最近一个历史版本,对于找不到满足条件的版本记录或该版本状态带Deleted=True的情况,均返回空的结果;对于关系的状态,所述数据处理模块602主要根据关系对应的主体实体主键Subj、客体实体主键Obj及输入版本时间戳来进行查询:首先根据Subj、Obj判断这个关系的两个实体在指定版本时间戳是否存在,如果有一个不存在则直接返回空结果,然后根据主体实体主键Subj和客体实体主键Obj、关系类型Label和输入版本时间戳ts在表数据库中利用树结构索引进行范围查询,查询表数据库中满足RowKey>=(subj+obj+label+(MAX_LONG-ts))这一条件的第一条记录,即是时间戳<=ts的最近一个历史版本,对于找不到满足条件的版本记录或该版本状态带Deleted=True的情况,均返回空的结果。
本申请的数据查询装置还可以根据实体Key获取实体对应的关系及对端的实体。所述数据处理模块602首先根据实体Key判断实体在指定版本时间戳是否存在,如果不存在则直接返回空结果;然后通过图数据库获取该实体的所有关系记录,遍历每一条关系记录,获取每个关系在指定时间戳的版本状态。
示例性地,假设当前图数据库、表数据库中未存储任何数据,在t1时刻,写入两个实体、一个关系,存储的数据状态如表5、表6、表7和表8所示:
表5
表6
表7
表8
此时通过Key1查询实体最新版本,返回{k1=v1,k2=v2},通过Key1、Key2、label查询关系的最新版本,返回{k6=v6,k6=v6}。
在t2时刻,将Key1对应实体的k1属性值修改为v1’,将关系的k5属性值修改为v5’,则数据存储状态变为:
表9
表10
表11
表12
此时,根据Key1查询t2时刻的实体,从图数据库读出{k1=v1’,k2=v2},根据Key1查询t1时刻的实体,从表数据库读出{k1=v1,k2=v2},根据Key2查询t2时刻的实体,从表数据库读出{k3=v3,k4=v4},根据Key1+Key2+label查询t2时刻的关系,从表数据库读出{k5=v5’,k6=v6}。
假设在t3时刻删除了Key2实体,则数据存储状态变为:
表13
表14
表15
表16
根据Key2查询t3时刻的实体,返回空结果;根据Key1查询t3时刻的关系时,首先在图数据库中查询到Key1+Key2+label这条关系,然后在表数据库中查询发现Key2实体在t3时刻已被删除,因此关系查询也返回空结果。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上仅为本申请的优选实施例,当然,本申请还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。
Claims (15)
1.一种数据存储方法,其特征在于,包括:
检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,则使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
2.根据权利要求1所述的方法,其特征在于,所述数据为知识图谱数据,所述第一数据库为图数据库,所述第二数据库为表数据库。
3.根据权利要求2所述的方法,其特征在于,所述数据包括以下至少之一:实体、关系、实体或者关系关联的属性;
实体通过主键进行标识,实体关联的属性包括一个或多个键值对;关系通过关系的两个端点实体的主键及关系的类型进行标识,关系关联的属性包括一个或多个键值对;
在所述第二数据库中,一个实体的版本由实体的主键和第二时间戳进行标识,一个关系的版本由关系的两个端点实体的主键、关系的类型和第二时间戳进行标识。
4.根据权利要求3所述的方法,其特征在于,当所述待存储数据为待删除的所述实体或所述关系时,所述将待存储数据存储进第一数据库中,包括:
在所述第一数据库存储的所述实体或所述关系的版本记录中,添加一个删除标识,并更新所述时间戳;
所述将待存储数据存储进第二数据库中,包括:在所述第二数据库存储的所述实体或所述关系的版本记录中,添加一个带删除标识的版本记录,并记录所述时间戳。
5.根据权利要求4所述的方法,其特征在于,所述第一数据库存储的所述实体或所述关系的版本记录,包括所述实体或所述关系的所有属性值及所述删除标识;
所述第二数据库存储的所述实体或所述关系的版本记录包括删除版本和非删除版本,其中,删除版本只包括所述删除标识,非删除版本包括所述实体或所述关系的所有属性值。
6.一种数据存储方法,其特征在于,包括:
检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,则将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;
如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,则根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
7.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的数据存储方法的步骤。
8.一种数据存储装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求1至6中任一项所述的数据存储方法的步骤。
9.一种数据存储装置,其特征在于,包括第一检测模块和第一处理模块,其中:
第一检测模块,用于检测第一数据库或第二数据库是否包含待存储数据的版本记录,并将第一数据库或第二数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第一数据库用于存储最新版本的数据,所述第二数据库用于存储所有版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之后,发送第一通知至第一处理模块;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第一数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第一处理模块;
第一处理模块,用于接收到第一通知,使用待存储数据覆盖第一数据库中的版本记录,并在第二数据库中增加一个与待存储数据的时间戳对应的版本记录;接收到第二通知,根据待存储数据的时间戳将待存储数据存储进第一数据库或第二数据库中。
10.一种数据存储装置,其特征在于,包括第二检测模块和第二处理模块,其中:
第二检测模块,用于检测第三数据库或第四数据库是否包含待存储数据的版本记录,并将第三数据库或第四数据库中的版本记录的时间戳与待存储数据的时间戳进行比较,其中,所述第三数据库用于存储最新版本的数据,所述第四数据库用于存储历史版本的数据,如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之后,发送第一通知至第二处理模块;如果包含待存储数据的版本记录且所述待存储数据的时间戳在第三数据库中的版本记录的时间戳之前,或者不包含待存储数据的版本记录,发送第二通知至第二处理模块;
第二处理模块,用于接收到第一通知,将第三数据库中的版本记录读出并存储进第四数据库中,并将待存储数据存储进第三数据库中;接收到第二通知,根据所述时间戳将待存储数据存储进第三数据库或第四数据库中。
11.一种数据查询方法,其特征在于,包括:
接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型;
如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;
如果接收的时间戳在所述最新版本时间戳之前,则从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
12.根据权利要求11所述的方法,其特征在于,当所述接收的实体或关系的属性值不存在或对应的版本状态包含预设的删除标识时,显示所述待查询的实体或关系不存在。
13.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求11至12中任一项所述的数据查询方法的步骤。
14.一种数据查询装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求11至12中任一项所述的数据查询方法的步骤。
15.一种数据查询装置,其特征在于,包括数据接收模块和数据处理模块,其中:
数据接收模块,用于接收以下至少之一:待查询的实体或关系的属性值、待查询的实体或关系的时间戳,所述实体的属性值包括实体主键,所述关系的属性值包括以下至少之一:主体实体主键、客体实体主键、关系类型,如果没有接收到时间戳,或者接收的时间戳为第一数据库中所述待查询的实体或关系的最新版本时间戳或在所述最新版本时间戳之后,则发送第一通知至数据处理模块;如果接收的时间戳在所述最新版本时间戳之前,则发送第二通知至数据处理模块;
数据处理模块,用于接收到第一通知,从第一数据库中获取所述待查询的实体或关系的最新版本状态并显示,所述第一数据库用于存储最新版本的数据;接收到第二通知,从第二数据库中获取与所述接收的时间戳对应的待查询的实体或关系的状态并显示,所述第二数据库用于存储历史版本或所有版本的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910100866.2A CN109902130A (zh) | 2019-01-31 | 2019-01-31 | 一种数据存储方法、数据查询方法和装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910100866.2A CN109902130A (zh) | 2019-01-31 | 2019-01-31 | 一种数据存储方法、数据查询方法和装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109902130A true CN109902130A (zh) | 2019-06-18 |
Family
ID=66944678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910100866.2A Pending CN109902130A (zh) | 2019-01-31 | 2019-01-31 | 一种数据存储方法、数据查询方法和装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902130A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597840A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的伴侣关系建立方法、装置、设备及存储介质 |
CN110597927A (zh) * | 2019-10-14 | 2019-12-20 | 上海依图网络科技有限公司 | 基于异构数据库的存储查询方法和装置 |
CN111177409A (zh) * | 2019-12-27 | 2020-05-19 | 北京明略软件***有限公司 | 一种实现数据处理的方法、装置、计算机存储介质及终端 |
CN111274410A (zh) * | 2020-01-21 | 2020-06-12 | 北京明略软件***有限公司 | 一种数据存储方法、装置及数据查询方法、装置 |
CN111881173A (zh) * | 2020-06-04 | 2020-11-03 | 博依特(广州)工业互联网有限公司 | 一种基于Hive的数据修改方法、装置及存储介质 |
CN111966870A (zh) * | 2020-08-14 | 2020-11-20 | 深圳市万物云科技有限公司 | 一种基于图数据库的社区关系实时构建方法及其相关组件 |
CN112256668A (zh) * | 2020-09-22 | 2021-01-22 | 深圳市金蝶天燕云计算股份有限公司 | 关联数据处理方法、装置、计算机设备和存储介质 |
CN112307017A (zh) * | 2020-09-16 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 数据存储方法、查询方法及相关设备、存储介质 |
CN112817969A (zh) * | 2021-01-14 | 2021-05-18 | 内蒙古蒙商消费金融股份有限公司 | 数据查询方法、***、电子设备和存储介质 |
CN112860912A (zh) * | 2021-02-10 | 2021-05-28 | 北京字节跳动网络技术有限公司 | 一种更新知识图谱的方法及装置 |
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件***有限公司 | 一种图数据库数据删除方法、***、电子设备及存储介质 |
CN114579888A (zh) * | 2022-04-26 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 知识图谱数据构建的方法、***和非瞬态计算机可读介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148308A (en) * | 1991-01-23 | 2000-11-14 | Neubauer; Edward J. | Method of selecting and representing time-varying data |
CN1878080A (zh) * | 2005-06-09 | 2006-12-13 | 华为技术有限公司 | 网络管理***对通信设备进行轮询的方法 |
CN101464895A (zh) * | 2009-01-21 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种更新内存数据的方法、***和装置 |
CN101609407A (zh) * | 2009-07-22 | 2009-12-23 | 天津市电力公司 | 基于发布者/订阅者模式的全站模型文件匹配的检测方法 |
CN101809571A (zh) * | 2007-09-25 | 2010-08-18 | 阿玛得斯两合公司 | 用于数据实体的版本管理的方法和装置 |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储***和存储方法 |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
CN105740443A (zh) * | 2016-02-01 | 2016-07-06 | 深圳市盛弘电气股份有限公司 | 一种基于Android数据库的数据管理方法及装置 |
CN106685729A (zh) * | 2017-01-18 | 2017-05-17 | 郑州云海信息技术有限公司 | 服务配置管理方法及*** |
CN106682193A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 基于缓存的数据持久化存储方法及装置 |
CN106708537A (zh) * | 2017-01-22 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 应用更新方法和装置 |
CN107451104A (zh) * | 2017-06-23 | 2017-12-08 | 江苏艾科半导体有限公司 | 一种文件版本信息存储方法及其专用装置 |
CN107613024A (zh) * | 2017-10-31 | 2018-01-19 | 维沃移动通信有限公司 | 一种数据同步方法及移动终端 |
-
2019
- 2019-01-31 CN CN201910100866.2A patent/CN109902130A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148308A (en) * | 1991-01-23 | 2000-11-14 | Neubauer; Edward J. | Method of selecting and representing time-varying data |
CN1878080A (zh) * | 2005-06-09 | 2006-12-13 | 华为技术有限公司 | 网络管理***对通信设备进行轮询的方法 |
CN101809571A (zh) * | 2007-09-25 | 2010-08-18 | 阿玛得斯两合公司 | 用于数据实体的版本管理的方法和装置 |
CN101464895A (zh) * | 2009-01-21 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种更新内存数据的方法、***和装置 |
CN101609407A (zh) * | 2009-07-22 | 2009-12-23 | 天津市电力公司 | 基于发布者/订阅者模式的全站模型文件匹配的检测方法 |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储***和存储方法 |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
CN105740443A (zh) * | 2016-02-01 | 2016-07-06 | 深圳市盛弘电气股份有限公司 | 一种基于Android数据库的数据管理方法及装置 |
CN106682193A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 基于缓存的数据持久化存储方法及装置 |
CN106685729A (zh) * | 2017-01-18 | 2017-05-17 | 郑州云海信息技术有限公司 | 服务配置管理方法及*** |
CN106708537A (zh) * | 2017-01-22 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 应用更新方法和装置 |
CN107451104A (zh) * | 2017-06-23 | 2017-12-08 | 江苏艾科半导体有限公司 | 一种文件版本信息存储方法及其专用装置 |
CN107613024A (zh) * | 2017-10-31 | 2018-01-19 | 维沃移动通信有限公司 | 一种数据同步方法及移动终端 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597840B (zh) * | 2019-09-26 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 基于区块链的伴侣关系建立方法、装置、设备及存储介质 |
CN110597840A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的伴侣关系建立方法、装置、设备及存储介质 |
CN110597927A (zh) * | 2019-10-14 | 2019-12-20 | 上海依图网络科技有限公司 | 基于异构数据库的存储查询方法和装置 |
CN111177409A (zh) * | 2019-12-27 | 2020-05-19 | 北京明略软件***有限公司 | 一种实现数据处理的方法、装置、计算机存储介质及终端 |
CN111274410A (zh) * | 2020-01-21 | 2020-06-12 | 北京明略软件***有限公司 | 一种数据存储方法、装置及数据查询方法、装置 |
CN111881173A (zh) * | 2020-06-04 | 2020-11-03 | 博依特(广州)工业互联网有限公司 | 一种基于Hive的数据修改方法、装置及存储介质 |
CN111966870A (zh) * | 2020-08-14 | 2020-11-20 | 深圳市万物云科技有限公司 | 一种基于图数据库的社区关系实时构建方法及其相关组件 |
CN112307017A (zh) * | 2020-09-16 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 数据存储方法、查询方法及相关设备、存储介质 |
CN112256668A (zh) * | 2020-09-22 | 2021-01-22 | 深圳市金蝶天燕云计算股份有限公司 | 关联数据处理方法、装置、计算机设备和存储介质 |
CN112817969B (zh) * | 2021-01-14 | 2023-04-14 | 内蒙古蒙商消费金融股份有限公司 | 数据查询方法、***、电子设备和存储介质 |
CN112817969A (zh) * | 2021-01-14 | 2021-05-18 | 内蒙古蒙商消费金融股份有限公司 | 数据查询方法、***、电子设备和存储介质 |
CN112860912A (zh) * | 2021-02-10 | 2021-05-28 | 北京字节跳动网络技术有限公司 | 一种更新知识图谱的方法及装置 |
CN112860912B (zh) * | 2021-02-10 | 2024-05-07 | 北京字节跳动网络技术有限公司 | 一种更新知识图谱的方法及装置 |
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件***有限公司 | 一种图数据库数据删除方法、***、电子设备及存储介质 |
CN114579888A (zh) * | 2022-04-26 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 知识图谱数据构建的方法、***和非瞬态计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902130A (zh) | 一种数据存储方法、数据查询方法和装置、存储介质 | |
CN109871373A (zh) | 一种数据存储方法和装置、计算机可读存储介质 | |
CN110300963A (zh) | 大规模数据储存库中的数据管理*** | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其*** | |
US6970882B2 (en) | Unified relational database model for data mining selected model scoring results, model training results where selection is based on metadata included in mining model control table | |
CN110168515A (zh) | 用于分析数据关系以支持查询执行的*** | |
CN104199816B (zh) | 单独可访问数据单元的管理存储 | |
CN103412917B (zh) | 一种可扩展的多类型领域数据协调管理的数据库***和管理方法 | |
JP4688111B2 (ja) | 情報処理装置、データベース・システム、情報処理方法、およびプログラム | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
US11314717B1 (en) | Scalable architecture for propagating updates to replicated data | |
US20040015486A1 (en) | System and method for storing and retrieving data | |
CN109313640A (zh) | 用于数据库优化的方法和*** | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
CN109918386B (zh) | 一种数据恢复方法和装置、计算机可读存储介质 | |
US20210318995A1 (en) | Candidate element selection using significance metric values | |
CN107958023A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
US9390111B2 (en) | Database insert with deferred materialization | |
JP2001195406A (ja) | データベース管理システム | |
GB2493963A (en) | Database record repair | |
CN110389939A (zh) | 一种基于NoSQL和分布式文件***的物联网存储*** | |
CN110008243A (zh) | 一种数据表处理方法及装置 | |
CN101609462B (zh) | 一种个人数据空间环境下的任务识别***和方法 | |
WO2011099082A1 (ja) | データベース管理システム | |
Khurana | An introduction to temporal graph data management |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190618 |