CN104794123B - 一种为半结构化数据构建NoSQL数据库索引的方法及装置 - Google Patents
一种为半结构化数据构建NoSQL数据库索引的方法及装置 Download PDFInfo
- Publication number
- CN104794123B CN104794123B CN201410025080.6A CN201410025080A CN104794123B CN 104794123 B CN104794123 B CN 104794123B CN 201410025080 A CN201410025080 A CN 201410025080A CN 104794123 B CN104794123 B CN 104794123B
- Authority
- CN
- China
- Prior art keywords
- major key
- key
- clue
- data
- structuring
- 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.)
- Active
Links
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/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
Abstract
本申请提供一种为半结构化数据构建NoSQL数据库索引的方法,包括:将半结构化源数据进行预处理;将预处理后的文本段存储至数据表中,数据表包括结构化线索主键和序列值主键的第一组合主键,结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;对预处理后的文本段建立倒排索引表,倒排索引表包括结构化线索主键和关键字主键的第二组合主键,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的结构化线索主键键值的索引值,在倒排索引表中位于不同的行;以提高数据库索引的查询效率,并便于更新。另外,本申请还提供一种为半结构化数据构建NoSQL数据库索引的装置。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种为半结构化数据构建NoSQL数据库索引的方法及装置。
背景技术
数据库管理系统(database management system)是一种操纵和管理数据库的方式,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
随着大数据时代的到来,交易和交互数据也随之不断增大。其中,对TB数据级的处理,已经成为基本配置;而数据类型也由单一性变为多样性,例如:结构化数据、非结构化数据、半结构化数据等,其中结构化数据通常是指企业ERP、财务系统等数据信息;非结构化数据是指语音、图像、视频等数据;半结构化数据是指结构隐含但不严谨的自我描述型数据,如:邮件、HTML、报表、资源库等数据。
传统的关系型数据库管理系统在面对上述大规模及多样性的数据时,存在一定的局限性,尤其是对于处理非结构化数据和半结构化数据时显得力不从心。为此,提出了NoSQL的概念。
NoSQL是指非关系型的数据库,或者称为:非结构化数据存储的数据库。NoSQL存储中的列式存储(如Hbase,OTS)是基于列的数据库,以方便读写大数据内容。NoSQL存储模型可以表示为一个表,每个表由很多行组成,每行又有很多列。表创建时需要指定行的主键列,该主键列通常被用来划分数据,相邻主键的行通常被组织在一起。对NoSQL数据库进行查询的方式是为其建立索引。
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。因此,可以通过为数据库建立索引查找到所需要的信息。
倒排索引是NoSQL数据库最常用的数据结构之一,所谓倒排索引(Invertedindex),是根据属性的值来查找记录,在倒排索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的地址,所以称之为倒排索引。以常用的NoSQL数据库类型——文档检索系统为例,如果要为存储在硬盘上的文本文件建立倒排索引,则所述属性值就是文档中的关键字,倒排索引表中对应每个关键字记录包含该关键字的文本文件所在的硬盘存储位置,该硬盘存储位置称为索引值。
对上述文档检索系统为例,需要为大量文档建立数据库索引时,可以将文档和索引存入NoSQL数据库的数据表和倒排索引表中,数据表主键是文档ID,值是文档内容;倒排索引表主键是关键字,值是包含该关键字的文档列表,通过倒排索引表的关键字主键可以查找包含该关键字的所有文档的文档ID,使用这些文档ID,再通过数据表,可以查找到对应的文档内容,通过上述方式,就可以实现从海量的信息中快速地提取出用户需求的信息,实现为NoSQL数据库建立索引的目的。
然而,现有基于NoSQL对数据建立的倒排索引,其查询效率很低。原因在于,用户在根据关键字进行查询时,需要在整个倒排索引表中查找相应关键字,该查找时间随数据量指数增长,导致查询效率低。
此外,现有的NoSQL数据库索引的更新效率过低。以上述文档检索系统为例,现有的NoSQL系统中,当增加新文档的数据时,需要先读取原有的倒排索引表,找出该新文档的关键字在倒排索引表中的位置,然后,再将该新文档的文档ID对应这些关键字写入倒排索引表;由于需要先读取倒排索引表的内容,显著降低了数据库索引的更新速度,当数据库很大时,更新速度将达到无法接收的地步。
综上,由于现有技术中基于NoSQL存储数据构建索引的方式,存在查询效率和更新效率过低的问题,因此,导致系统吞吐量低,无法处理TB规模文档的写入与查询。
所以,如何能够构建一种具有更高吞吐能力的NoSQL数据库索引方法,成为亟待解决的技术问题。
发明内容
本申请提供一种为半结构化数据构建NoSQL数据库索引的方法,所述数据库索引具有更高的查询效率,以及更便于更新。
本申请同时提供一种为半结构化数据构建NoSQL数据库索引的装置。
为解决上述技术问题,本申请提供一种为半结构化数据构建NoSQL数据库索引的方法,包括:将半结构化源数据进行预处理,获得若干待存入数据库的文本段;将所述预处理后的文本段存储至数据表中,所述数据表具有第一组合主键,每个文本段对应所述第一组合主键存储至相应的记录中;所述第一组合主键包括结构化线索主键和序列值主键;所述结构化线索主键标识结构化线索,所述结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应所述文本段的序列值;对所述预处理后的文本段建立倒排索引表,所述倒排索引表的主键为第二组合主键,所述第二组合主键包含结构化线索主键和关键字主键;所述倒排索引表中,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的结构化线索主键键值的索引值,在所述倒排索引表中位于不同的行。
优选地,所述第一组合主键包括数据源主键,所述数据源主键标识文本段的数据来源;所述第二组合主键同样包含上述数据源主键,具有不同的数据来源主键键值的索引值,在所述倒排索引表中位于不同的行。
优选地,对这些文本段建立所述数据表和倒排索引表时,一次性读取同一数据来源的具有相同结构化线索主键键值的所有文本段。
优选地,所述第一组合主键中,所述数据源主键,具体采用文本段的数据源加上文本段的结构化线索原始值的哈希值;和/或在所述第二组合主键中,所述数据源主键,具体采用文本段的数据源加上关键字的哈希值。
优选地,所述结构化线索为文本段的源数据生成时间。
优选地,所述结构化线索以确定的顺序被分割为若干连续区间,是将文本段的源数据生成时间分为若干时间段;所述每一区间分配一个特定的键值作为结构化线索主键的键值,是以所述时间段的起点、终点、中点或者所述时间段内的任意一点的时间值作为所述特定的键值,或者为所述时间段确定一个唯一的标识符号作为所述特定的键值。
优选地,所述序列值以基值加偏移值的方式表示;所述基值与所述结构化线索主键键值对应,即,相同的结构化线索主键键值对应同一个基值;所述偏移值以如下方式获得:对应同一个结构化线索主键键值的每个文本段,以所述结构化线索原始值的顺序为依据,按照顺序赋予相应的偏移值。
优选地,所述倒排索引表中,记录相关文本段标识作为索引值的具体方法是:为对应同一个数据源主键键值,并且结构化线索主键键值相同的所有文本段,提供一个基值;同时,为这些文本段提供一个二进制比特数组,所述比特数组中,以第i位二进制数标识第i个文本段是否包含所在记录的关键字主键中所列的关键字。
优选地,若对应同一个数据源主键并且具有相同的结构化线索主键的所有文本段,均包括某个关键字,则在倒排索引表对应所述关键字主键的记录中,其索引值记录为一个特殊符号,所述特殊符号表示所有文本段均包含所述关键字;或者,若对应同一个数据源主键并且具有相同的结构化线索主键的少量文本段,包括某个关键字,则直接记录以整数表示的文本段偏移值。
本申请还提供一种为半结构化数据构建NoSQL数据库索引的装置,包括:预处理单元,将半结构化源数据进行预处理,获得若干待存入数据库的文本段;数据表建立单元,用于建立将所述预处理后的文本段存储至数据表中;所述数据表具有第一组合主键,每个文本段对应所述第一组合主键存储至相应的记录中;所述第一组合主键包括结构化线索主键和序列值主键;所述结构化线索主键标识结构化线索,所述结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应所述文本段的序列值;倒排索引表建立单元,用于对所述预处理后的文本段建立倒排索引表;所述倒排索引表的主键为第二组合主键,所述第二组合主键包含结构化线索主键和关键字主键;所述倒排索引表中,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的结构化线索主键键值的索引值,在所述倒排索引表中位于不同的行。
优选地,所述第一组合主键包括数据源主键,所述数据源主键标识文本段的数据来源;所述第二组合主键同样包含上述数据源主键,具有不同的数据来源主键键值的索引值,在所述倒排索引表中位于不同的行。
优选地,对这些文本段建立所述数据表和倒排索引表时,一次性读取同一数据来源的具有相同结构化线索主键键值的所有文本段。
优选地,所述第一组合主键中,所述数据源主键,具体采用文本段的数据源加上文本段的结构化线索原始值的哈希值;和/或在所述第二组合主键中,所述数据源主键,具体采用文本段的数据源加上关键字的哈希值。
优选地,所述结构化线索为文本段的源数据生成时间。
优选地,所述结构化线索以确定的顺序被分割为若干连续区间,是将文本段的源数据生成时间分为若干时间段;所述每一区间分配一个特定的键值作为结构化线索主键的键值,是以所述时间段的起点、终点、中点或者所述时间段内的任意一点的时间值作为所述特定的键值,或者为所述时间段确定一个唯一的标识符号作为所述特定的键值。
优选地,所述序列值以基值加偏移值的方式表示;所述基值与所述结构化线索主键键值对应,即,相同的结构化线索主键键值对应同一个基值;所述偏移值以如下方式获得:对应同一个结构化线索主键键值的每个文本段,以所述结构化线索原始值的顺序为依据,按照顺序赋予相应的偏移值。
优选地,所述倒排索引表中,记录相关文本段标识作为索引值的具体方法是:为对应同一个数据源主键键值、并且结构化线索主键键值相同的所有文本段,提供一个基值;同时,为这些文本段提供一个二进制比特数组,所述比特数组中,以第i位二进制数标识第i个文本段是否包含所在记录的关键字主键中所列的关键字。
优选地,若对应同一个数据源主键并且具有相同的结构化线索主键的所有文本段,均包括某个关键字,则在倒排索引表对应所述关键字主键的记录中,其索引值记录为一个特殊符号,所述特殊符号表示所有文本段均包含所述关键字;或者,若对应同一个数据源主键并且具有相同的结构化线索主键的少量文本段,包括某个关键字,则直接记录以整数表示的文本段偏移值。
与现有技术相比,本申请的特点在于:本申请提供一种为半结构化数据构建NoSQL数据库索引的方法。该方法首先在对半结构化源数据进行预处理,获得若干待存入数据库的文本段,以数据源、结构化线索和序列值为主键,将文本段存储至与主键相对应的行中,形成数据表;然后,以数据源、结构化线索和关键字为主键,记录相关的文本段序列标识作为索引值。由于倒排索引是对应数据源、结构化线索和关键字建立,所以,查询时,是将数据源、结构化线索和关键字相结合,进行查询,因此,查询时仅需解析关键字在该数据源和结构化线索下,所对应的文本段的序列值即可,使得解析时间与数据源和结构化线索的某一个键值内的数据量成正比,而与系统内总数据量无关,因此,可以显著提高查询效率。
另外,本申请的优选实施例中,对文本段建立所述数据表和倒排索引表时,一次性读取来自同一个数据源并具有相同结构化线索主键键值的所有文本段,并为它们建立数据表和倒排索引表;在后续为数据源或者结构化线索主键键值不同的文本段建立数据表和倒排索引表时,不需要再读取原来的倒排索引表,直接插入新的倒排索引记录即可。因此,使用该优选的方案后,在建立或者更新NoSQL数据库索引时,无需读取原有的倒排索引表。由于倒排索引表的读操作比写操作更费时,因此,该方法能够有效提高数据库索引系统的更新效率,提高整个数据库系统的吞吐量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种半结构化数据基于NoSQL构建索引的方法流程图;
图2为本申请提供的一种半结构化数据基于NoSQL构建索引装置的结构单元框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,其为本申请一种半结构化数据基于NoSQL构建索引的方法第一实施例流程图。该实施例的应用环境是对具有多个服务器的网站的日志构建NoSQL数据库索引。对于服务器日志而言,其结构化线索就是日志生成时间。
在本实施例中,包括如下步骤:
步骤S110:将各个服务器产生的包含生成时间和日志源信息的日志文本进行预处理,获得若干待存入数据库的文本段。
每个服务器均不断处理各种网络业务,对这些网络业务,都需要进行记录,这些记录称为日志。
以下是一条服务器生成的日志的实例。
上述日志文本来自某个日志源,例如某个账户;该日志还记录了生成该日志的时间,即[01/Mar/2012:16:12:07+0800]。
这些原始的日志即为源数据。这些源数据记录形式主要是考虑服务器进行日志记录的需要,不符合NoSQL数据库记录的需要,为此,需要将其处理为符合需要的键值对形式的记录,该处理过程称为预处理。以下是经过预处理后的待存入数据库的文本段。
需要说明的是,所述半结构化数据是介于结构化的数据和完全无结构的数据之间的数据形式,本实施例中的日志就是一种半结构化数据形式;半结构数据具有至少一个结构化线索,在本实施例中,就是日志生成时间。对于每个数据源而言,一个具体的时间点上可能产生很多日志;此时,可以根据后续的Index的序号来区分不同的日志。
步骤S120:将在所述步骤S110中预处理后的文本段,存储至与第一组合主键相对应的行中,形成数据表;所述第一组合主键包含数据源主键、结构化线索主键和序列值主键;所述数据源主键标识文本段的数据来源;所述结构化线索主键标识结构化线索,该结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应该文本段的序列值。
本实施例提供的为半结构化数据构建NoSQL数据库索引的方法中,需要建立两个表格,第一个是用于存储预处理后的文本段的数据表,第二个是倒排索引表。本步骤即为建立数据表。以下就是该数据表的一个示例。
以下结合上述示例对该数据表进行说明。
建立数据表时,首先需要确定建立数据表的主键。本实施例中,为该数据表选择的主键需要考虑多方面的因素,其主键为组合主键,为与后续倒排索引表的组合主键相区别,该组合主键称为第一组合主键。
从上述数据表可以看出,所述第一组合主键中包含三个主键,第一主键为Hash=哈希(日志源信息+时间),第二主键为Time,即结构化线索主键,在本实施例中即为时间主键,第三主键为“序号”,即对应文本段的序列值主键。
所述第一主键Hash为每个文本段提供一个对应的ID号码,提供该ID号码的方式是,将文本段的日志源信息加上时间的哈希值生成该第一主键的键值。所述日志源信息,在本实施例中即生成该日志的账户;所述时间,即该文本段的源数据的生成时间(由于文本段已经经过预处理,为了将文本段预处理的时间和文本段所代表的日志的生成时间区别开,将后者称为文本段的源数据的生成时间)。每个文本段均具有日志源信息以及生成时间。引入日志源,是为了能够在一张数据表中支持多个不同的应用,这些应用之间可以共享存储;当进行查询和存储时通过标示不同的日志源,就能做到数据之间的隔离。通过加入时间,可以将同一个日志源的日志离散开,使其分布在不同的服务器,获得负载均衡的效果。同一个日志源在同一时间可能产生很多日志,此时,可以进一步依靠后续的序列值主键(表中的“序号”)区别,当然,这种情况一般不会出现。此外,通过考虑源数据生成时间,并经过哈希方式离散后,还能够将来自同一个账户的日志的记录位置被分散到不同的服务器上,在硬件上获得负载均衡化的效果。举例来说,若数据分片吞吐量的上线为8M/s,当采用数据源加文本段产生时间的哈希值作为主键之一,同一数据源不同时间段能够将文本段分发到不同的数据分片上,若采用8个分片,则吞吐量能达到64M/s,因此,采用数据源加文本段产生时间对文本段进行划分,能够进一步提升数据库系统的吞吐量。
所述第二主键为时间主键(表中的Time),该主键表征该文本段的结构化线索。但是,该主键的键值并不是直接使用日志生成时间,而是将日志生成时间在一个连续时间段内的所有日志源均赋予相同的键值。举例而言,将某日清晨零点到清晨零点十分产生的日志均以该时间段的起点,即某日清晨零点作为其键值,采取这样的方式,可以实现对日志记录的批处理化,这一点在后续倒排索引表建立的过程中予以详细说明。需要说明的是,对日志生成时间分段取键值的方式显然还可以采用其他方式,关键是能够唯一标识该段日志生成时间。例如,可以采用这段时间的终点时间,中点时间,乃至这段时间内的任意一点的时间,也可以为该段时间以某种方式提供一个唯一的标识符号作为该特定的键值。但无论采用何种方式,在整个处理过程中应当始终保持生成时间键值方式的一致性,避免赋值混乱。
所述第三主键为对应文本段的序列值主键(表中的“序号”)。该主键标识该文本段在数据表中的顺序,依据该主键,即可依序查找到文本段在该数据表中的位置。在本实施例中,所述序列值包含一个对应所述时间段主键键值的基值(表中表示为Index),对应同一个时间段主键键值的每个文本段,以日志生成时间的原始值为顺序依据,赋予相应的偏移值。使用上述基质加上偏移值的方式记录文本段的序列值,相比记录绝对序列值,可大幅节省存储开销。
步骤S130:对所述预处理后的文本段建立倒排索引表,该倒排索引表的主键为第二组合主键,该第二组合主键包含数据源主键、结构化线索主键和关键字主键;该倒排索引表中,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的数据来源或者不同的结构化线索主键键值的索引值,在该倒排索引表中位于不同的行。
该步骤S130中的倒排索引表是基于步骤S110预处理后的文本段建立,也不排除基于步骤S120建立的数据表建立;该步骤同样需要采用文本段生成时间作为结构化线索。以下是一个具体的倒排索引表的示例。
可以看出,该倒排索引表同样使用多个主键组成组合主键。为了与上述数据表的组合主键相区别,该倒排索引表的组合主键称为第二组合主键。从上述倒排索引表可以看出,第二组合主键包含的三个主键,分别为第一主键PartitionId、第二主键TermHash即关键字主键、第三主键Time,即时间主键。
所述第一主键PartitionID=哈希(日志源信息+关键字),该主键的作用相当于为每一个记录提供一个标识。该标识采用(日志源信息+关键字)的哈希值获得。引入日志源作为主键,是为了能够在该倒排索引表中支持多个不同的应用,这些应用之间可以共享存储,当进行查询和存储时,通过标识不同的日志源,就能做到数据之间的隔离;引入关键字作为主键信息,可以将不同关键字的倒排索引均匀分布到不同机器上。在不同时间主键键值下,可能出现完全相同的(日志源信息+关键字),则依赖所述时间主键区分这些完全相同的PartitionID。
所述第二主键TermHash为关键的哈希值,该主键可以作为查找关键字的依据,是倒排索引表必须具备的主键。
所述第三主键Time即时间主键,为结构化线索主键。该主键的键值取值方式和上述数据表的时间主键完全相同,其键值并不是直接使用日志生成时间,而是将日志生成时间在一个连续时间段内的所有日志均赋予相同的键值。并且,对应于同样一段时间范围,其键值取值和上述数据表的取值应当相同,以便两个表能够对应使用。
在上述倒排索引表中,对应上述主键记录的索引值分为两列,分别为基准序号和比特数组。所述基准序号,即对应某个时间主键键值的基值,和上述数据表的相同时间主键的基值应当相同。所述比特数组,是为具有相同基值的所有文本段提供一个二进制比特数组,该比特数组中,以第i位二进制数标识第i个文本段是否包含所在记录的关键字主键中所列的关键字,例如,以第i为1,标识具有时间主键键值的所有文本段中的第i个文本段包含该记录关键字主键对应的关键字。这样,通过基值加比特数组,就可以确定该数据源的该时间段内产生的所有文本段中,哪几个文本段具有该记录对应的关键字。由于对应一个时间键值的所有文本段的数量一般是有限的,可以以一个一定位数的二进制数即可完成对所有文本段是否包含某个关键字的记录,节省大量的空间。
对于上述倒排索引表可以进行如下解读。如果需要查找某个日志源在某一个时间段内,某个关键字出现在哪些文本中。则可以日志源信息和时间信息,确定其日志源主键和时间主键键值,根据所需查找的关键字,确定关键字主键键值,这样,就可以根据该倒排索引表查找到对应的基值和比特数组,结合两者即可获得所需文本段的序列号,根据该序列号即可从与该倒排索引表相配合的数据表中获得包含该关键字的所有文本段。
为了压缩数索引记录的数据量,在一些特殊情况下,所述索引值中的比特数组可以以下述方式替代:
当某个关键字在该数据源、该时间段内的所有文本中都存在时,可以为其设置一个特殊符合,该特殊符号表示所有文本段均包含该关键字。例如,可以记录为“ALL”;
当某个关键字在该数据源、该时间段内的只有少数文本中存在时,可以直接记录以整数表示的文本段偏移值;
通过上述两种方法,在关键字在各个文本中的分布极端稠密或者极端稀疏的情况下,均可以节约存储空间。
通过上述步骤110-130可以获知,由于本实施例通过以日志生成时间和文本段序列值为主键建立数据表,并建立以日志生成时间和关键字为主键的倒排索引表,所以,当用户以日志生成产生时间进行查询时,只需要解析相关日志源和相关时间段的倒排索引表即可,根据倒排索引表所提供的索引结果,在对应数据表可获得文本段内容,这样,就显著提高了查询效率,也就是说,查询时仅需要解析关键字所在时间段内的所有文本段,而无需将系统内的所有数据进行解析。
并且,基于上述数据表和倒排索引表,当需要对后续数据信息建立倒排索引时,即,根据新增数据对数据库索引进行更新的过程中,始终以时间主键为线索。具体而言,在倒排索引表中,只需要以数据源、关键字和时间段为主键,直接插入新的记录即可,不需要读取原有的倒排索引表,这样就节约了读取倒排索引表的时间,对于数据量较大的倒排索引表而言,读取倒排索引表所需要的时间比写入的时间更长,因此,该方案可以显著提高更新数据库索引的效率。
如果新增文本段的数据源和产生时间位于某个已经记录的数据源和时间主键的键值标识的范围内,则根据其中的关键字在该主键的键值标识中进行更新。如果某个关键字在该时间键值的所有记录范围内已经存在,则更改比特数组中的相应位即可。如果某个关键字在该数据源和时间键值的所有记录范围内不存在,则在该时间键值下新增该关键字主键。
如果数据库尚不存在包含该数据源以及时间的键值,则建立对应该时间的时间键值记录,再根据文本段中的关键字分别记录关键字对应的记录。
以上方法是对数据进行更新的通用方法,显然,和不具有结构化线索的NoSQL数据库索引相比,该方法只需要对具有相同的时间主键的记录进行读取,即可更新倒排索引表。而现有技术下要更新倒排索引表需要读取整个倒排索引表,而读取倒排索引表的时间一般比写入倒排索引表花费的时间更长,并且读取时间和倒排索引表的数据量正相关;因此,本实施例能够显著降低生成数据库索引的更新时间。
但在本实施例的应用场合,需要建立数据库索引的是网络服务不断产生的日志,并且,这些日志在生成后立刻涌向数据库,数据库索引的更新实时进行。对于这种典型的应用场景,数据库索引一般是一次建立,后续不会出现更新。对于数据库索引的建立方式,采用如下方式。
首先,对所有产生的日志进行步骤S110的预处理。
其次,将对应同一个数据源并且在一个时间主键键值的时间段范围内的所有预处理后的文本段一次性读入,并进行步骤S120和步骤S130的处理。例如,一个时间键值对应的时间段长度为十分钟,某日清晨零点到零点十分的来自账户A的所有数据全部预处理后,一次性读入,这些文本段均赋予相同的基值,并按照读入顺序赋予每个文本段偏移值。在建立倒排索引表时,一次性对这些文本段划分关键字,并建立倒排索引。在倒排索引表中,所有的记录具有相同的时间键值,其记录的索引值中,具有相同的基值;在比特数组中,则一次性将含有关键字的文本段置位。通过上述一次性读入一个时间段的所有日志,可以使建立数据库索引的过程只包括写操作,而完全不用读操作,这样就节省了大量读取倒排索引表的时间,
为便于说明本申请所提供的一种半结构化数据基于NoSQL构建索引的方法具体实现过程,结合上述实施例,通过以nginx服务器(10.249.201.117)的日志为例子说明采用上述建立的倒排索引,实现查询的过程。
根据上述实施例建立的倒排索引表和数据表,用户所要查询的内容譬如为:ip是10.1.168.193的机器报告在时间t访问nginx服务器(10.249.201.117)失败,要求调查一下原因。
已知信息是日志源,t所属的时间段为t1,需要查询ip为10.1.168.193但status不是200的日志。先以关键字10.1.168.193查询,得到基准序号为INDEX,倒排索引为bit_array(0,1)(该符号表示该比特数的0、1位被置位为1),再以关键字200进行查询,得到基准序号为INDEX,倒排索引为bit_array(0,2),两者取差集结果基准序号为INDEX,反向索引为bit_array(1)。最后由日志源,时间段t1,序号INDEX+1,可以获得原始日志,从中发现是SERVER500错误导致访问失败。
以下对采用比特数组记录索引值的优点进行说明。
上述按照日志源、时间划分主键的数据库索引方法,本身可能存在数据膨胀的问题,但是,结合比特数组记录索引值的方法,则可以在数据库索引的更新、查询效率和数据库索引的数据规模方面获得较好的平衡。
具体而言,在建立上述数据库时,将具有相同时间主键键值并且具有相同日志源的所有文本段视为一个长文档,一次性读入并对其建立索引。这一时间范围内的所有日志用一个基准序号Index和一个比特数组表示,第i比特位为1代表第(Index+i)条日志包含关键字。因此,这样记录的倒排索引只有原始日志数据一半多一点的大小,其具体的效果可以通过以下计算表现:假设我们将N条原始日志合并为一条建立索引,这N条日志共有T个关键字,平均每个关键字在其中M条出现,PartitionId,TermHash,Time均为4byte,INDEX为8byte,则:
若取N=300,M=50,则比值为17.4,可见优化后索引大小能下降一两个数量级。以实际观察的某一日的数据为例,当天处理的原始日志大小为1.16TB,生成的索引大小为0.69TB,索引日志比为0.59,可见该数据库索引系统能有效的解决索引大小膨胀的问题。
将多条数据信息合并建立倒排索引不仅能压缩倒排索引大小,提升系统处理的数据量,而且能够提升系统的吞吐量。原因是:原本对于N条数据信息,平均每一个关键字出现在M条数据信息中,则每个关键字需要M次读写NoSQL数据库,将N条数据信息合并成一条整体数据信息建立倒排索引后,则每个关键字只需插入新的一行,即一次写操作。
比特数组的方法适用于一般情况,若关键字在N条数据信息中出现的很稀疏或很密集,能够进一步压缩存储空间时,对应稀疏的情况,可以采用前面介绍的整数数组记录倒排索引信息,数组中每个整数I代表第(Index+I)条数据信息包含该关键字;若关键字在所有记录中出现,则可以使用ALL标志表示。这些方法,也都便于降低数据库索引的数据规模。
在上述实施例中,以日志生成时间作为数据库索引的结构化线索,实际上,也可能存在别的结构化线索,例如,对一个硬盘上的所有文件建立NoSQL数据库索引,则可以将字母顺序作为结构化线索,将一定字母排序范围的数据集中记录。
另外,该实施例中将不同的数据源分开记录在不同的位置,在某些情况下,也不排除所有数据源的记录统一记录,仅仅以所述结构化线索为该数据库索引提供索引线索。
与前述一种为半结构化数据构建NoSQL数据库索引的方法实施例相对应,本申请还公开了一种为半结构化数据构建NoSQL数据库索引的装置实施例,请参看图2,其为本申请一种为半结构化数据构建NoSQL数据库索引的装置实施例示意图。由于装置实施例基本相似于方法实施例,所建立的数据表以及倒排索引表也与方法实施例中相同,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
所述半结构化数据基于NoSQL构建索引的装置包括:
预处理单元201,用于将半结构化原数据进行预处理,获得若干待存入数据库的文本段;所述预处理可以采用以时间为序列的键值对形式,表示数据信息内容。
数据表建立单元202,用于建立将所述预处理后的文本段存储至数据表中,该数据表具有第一组合主键,每个文本段对应该第一组合主键存储至相应的记录中;所述第一组合主键包括数据源主键、结构化线索主键和序列值主键;所述数据源主键标识文本段的数据来源;所述结构化线索主键标识结构化线索,该结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应该文本段的序列值。
倒排索引表建立单元203,用于对所述预处理后的文本段建立倒排索引表;该倒排索引表的主键为第二组合主键,该第二组合主键包含数据源主键、结构化线索主键和关键字主键;该倒排索引表中,对应上述各个主键的键值,记录相关的文本段标识作为索引值;关键字主键相同,但具有不同的数据来源或者不同的结构化线索主键键值的索引值,在该倒排索引表中位于不同的行。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (18)
1.一种为半结构化数据构建NoSQL数据库索引的方法,其特征在于,包括以下步骤:
将半结构化源数据进行预处理,获得若干待存入数据库的文本段;
将所述预处理后的文本段存储至数据表中,所述数据表具有第一组合主键,每个文本段对应所述第一组合主键存储至相应的记录中;所述第一组合主键包括结构化线索主键和序列值主键;所述结构化线索主键标识结构化线索,所述结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应所述文本段的序列值;
对所述预处理后的文本段或所述数据表建立倒排索引表,所述倒排索引表的主键为第二组合主键,所述第二组合主键包含结构化线索主键和关键字主键;所述倒排索引表中,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的结构化线索主键键值的索引值,在所述倒排索引表中位于不同的行。
2.根据权利要求1所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于:
所述第一组合主键包括数据源主键,所述数据源主键标识文本段的数据来源;
所述第二组合主键同样包含上述数据源主键,具有不同的数据来源主键键值的索引值,在所述倒排索引表中位于不同的行。
3.根据权利要求2所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,对这些文本段建立所述数据表和倒排索引表时,一次性读取同一数据来源的具有相同结构化线索主键键值的所有文本段。
4.根据权利要求2所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,所述第一组合主键中,所述数据源主键,具体采用文本段的数据源加上文本段的结构化线索原始值的哈希值;和/或在所述第二组合主键中,所述数据源主键,具体采用文本段的数据源加上关键字的哈希值。
5.根据权利要求1-4任意一项所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,所述结构化线索为文本段的源数据生成时间。
6.根据权利要求5所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,所述结构化线索以确定的顺序被分割为若干连续区间,是将文本段的源数据生成时间分为若干时间段;所述每一区间分配一个特定的键值作为结构化线索主键的键值,是以所述时间段的起点、终点、中点或者所述时间段内的任意一点的时间值作为所述特定的键值,或者为所述时间段确定一个唯一的标识符号作为所述特定的键值。
7.根据权利要求1所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,所述序列值以基值加偏移值的方式表示;所述基值与所述结构化线索主键键值对应,即,相同的结构化线索主键键值对应同一个基值;所述偏移值以如下方式获得:对应同一个结构化线索主键键值的每个文本段,以所述结构化线索原始值的顺序为依据,按照顺序赋予相应的偏移值。
8.根据权利要求1所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,所述倒排索引表中,记录相关文本段标识作为索引值的具体方法是:为对应同一个数据源主键键值,并且结构化线索主键键值相同的所有文本段,提供一个基值;同时,为这些文本段提供一个二进制比特数组,所述比特数组中,以第i位二进制数标识第i个文本段是否包含所在记录的关键字主键中所列的关键字。
9.根据权利要求1所述的为半结构化数据构建NoSQL数据库索引的方法,其特征在于,若对应同一个数据源主键并且具有相同的结构化线索主键的所有文本段,均包括某个关键字,则在倒排索引表对应所述关键字主键的记录中,其索引值记录为一个特殊符号,所述特殊符号表示所有文本段均包含所述关键字;或者,若对应同一个数据源主键并且具有相同的结构化线索主键的少量文本段,包括某个关键字,则直接记录以整数表示的文本段偏移值。
10.一种为半结构化数据构建NoSQL数据库索引的装置,其特征在于,包括以下步骤:
预处理单元,将半结构化源数据进行预处理,获得若干待存入数据库的文本段;
数据表建立单元,用于建立将所述预处理后的文本段存储至数据表中;所述数据表具有第一组合主键,每个文本段对应所述第一组合主键存储至相应的记录中;所述第一组合主键包括结构化线索主键和序列值主键;所述结构化线索主键标识结构化线索,所述结构化线索以确定的顺序被分割为若干连续区间,每一区间分配一个特定的键值作为结构化线索主键的键值;所述序列值主键,是为每个文本段赋予唯一对应所述文本段的序列值;
倒排索引表建立单元,用于对所述预处理后的文本段建立倒排索引表;所述倒排索引表的主键为第二组合主键,所述第二组合主键包含结构化线索主键和关键字主键;所述倒排索引表中,对应上述各个主键的键值,记录相关的文本段序列标识作为索引值;关键字主键相同,但具有不同的结构化线索主键键值的索引值,在所述倒排索引表中位于不同的行。
11.根据权利要求10所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于:
所述第一组合主键包括数据源主键,所述数据源主键标识文本段的数据来源;
所述第二组合主键同样包含上述数据源主键,具有不同的数据来源主键键值的索引值,在所述倒排索引表中位于不同的行。
12.根据权利要求11所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,对这些文本段建立所述数据表和倒排索引表时,一次性读取同一数据来源的具有相同结构化线索主键键值的所有文本段。
13.根据权利要求11所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,所述第一组合主键中,所述数据源主键,具体采用文本段的数据源加上文本段的结构化线索原始值的哈希值;和/或在所述第二组合主键中,所述数据源主键,具体采用文本段的数据源加上关键字的哈希值。
14.根据权利要求10-13任意一项所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,所述结构化线索为文本段的源数据生成时间。
15.根据权利要求14所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,所述结构化线索以确定的顺序被分割为若干连续区间,是将文本段的源数据生成时间分为若干时间段;所述每一区间分配一个特定的键值作为结构化线索主键的键值,是以所述时间段的起点、终点、中点或者所述时间段内的任意一点的时间值作为所述特定的键值,或者为所述时间段确定一个唯一的标识符号作为所述特定的键值。
16.根据权利要求10所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,所述序列值以基值加偏移值的方式表示;所述基值与所述结构化线索主键键值对应,即,相同的结构化线索主键键值对应同一个基值;所述偏移值以如下方式获得:对应同一个结构化线索主键键值的每个文本段,以所述结构化线索原始值的顺序为依据,按照顺序赋予相应的偏移值。
17.根据权利要求10所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,所述倒排索引表中,记录相关文本段标识作为索引值的具体方法是:为对应同一个数据源主键键值、并且结构化线索主键键值相同的所有文本段,提供一个基值;同时,为这些文本段提供一个二进制比特数组,所述比特数组中,以第i位二进制数标识第i个文本段是否包含所在记录的关键字主键中所列的关键字。
18.根据权利要求10所述的为半结构化数据构建NoSQL数据库索引的装置,其特征在于,若对应同一个数据源主键并且具有相同的结构化线索主键的所有文本段,均包括某个关键字,则在倒排索引表对应所述关键字主键的记录中,其索引值记录为一个特殊符号,所述特殊符号表示所有文本段均包含所述关键字;或者,若对应同一个数据源主键并且具有相同的结构化线索主键的少量文本段,包括某个关键字,则直接记录以整数表示的文本段偏移值。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410025080.6A CN104794123B (zh) | 2014-01-20 | 2014-01-20 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
TW103118601A TW201530328A (zh) | 2014-01-20 | 2014-05-28 | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 |
US14/599,296 US9953102B2 (en) | 2014-01-20 | 2015-01-16 | Creating NoSQL database index for semi-structured data |
PCT/CN2015/070861 WO2015106711A1 (zh) | 2014-01-20 | 2015-01-16 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
PCT/US2015/011844 WO2015109250A1 (en) | 2014-01-20 | 2015-01-16 | CREATING NoSQL DATABASE INDEX FOR SEMI-STRUCTURED DATA |
HK15108267.2A HK1207708A1 (zh) | 2014-01-20 | 2015-08-26 | 種為半結構化數據構建 數據庫索引的方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410025080.6A CN104794123B (zh) | 2014-01-20 | 2014-01-20 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794123A CN104794123A (zh) | 2015-07-22 |
CN104794123B true CN104794123B (zh) | 2018-07-27 |
Family
ID=53542423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410025080.6A Active CN104794123B (zh) | 2014-01-20 | 2014-01-20 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9953102B2 (zh) |
CN (1) | CN104794123B (zh) |
HK (1) | HK1207708A1 (zh) |
TW (1) | TW201530328A (zh) |
WO (2) | WO2015109250A1 (zh) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607029B1 (en) * | 2014-12-17 | 2017-03-28 | Amazon Technologies, Inc. | Optimized mapping of documents to candidate duplicate documents in a document corpus |
US10135703B1 (en) | 2015-09-18 | 2018-11-20 | Amazon Technologies, Inc. | Generating creation performance metrics for a secondary index of a table |
US10191944B2 (en) * | 2015-10-23 | 2019-01-29 | Oracle International Corporation | Columnar data arrangement for semi-structured data |
CN105426421A (zh) * | 2015-11-03 | 2016-03-23 | 武汉地大信息工程股份有限公司 | 一种时态监测数据快速可视化方法及系统 |
US20170177641A1 (en) * | 2015-12-19 | 2017-06-22 | Viktor Charles Von Drakk | Method and device for correlating multiple tables in a database environment |
CN105681414B (zh) * | 2016-01-14 | 2019-01-01 | 深圳市博瑞得科技有限公司 | 一种避免Hbase数据热点的方法及系统 |
CN107239454B (zh) * | 2016-03-28 | 2020-11-17 | 福建天晴数码有限公司 | 基于文本数据库的检索方法及系统 |
US10185731B2 (en) * | 2016-03-31 | 2019-01-22 | Arm Limited | Indexing entries of a storage structure shared between multiple threads |
CN105930521B (zh) * | 2016-05-25 | 2019-10-29 | 努比亚技术有限公司 | 一种数据库管理装置和方法 |
CN107562762B (zh) * | 2016-07-01 | 2020-10-27 | 中国联合网络通信集团有限公司 | 数据索引构建方法及装置 |
CN107577531B (zh) * | 2016-07-05 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 负载均衡方法及装置 |
CN106446153A (zh) * | 2016-09-21 | 2017-02-22 | 广州特道信息科技有限公司 | 一种分布式newSQL数据库系统及方法 |
CN106776795B (zh) * | 2016-11-23 | 2020-05-12 | 黄健文 | 基于Hbase数据库的数据写入方法及装置 |
CN108427675B (zh) * | 2017-02-13 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 构建索引的方法及设备 |
WO2018182060A1 (ko) * | 2017-03-28 | 2018-10-04 | ㈜리얼타임테크 | 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법 |
US10353826B2 (en) | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
US10534719B2 (en) | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
US10592153B1 (en) * | 2017-09-05 | 2020-03-17 | Amazon Technologies, Inc. | Redistributing a data set amongst partitions according to a secondary hashing scheme |
US10819736B2 (en) | 2017-11-29 | 2020-10-27 | Arm Limited | Encoding of input to branch prediction circuitry |
US11126714B2 (en) | 2017-11-29 | 2021-09-21 | Arm Limited | Encoding of input to storage circuitry |
CN108133043B (zh) * | 2018-01-12 | 2022-07-29 | 福建星瑞格软件有限公司 | 一种基于大数据的服务器运行日志结构化存储方法 |
CN108427736B (zh) * | 2018-02-28 | 2020-01-17 | 华为技术有限公司 | 一种用于查询数据的方法 |
EP3785133A4 (en) * | 2018-04-24 | 2022-01-19 | Von Drakk, Viktor | IMPROVED METHOD AND APPARATUS FOR CORRELING MULTIPLE TABLES IN A DATABASE ENVIRONMENT |
CN110569217A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视系统技术有限公司 | 流式文件系统中的索引数据更新方法、装置 |
CN108776678B (zh) * | 2018-05-29 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 基于移动端NoSQL数据库的索引创建方法及装置 |
US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
US11461302B1 (en) | 2018-08-14 | 2022-10-04 | Amazon Technologies, Inc. | Storing multiple instances of data items to implement key overloading in database tables |
US11157466B2 (en) | 2018-09-04 | 2021-10-26 | Salesforce.Com, Inc. | Data templates associated with non-relational database systems |
CN109284340B (zh) * | 2018-09-14 | 2020-11-20 | 清华大学 | 资源受限智能对象中关系型数据的存储及检索方法 |
US11030242B1 (en) * | 2018-10-15 | 2021-06-08 | Rockset, Inc. | Indexing and querying semi-structured documents using a key-value store |
CN111352983A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市优必选科技有限公司 | 业务属性动态扩展方法、装置、计算机设备及存储介质 |
CN109800336B (zh) * | 2019-01-30 | 2020-12-25 | 百度在线网络技术(北京)有限公司 | 基于键值对存储系统的表格实现方法、装置、设备和介质 |
CN110032604B (zh) | 2019-02-02 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 数据存储装置、转译装置及数据库访问方法 |
US11321392B2 (en) | 2019-02-19 | 2022-05-03 | International Business Machines Corporation | Light weight index for querying low-frequency data in a big data environment |
WO2021012211A1 (zh) | 2019-07-24 | 2021-01-28 | 华为技术有限公司 | 一种为数据建立索引的方法以及装置 |
TWI703459B (zh) * | 2019-07-25 | 2020-09-01 | 中華電信股份有限公司 | 用於可定址索引之搜尋系統及搜尋方法 |
CN112559514B (zh) * | 2019-09-25 | 2023-04-25 | 上海哔哩哔哩科技有限公司 | 一种信息处理方法及系统 |
CN110647512B (zh) * | 2019-09-29 | 2022-05-24 | 北京思维造物信息科技股份有限公司 | 一种数据存储和分析方法、装置、设备和可读介质 |
CN111078682A (zh) * | 2019-10-17 | 2020-04-28 | 贝壳技术有限公司 | 一种业务数据索引构建方法及系统 |
CN110825748B (zh) * | 2019-11-05 | 2023-05-16 | 平凯星辰(北京)科技有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111782645A (zh) * | 2019-11-29 | 2020-10-16 | 北京沃东天骏信息技术有限公司 | 数据处理方法和装置 |
CN112905587A (zh) * | 2019-12-04 | 2021-06-04 | 北京金山云网络技术有限公司 | 数据库的数据管理方法、装置及电子设备 |
CN111259012B (zh) * | 2020-01-20 | 2024-03-12 | 中国平安人寿保险股份有限公司 | 数据均匀化方法、装置、计算机设备及存储介质 |
CN111464496B (zh) * | 2020-03-05 | 2022-07-05 | 奇安信科技集团股份有限公司 | 数据传输方法及装置、系统、存储介质、电子装置 |
CN111353012B (zh) * | 2020-03-09 | 2023-10-17 | 咪咕文化科技有限公司 | 空间文本数据缓存处理方法、装置、电子设备及存储介质 |
CN111881323B (zh) * | 2020-06-19 | 2022-05-20 | 四川新网银行股份有限公司 | 基于排序字段与时间路由的表分离方法 |
CN112148698A (zh) * | 2020-09-10 | 2020-12-29 | 深圳供电局有限公司 | 一种大数据平台的日志审计方法及系统 |
US11762859B2 (en) | 2020-09-28 | 2023-09-19 | International Business Machines Corporation | Database query with index leap usage |
CN112579649A (zh) * | 2020-12-24 | 2021-03-30 | 成都中科大旗软件股份有限公司 | 一种基于索引技术实现k-v逆转检索方法 |
US11308058B1 (en) | 2021-01-04 | 2022-04-19 | International Business Machines Corporation | Building and using combined multi-type sub-indices to search NoSQL databases |
CN113127490B (zh) * | 2021-04-23 | 2023-02-24 | 山东英信计算机技术有限公司 | 一种键名称生成方法、装置和计算机可读存储介质 |
CN113282616A (zh) * | 2021-05-19 | 2021-08-20 | 华润电力技术研究院有限公司 | 一种增量的时序数据冲突检测方法、装置和存储介质 |
CN113220943B (zh) * | 2021-06-04 | 2022-09-30 | 上海天旦网络科技发展有限公司 | 一种半结构化流量数据中的目标信息定位方法及系统 |
CN114510534B (zh) * | 2022-01-28 | 2022-09-06 | 广东航宇卫星科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN117120995A (zh) * | 2022-03-24 | 2023-11-24 | 维萨国际服务协会 | 有效连接时间序列数据表的系统、方法和计算机程序产品 |
CN114490674B (zh) * | 2022-04-18 | 2022-07-05 | 北京奥星贝斯科技有限公司 | 分区表建立、针对分区表的数据写入、读取方法及装置 |
US11928099B1 (en) | 2022-12-16 | 2024-03-12 | Amazon Technologies, Inc. | Time and value ordered data objects for a backup of a data set |
CN116541427B (zh) * | 2023-06-30 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、设备及存储介质 |
CN116719822B (zh) * | 2023-08-10 | 2023-12-22 | 深圳市连用科技有限公司 | 一种海量结构化数据的存储方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620617A (zh) * | 2009-07-28 | 2010-01-06 | 中兴通讯股份有限公司 | 日志文件的查询和处理的方法及装置 |
CN101944115A (zh) * | 2010-09-14 | 2011-01-12 | 杭州海康威视数字技术股份有限公司 | 一种日志搜索方法和系统 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591272B1 (en) | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
US8566324B1 (en) | 2010-09-12 | 2013-10-22 | Giovanni M Sacco | Inverted index and inverted list process for storing and retrieving information |
US9436710B2 (en) * | 2010-09-28 | 2016-09-06 | Redis Labs Ltd. | Systems, methods, and media for managing an in-memory NoSQL database |
US20120304247A1 (en) * | 2011-05-25 | 2012-11-29 | John Badger | System and process for hierarchical tagging with permissions |
US8930320B2 (en) | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
US20130124545A1 (en) | 2011-11-15 | 2013-05-16 | Business Objects Software Limited | System and method implementing a text analysis repository |
US9135647B2 (en) | 2012-06-18 | 2015-09-15 | Amdocs Software Systems Limited | Methods and systems for flexible and scalable databases |
US9378263B2 (en) | 2012-06-19 | 2016-06-28 | Salesforce.Com, Inc. | Method and system for creating indices and loading key-value pairs for NoSQL databases |
US8775464B2 (en) | 2012-10-17 | 2014-07-08 | Brian J. Bulkowski | Method and system of mapreduce implementations on indexed datasets in a distributed database environment |
US9111012B2 (en) | 2012-11-26 | 2015-08-18 | Accenture Global Services Limited | Data consistency management |
US10496640B2 (en) | 2012-12-19 | 2019-12-03 | Salesforce.Com, Inc. | Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands |
CN103473324A (zh) * | 2013-09-13 | 2013-12-25 | 国家电网公司 | 基于非结构化数据存储的多维业务属性检索装置及方法 |
-
2014
- 2014-01-20 CN CN201410025080.6A patent/CN104794123B/zh active Active
- 2014-05-28 TW TW103118601A patent/TW201530328A/zh unknown
-
2015
- 2015-01-16 US US14/599,296 patent/US9953102B2/en active Active
- 2015-01-16 WO PCT/US2015/011844 patent/WO2015109250A1/en active Application Filing
- 2015-01-16 WO PCT/CN2015/070861 patent/WO2015106711A1/zh active Application Filing
- 2015-08-26 HK HK15108267.2A patent/HK1207708A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620617A (zh) * | 2009-07-28 | 2010-01-06 | 中兴通讯股份有限公司 | 日志文件的查询和处理的方法及装置 |
CN101944115A (zh) * | 2010-09-14 | 2011-01-12 | 杭州海康威视数字技术股份有限公司 | 一种日志搜索方法和系统 |
CN102929936A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150205885A1 (en) | 2015-07-23 |
US9953102B2 (en) | 2018-04-24 |
CN104794123A (zh) | 2015-07-22 |
WO2015109250A1 (en) | 2015-07-23 |
WO2015106711A1 (zh) | 2015-07-23 |
TW201530328A (zh) | 2015-08-01 |
HK1207708A1 (zh) | 2016-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104794123B (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
US10176225B2 (en) | Data processing service | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
CN108600321A (zh) | 一种基于分布式内存云的图数据存储方法和系统 | |
US9047330B2 (en) | Index compression in databases | |
US10061834B1 (en) | Incremental out-of-place updates for datasets in data stores | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
US20180144061A1 (en) | Edge store designs for graph databases | |
CN102890678A (zh) | 一种基于格雷编码的分布式数据布局方法及查询方法 | |
US11868328B2 (en) | Multi-record index structure for key-value stores | |
US20230024345A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
CN110413631B (zh) | 一种数据查询方法及装置 | |
CN113901279B (zh) | 一种图数据库的检索方法和装置 | |
CN103365987A (zh) | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 | |
CN114329096A (zh) | 一种原生图数据库处理方法及系统 | |
CN112912870A (zh) | 租户标识符的转换 | |
CN109165262A (zh) | 一种关系型大表的分片集群系统及其分片方法 | |
CN102597969A (zh) | 带属性的键值存储的数据库管理装置及其键值存储结构的高速缓存装置 | |
CN111221814A (zh) | 二级索引的构建方法、装置及设备 | |
JP4914117B2 (ja) | データ処理システム | |
Singh | NoSQL: A new horizon in big data | |
Chai et al. | A document-based data warehousing approach for large scale data mining |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1207708 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |