CN110716900A - 一种数据查询方法和系统 - Google Patents
一种数据查询方法和系统 Download PDFInfo
- Publication number
- CN110716900A CN110716900A CN201910958773.3A CN201910958773A CN110716900A CN 110716900 A CN110716900 A CN 110716900A CN 201910958773 A CN201910958773 A CN 201910958773A CN 110716900 A CN110716900 A CN 110716900A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- query
- information
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书的其中一些实施例公开了一种数据查询方法和系统。所述数据查询方法包括:获取磁盘中有效的文件列表,所述有效的文件列表包括至少一个文件;获取所述至少一个文件对应的信息摘要;根据所述信息摘要查询所述至少一个文件是否存在缓存的查询结果,是则获取所述查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存。本说明书的其中一些实施例还公开了数据删除的方法,某条数据删除时将该条数据打上删除标记,并不真正删除文件中的原始数据。本说明书的其中一些实施例还公开了文件合并的方法,只有当记录数超过阈值时,才进行文件合并,文件合并的频率较低。
Description
技术领域
本说明书涉及数据处理领域,特别涉及一种数据查询方法和系统。
背景技术
随着信息分享技术的快速发展和普及,软件系统的用户访问量大幅度提升。访问用户的增加使得查询条件越来越复杂,数据需求量也越来越大。为了提高用户的访问速度并降低后端服务器的压力,在数据库、磁盘等慢速系统或设备的前端,一般采用缓存技术,利用内存等访问速度较快的设备存储用户经常访问的数据。但是多维度的在线查询,通常会涉及到大量的数据读取与在线计算,尤其当数据存储在磁盘上时,还需要从磁盘上调取数据,这对服务器的负载和响应耗时都构成了极大的考验。
因此,希望提供一种可以在不降低时效性的基础上,提升查询效率、减少资源消耗的数据查询方法。
发明内容
本说明的其中一个实施例提供一种数据查询方法。该数据查询方法包括:获取磁盘中有效的文件列表,所述有效的文件列表包括至少一个文件;获取查询条件,并基于所述查询条件在所述至少一个文件的缓存中获取所述至少一个文件的信息摘要;根据所述至少一个文件的信息摘要判断所述至少一个文件是否变化,当所述至少一个文件未变化则获取所述至少一个文件缓存的查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存;过滤所述查询结果中标记删除的数据记录。在一些实施例中,所述至少一个文件的信息摘要可以利用信息摘要算法确定。
本说明的其中一些实施例还公开了一种文件合并的方法。该文件合并方法包括:在接收到数据更新请求时,先将数据更新信息写入内存;当所述内存中更新信息的记录数等于第一阈值时,将所述内存中记录的所述更新信息序列化到磁盘;当所述磁盘中文件的个数达到第二阈值,且所述文件的所述更新信息的记录数满足设定的合并条件时,将所述文件合并写入所述磁盘;清理所述磁盘中合并文件对应的原始数据文件,并将所述合并文件纳入所述文件列表。
在一些实施例中,本说明提供的数据查询方法还可以当数据需要更新时,对待更新数据对应的记录逻辑标记删除,并将更新数据写入所述内存。
本说明的另一方面提供了一种数据查询系统,该系统包括获取模块、查找模块和数据处理模块;所述获取模块用于获取磁盘中的有效文件列表,以及至少一个文件对应的信息摘要;所述查找模块用于根据所述信息摘要查询所述至少一个文件是否存在缓存的查询结果,是则获取所述查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存;所述数据处理模块用于过滤所述查询结果中标记删除的数据记录,以及当数据需要更新时,对待更新数据对应的记录逻辑标记删除,并将更新数据写入所述内存。
在一些实施例中,所述数据处理模块进一步包括数据写入单元和数据处理单元;所述数据写入单元用于响应于数据更新请求将数据更新信息写入存储设备,并对所述存储设备中个数达到第二阈值且满足合并条件的文件进行合并;所述数据处理单元用于清理所述合并文件对应的原始数据文件,并将所述合并文件纳入所述文件列表。
本说明的另一方面提供一种数据查询装置,包括至少一个存储介质和至少一个处理器,其特征在于,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如前所述的数据查询方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明一些实施例所示的一种示例性计算设备的示意图;
图2是根据本说明一些实施例所示的数据查询方法的示例性流程图;
图3是根据本说明一些实施例所示的数据查询系统的模块图;
图4是根据本说明一些实施例所示的文件合并方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明一些实施例所示的一种示例性计算设备的示意图。
在一些实施例中,数据查询系统300的操作可以在计算设备100上实现。例如,数据查询系统300中的数据处理模块330可以在计算设备100上实施并执行本说明所公开的数据处理功能。如图1所示,计算设备100可以包括总线110、处理器120、只读存储器130、随机存储器140、通信端口150、输入/输出接口160和硬盘170。
处理器120可以执行计算指令(程序代码)并执行本说明书描述的数据查询系统300的功能。所述计算指令可以包括程序、对象、组件、数据结构、过程、模块和功能(所述功能指本说明书中描述的特定功能)。例如,处理器120可以处理从数据查询系统300的其他任何组件获取的与数据查询相关的数据。在一些实施例中,处理器120可以包括微控制器、微处理器、精简指令集计算机(RISC)、专用集成电路(ASIC)、应用特定指令集处理器(ASIP)、中央处理器(CPU)、图形处理单元(GPU)、物理处理单元(PPU)、微控制器单元、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、高级RISC机(ARM)、可编程逻辑器件以及能够执行一个或多个功能的任何电路和处理器等,或其任意组合。仅为了说明,图1中的计算设备100只描述了一个处理器,但需要注意的是,本说明书中的计算设备100还可以包括多个处理器。
计算设备100的存储器(例如,只读存储器(ROM)130、随机存储器(RAM)140、硬盘170等)可以存储从数据查询系统300的任何其他组件获取的数据/信息。示例性的ROM可以包括掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(PEROM)、电可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字通用盘ROM等。示例性的RAM可以包括动态RAM(DRAM)、双倍速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)和零电容(Z-RAM)等。
输入/输出接口160可以用于输入或输出信号、数据或信息。在一些实施例中,输入/输出接口160可以使用户与数据查询系统300进行联系。在一些实施例中,输入/输出接口160可以包括输入装置和输出装置。示例性输入装置可以包括键盘、鼠标、触摸屏和麦克风等,或其任意组合。示例性输出装置可以包括显示设备、扬声器、打印机、投影仪等或其任意组合。示例性显示装置可以包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、曲面显示器、电视设备、阴极射线管(CRT)等或其任意组合。通信端口150可以连接到网络以便数据通信。所述连接可以是有线连接、无线连接或两者的组合。有线连接可以包括电缆、光缆或电话线等或其任意组合。无线连接可以包括蓝牙、Wi-Fi、WiMax、WLAN、ZigBee、移动网络(例如,3G、4G或5G等)等或其任意组合。在一些实施例中,通信端口150可以是标准化端口,如RS232、RS485等。在一些实施例中,通信端口150可以是专门设计的端口。
在一些实施例中,计算设备100可以是单个服务器或服务器组。服务器组可以是集中式的或分布式的。在一些实施例中,计算设备100可以是本地的或远程的。在一些实施例中,计算设备100还可以在云平台上实现。
图2是根据本说明一些实施例所示的数据查询方法的示例性流程图。数据查询方法200可以由数据查询系统300执行。如图2所示,该数据查询方法200可以包括:
步骤210,获取磁盘中有效的文件列表。具体的,步骤210可以由数据查询系统300(如获取模块310)执行。
在一些实施例中,文件列表可以用于反映系统中的有效文件以及该文件的相关信息。在一些实施例中,有效文件可以用于反映磁盘中可以接受查询的文件。例如,有效文件可以包括合并文件、尚未合并的原始文件等。在一些实施例中,文件的相关信息可以包括文件名称、文件类型、文件删除标记信息、文件信息摘要、文件查询条件信息、查询时间信息、文件访问次数信息、最后访问时间信息等中的一种或其任意组合。在一些实施例中,文件列表可以包括数字、字母、字符、文字等中的一种或其任意组合。在一些实施例中,文件列表可以包括直观信息和/或间接信息。例如,文件列表中的文件名称可以是文件关键词等可以直观反映该文件信息的名称,也可以是基于数字、字母、字符等一种或多种组合的可以间接反映该文件信息的名称。在一些实施例中,文件列表中可以包括一个或多个文件的信息。
在一些实施例中,数据查询系统300可以基于数据查询记录建立和/或更新文件列表。在一些实施例中,数据查询记录可以包括当前数据查询记录和/或历史数据查询记录。在一些实施例中,数据查询系统300可以基于系统写入数据建立和/或更新文件列表。
步骤220,获取查询条件,并基于查询条件在有效文件的缓存中获取文件的信息摘要。具体的,步骤220可以由数据查询系统300(如获取模块310)执行。
在一些实施例中,查询条件可以用于查询特定的信息数据。在一些实施例中,查询条件可以包括汉字、数字、字符、字母、单词等中的一种或其任意组合。在一些实施例中,查询条件可以包括查询指标集合、查询参数集合等中的一种或其任意组合。在一些实施例中,查询指标可以用于描述需要查询的信息指向。在一些实施例中,查询参数可以用于限定需要查询的信息。在一些实施例中,查询参数可以包括人物属性、性别属性、年龄属性、地址属性、时间属性等中的一种或其任意组合。
在一些实施例中,数据查询系统300可以从输入/输出接口160获取数据查询条件。在一些实施例中,数据查询系统300获取的查询条件可以是一维查询条件或多维查询条件。在一些实施例中,数据查询系统300可以对获取的一维查询条件或多维查询条件进行处理。在一些实施例中,查询条件的处理可以包括删除、合并、格式转换等中的一种或其任意组合。
在一些实施例中,信息摘要可以用于反映文件的摘要信息。在一些实施例中,文件信息摘要可以包括文件记录的数据信息、对应的查询条件等中的一种或其任意组合。在一些实施例中,文件的信息摘要具有唯一性。例如,记录数据的文件发生变化,其对应的信息摘要将同样发生变化,使用原始信息摘要将无法匹配到变化后的文件。在一些实施例中,数据查询系统300可以利用信息摘要算法(Message Digest Algorithm,MD5)确定至少一个文件的信息摘要。在一些实施例中,数据查询系统300可以利用其他可行的方式确定至少一个文件的信息摘要。例如,数据查询系统300可以利用CRC(Cyclic Redundancy Check,循环冗余校验)算法、SHA(Secure Hash Algorithm,安全散列)算法、Adler32算法等一种或多种的组合确定至少一个文件的信息摘要。在一些实施例中,数据查询系统300可以在至少一个文件发生变化后重新确定该文件的信息摘要,并将其纳入文件缓存。
步骤230,判断文件是否存在缓存的查询结果。具体的,步骤230可以由数据查询系统300(如查找模块320)执行。
在一些实施例中,数据查询系统300可以基于信息摘要判断文件是否存在缓存的查询结果。在一些实施例中,数据查询系统300可以基于文件是否变化,判断该文件是否存在缓存的查询结果。例如,文件发生变化,则文件不存在缓存的查询结果。在一些实施例中,数据查询系统300可以根据文件信息摘要是否发生变化,判断文件是否变化。例如,文件信息摘要变化,则该文件发生变化(如文件中数据更新、删除等)。
在一些实施例中,数据查询系统300可以通过在文件缓存中查找满足查询条件的查询结果,判断文件信息摘要是否发生变化。例如,文件缓存中找到查询结果,则文件信息摘要未发生变化,否则表示文件信息摘要发生变化。在一些实施例中,数据查询系统300可以利用关键词方法查找查询结果。在一些实施例中,关键词的提取方法可以包括分词及过滤处理、训练语义识别模型、TF-IDF、TextRank、Rake、Topic-Model、卡方统计、同义词规则、布尔关联规则、位置规则、信息增益、互信息、几率比、交叉熵、类间信息差等中的一种或其任意组合。在一些实施例中,关键词可以包括基于数据信息提取的关键词生成的上位词、下位词、近义词、反义词等相关词,以及这些词之间的关系等。在一些实施例中,数据查询系统300可以基于查询条件匹配法查找查询结果。在一些实施例中,数据查询系统300可以利用信息索引方法查找查询结果。例如,索引中可以包括查询条件、满足该查询条件的数据信息等。
步骤240,若文件存在缓存的查询结果,则获取该查询结果。具体的,步骤240可以由数据查询系统300(如查找模块320)执行。
在一些实施例中,数据查询系统300可以获取在文件缓存中查找到的查询结果。在一些实施例中,查询结果可以包括数据指向信息、数据记录、数据文件等中的一种或其任意组合。
步骤250,若文件不存在缓存的查询结果,则查询信息摘要对应的文件并将查询结果进行缓存。具体的,步骤250可以由数据查询系统300(如查找模块320)执行。
在一些实施例中,数据查询系统300可以基于查询条件,在文件中检索满足当前查询条件的查询结果。在一些实施例中,数据查询系统300可以通过关键词匹配方法在文件中查找确定查询结果。在一些实施例中,数据查询系统300可以通过查询条件匹配方法在文件中查找确定查询结果。在一些实施例中,数据查询系统300可以基于信息摘要查找确定查询结果。在一些实施例中,查询结果可以为一个或多个数据信息。在一些实施例中查询结果可以包括数据指向信息、数据记录、数据文件等中的一种或其任意组合。
在一些实施例中,数据查询系统300可以通过对至少一个文件的子查询返回的数据结果进行过滤确定查询结果。在一些实施例中,数据查询系统300可以通过合并过滤后的至少一个子查询的返回结果确定查询结果。在一些实施例中,数据查询系统300可以基于标记信息过滤返回数据中的失效数据。在一些实施例中,标记信息可以包括删除标记、更新标记等中的一种或其任意组合。在一些实施例中,数据查询系统300可以通过阈值设定的方式,确定是否进行过滤操作。例如,数据查询系统300可以根据数据的标记时间确定一个时间阈值,当数据查询操作的时间超过该阈值时,进行过滤操作;当数据查询操作的时间未超过该阈值时,不进行过滤操作。在一些实施例中,数据查询系统300可以通过过滤子查询返回数据中的重复数据确定查询结果。在一些实施例中,数据查询系统300可以将确定的最终查询结果加入文件缓存。
在一些实施例中,数据查询系统300可以通过过滤查询结果中标记删除的数据记录生成最终查询结果。在一些实施例中,数据查询系统300可以通过阈值设定的方式,确定是否进行过滤操作。在一些实施例中,数据查询系统300可以基于当前数据查询记录更新文件列表。
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤230中,数据查询系统300可以重新计算文件的信息摘要,通过对比原始信息摘要与重新计算的信息摘要判断文件是否变化。又例如,步骤230中,数据查询系统300可以将更新之后的文件的信息摘要纳入文件列表,原始的信息摘要加入缓存,通过对比文件列表中的信息摘要与缓存中的信息摘要判断文件是否变化。
图3是根据本说明一些实施例所示的数据查询系统的模块图。如图3所示,该数据查询系统300可以包括获取模块310、查找模块320和数据处理模块330。
获取模块310可以用于获取磁盘中的有效文件列表,以及至少一个文件对应的信息摘要。在一些实施例中,获取模块310可以从文件列表中获取至少一个文件对应的信息摘要。在一些实施例中,获取模块310可以从文件缓存中获取至少一个文件对应的信息摘要。在一些实施例中,获取模块310可以利用信息摘要算法确定至少一个文件的信息摘要。在一些实施例中,获取模块310可以基于数据查询记录确定至少一个文件的信息摘要。
在一些实施例中,获取模块310还可以用于获取查询条件和数据更新请求。在一些实施例中,获取模块310可以通过输入/输出接口160获取数据查询条件。在一些实施例中,查询条件的输入方式可以包括语音输入、文本输入、鼠标输入、触摸输入、键盘输入、扫描输入、选择输入等中的一种或其任意组合。在一些实施例中,获取模块310可以对获取的查询条件进行处理。在一些实施例中,查询条件的处理可以包括删除、合并、格式转换等中的一种或其任意组合。
查找模块320可以用于基于查询条件进行数据查找。在一些实施例中,查找模块320可以用于在文件缓存中查找查询结果。在一些实施例中,查找模块320可以用于在系统文件中查询满足查询条件的查询结果。在一些实施例中,系统文件可以包括磁盘文件、内存文件等中的一种或其任意组合。
数据处理模块330可以用于对数据查询结果进行处理以及数据的写入。在一些实施例中,数据处理模块330可以对查询结果进行过滤。在一些实施例中,数据处理模块330可以用于基于标记信息对查询结果进行过滤。在一些实施例中,数据处理模块330可以用于根据数据查询记录建立和/或更新文件列表。在一些实施例中,数据处理模块330还可以用于基于写入数据建立和/或更新文件列表。
数据处理模块330进一步可以包括数据写入单元331和数据处理单元335。在一些实施例中,数据写入单元331可以用于将数据更新信息写入系统存储器(如,只读存储器(ROM)130、随机存储器(RAM)140、硬盘170等)。在一些实施例中,数据写入单元331还可以用于对系统写入数据进行合并。在一些实施例中,数据写入单元331还可以用于清理磁盘中合并文件对应的原始数据文件,并将合并文件纳入文件列表。在一些实施例中,数据处理单元335可以用于当数据需要更新时,对待更新数据对应的记录逻辑标记删除,并将更新数据写入内存。
在一些实施例中,数据查询系统300还可以包括其他执行模块。例如,数据查询系统300还可以包括发送模块、数据标记模块、数据过滤模块等一种或多种的任意组合。
应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于数据查询系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可以在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图3中披露的获取模块310、查找模块320和数据处理模块330可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,查找模块320和数据处理模块330可以是两个模块,也可以是一个模块同时具有查找功能和数据处理功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图4是根据本说明一些实施例所示的文件合并方法的示例性流程图。具体的,文件合并方法400可以由数据查询系统300(如数据处理模块330)执行。如图4所示,该方法可以包括:
步骤410,响应于数据更新请求,将数据更新信息写入内存。
在一些实施例中,数据更新信息可以用于反映系统中数据的变化。在一些实施例中,当数据查询系统300接收到数据更新请求时,可以控制数据处理模块330(如数据写入单元331、数据处理单元335等)对相应的数据进行处理。在一些实施例中,数据处理模块330可以响应于系统的数据处理信号,控制数据写入单元331将相应数据的更新信息写入内存。在一些实施例中,数据查询系统300可以记录更新信息的写入时间。在一些实施例中,当内存文件中数据更新信息的记录数超过预设的第一阈值时,数据写入单元331可以通过在内存中新建文件完成其他数据更新信息的写入。在一些实施例中,第一阈值的大小与数据的写入频率和/或数据的查询频率正相关。
步骤420,当内存中更新信息的记录数等于第一阈值时,将内存中记录的更新信息序列化到磁盘。
在一些实施例中,数据处理模块330可以将内存中更新信息的记录数等于第一阈值的文件序列化到磁盘。在一些实施例中,将内存中的数据记录序列化到磁盘,可以减缓内存的存储压力,提升系统的数据查询效率。在一些实施例中,数据查询系统300可以基于数据的写入频率设定第一阈值。在一些实施例中,第一阈值的大小与数据的写入频率正相关。在一些实施例中,数据查询系统300可以基于数据的查询频率设定第一阈值。在一些实施例中,第一阈值的大小与数据的查询频率正相关。在一些实施例中,数据查询系统300可以基于数据写入频率以及数据查询频率设定第一阈值。在一些实施例中,基于数据写入频率、数据查询频率设定第一阈值,可以降低磁盘资源的耗费,提升数据的查询结果命中率。
步骤430,获取磁盘中更新信息的记录数满足设定的合并条件的文件,将个数达到第二阈值的文件合并写入磁盘。
在一些实施例中,当序列化到磁盘的数据更新信息满足设定的合并条件时,数据查询系统300可以将磁盘中个数达到预设第二阈值的该类文件合并写入磁盘。在一些实施例中,磁盘文件的合并条件为文件大小相等,且该文件的数据更新信息的记录数不大于预设的第三阈值。在一些实施例中,数据查询系统300可以基于系统中数据的写入总量确定第三阈值。在一些实施例中,第三阈值的大小与系统中数据的写入总量正相关。在一些实施例中,第三阈值的设定可以减少磁盘中合并文件的数量,减缓磁盘存储压力,提高数据查询效率。在一些实施例中,磁盘的合并条件可以为文件的数据更新信息的记录数不大于预设的第三阈值。在一些实施例中,数据查询系统300可以基于数据写入频率和/或数据查询频率设定第二阈值。在一些实施例中,第二阈值的大小与数据写入频率、数据查询频率正相关。在一些实施例中,基于数据写入频率、数据查询频率设定第二阈值,可以降低磁盘资源的耗费,提升数据的查询结果命中率。例如,若系统中最终写入的数据总量为10亿条,则第三阈值可以设定为5000万条,此时第一阈值可以根据单条数据记录的大小设定为20兆,第二阈值可以设定为10。
在一些实施例中,磁盘中满足合并条件的原始文件在合并过程中,该原始文件可以接受数据查询系统300的数据查询。在一些实施例中,数据查询系统300可以将满足合并条件的文件合并写入磁盘的新建文件,并在合并完成之后清理该合并文件对应的原始数据文件。在一些实施例中,数据查询系统300可以将合并文件纳入磁盘的有效文件列表。
在一些实施例中,当系统中的数据需要更新时,数据查询系统300可以对待更新数据对应的记录逻辑标记删除。例如,已写入的某条数据过期,需要删除,则对该数据对应的记录逻辑进行删除标记。在一些实施例中,当系统中的数据需要更新时,数据查询系统300可以对待更新数据对应的记录逻辑标记删除,并将更新数据写入内存。在一些实施例中,当系统中的数据需要更新时,数据查询系统300可以对待更新数据对应的记录逻辑标记删除,同时将更新数据写入内存并对该更新数据进行标记(如标记更新)。在一些实施例中,数据查询系统300可以记录更新数据写入内存的时间。
应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程400进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤410、步骤420、步骤430中,数据查询系统300接收到数据更新请求时,可以直接基于数据的最后修改时间进行分桶存储,并通过异步线程定期根据数据的变化情况将数据整理到不同桶中。又例如,数据查询系统300可以直接在内存中对满足合并条件的文件进行合并,并将合并之后的文件序列化到磁盘。再例如,数据查询系统300可以将更新信息写入磁盘,并对满足条件的文件进行合并。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过待更新数据的记录逻辑标记删除,可以降低磁盘的访问频率,提升数据的查询效率和实时性;(2)通过对写入数据的分片管理能够实现高效的多维数据查询,并提高查询结果命中率;(3)将数据序列化到磁盘并合并的方式能够有效利用系统存储设备,减少资源耗费,节约存储空间。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的说明书实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个说明书实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
Claims (17)
1.一种数据查询方法,其特征在于,所述方法包括:
获取磁盘中有效的文件列表,所述有效的文件列表包括至少一个文件;获取所述至少一个文件对应的信息摘要;
根据所述信息摘要查询所述至少一个文件是否存在缓存的查询结果,是则获取所述查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存。
2.如权利要求1所述的数据查询方法,其特征在于,所述获取所述至少一个文件对应的信息摘要包括:
利用信息摘要算法确定所述至少一个文件对应的信息摘要。
3.如权利要求1所述的数据查询方法,其特征在于,所述根据所述信息摘要查询所述至少一个文件是否存在缓存的查询结果,所述查询结果的确定方法包括:
获取查询条件,并基于所述查询条件在所述至少一个文件的缓存中获取所述至少一个文件的信息摘要;
根据所述至少一个文件的信息摘要判断所述至少一个文件是否变化,当所述至少一个文件未变化则获取所述至少一个文件缓存的查询结果;
否则查询所述信息摘要对应的文件并将该查询结果进行缓存。
4.如权利要求1所述的数据查询方法,其特征在于,所述查询所述信息摘要对应的文件并将该查询结果进行缓存包括:
过滤所述至少一个文件的子查询的返回数据;
合并过滤后的所述子查询的返回数据,生成查询结果并缓存。
5.如权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
过滤所述查询结果中标记删除的数据记录。
6.如权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
响应于数据更新请求,将数据更新信息写入内存;
当所述内存中更新信息的记录数等于第一阈值时,将所述内存中记录的所述更新信息序列化到磁盘;
获取所述磁盘中所述更新信息的记录数满足设定的合并条件的文件,当所述文件的个数达到第二阈值时,将所述文件合并写入所述磁盘。
7.如权利要求6所述的数据查询方法,其特征在于,所述方法还包括:
清理所述磁盘中合并文件对应的原始数据文件,并将所述合并文件纳入所述文件列表。
8.如权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
当数据需要更新时,对待更新数据对应的记录逻辑标记删除,并将更新数据写入所述内存。
9.一种数据查询系统,其特征在于,包括获取模块和查找模块;
所述获取模块用于获取磁盘中的有效文件列表,所述有效的文件列表包括至少一个文件;以及获取所述至少一个文件对应的信息摘要;
所述查找模块用于根据所述信息摘要查询所述至少一个文件是否存在缓存的查询结果,是则获取所述查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存。
10.如权利要求9所述的数据查询系统,其特征在于,所述获取模块还用于:
利用信息摘要算法确定所述至少一个文件对应的信息摘要。
11.如权利要求9所述的数据查询系统,其特征在于,所述获取模块还用于获取查询条件,并基于所述查询条件在所述至少一个文件的缓存中获取所述至少一个文件的信息摘要;
所述查找模块还用于根据所述至少一个文件的信息摘要判断所述至少一个文件是否变化,当所述至少一个文件未变化则获取所述至少一个文件缓存的查询结果;否则查询所述信息摘要对应的文件并将该查询结果进行缓存。
12.如权利要求9所述的数据查询系统,其特征在于,所述查找模块还用于:
过滤所述至少一个文件的子查询的返回数据;
合并过滤后的所述子查询的返回数据,生成查询结果并缓存。
13.如权利要求9所述的数据查询系统,其特征在于,还包括数据处理模块;所述数据处理模块用于:
过滤所述查询结果中标记删除的数据记录。
14.如权利要求9所述的数据查询系统,其特征在于,还包括数据处理模块;所述数据处理模块用于:
响应于数据更新请求,将数据更新信息写入内存;
当所述内存中更新信息的记录数等于第一阈值时,将所述内存中记录的所述更新信息序列化到磁盘;
获取所述磁盘中所述更新信息的记录数满足设定的合并条件的文件,当所述文件的个数达到第二阈值时,将所述文件合并写入所述磁盘。
15.如权利要求14所述的数据查询系统,其特征在于,所述数据处理模块还用于:
清理所述磁盘中合并文件对应的原始数据文件,并将所述合并文件纳入所述文件列表。
16.如权利要求9所述的数据查询系统,其特征在于,还包括数据处理模块;所述数据处理模块用于:
当数据需要更新时,对待更新数据对应的记录逻辑标记删除,并将更新数据写入所述内存。
17.一种数据查询装置,包括至少一个存储介质和至少一个处理器,其特征在于,
所述至少一个存储介质用于存储计算机指令;
所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~8中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958773.3A CN110716900A (zh) | 2019-10-10 | 2019-10-10 | 一种数据查询方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958773.3A CN110716900A (zh) | 2019-10-10 | 2019-10-10 | 一种数据查询方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110716900A true CN110716900A (zh) | 2020-01-21 |
Family
ID=69212439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958773.3A Pending CN110716900A (zh) | 2019-10-10 | 2019-10-10 | 一种数据查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716900A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269947A (zh) * | 2020-09-23 | 2021-01-26 | 咪咕文化科技有限公司 | 空间文本数据的缓存方法、装置、电子设备及存储介质 |
CN113806307A (zh) * | 2021-08-09 | 2021-12-17 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473590A (zh) * | 2006-05-05 | 2009-07-01 | 奥多比公司 | 用于缓存web文件的系统和方法 |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN106469150A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
WO2018077292A1 (zh) * | 2016-10-28 | 2018-05-03 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
-
2019
- 2019-10-10 CN CN201910958773.3A patent/CN110716900A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473590A (zh) * | 2006-05-05 | 2009-07-01 | 奥多比公司 | 用于缓存web文件的系统和方法 |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN106469150A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
WO2018077292A1 (zh) * | 2016-10-28 | 2018-05-03 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269947A (zh) * | 2020-09-23 | 2021-01-26 | 咪咕文化科技有限公司 | 空间文本数据的缓存方法、装置、电子设备及存储介质 |
CN113806307A (zh) * | 2021-08-09 | 2021-12-17 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664497B2 (en) | Hybrid database table stored as both row and column store | |
US20190272265A1 (en) | Hybrid Database Table Stored As Both Row and Column Store | |
US9514187B2 (en) | Techniques for using zone map information for post index access pruning | |
CN107273522B (zh) | 面向多应用的数据存储系统和数据调用方法 | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
US20160179883A1 (en) | Graph processing in database | |
US20130166553A1 (en) | Hybrid Database Table Stored as Both Row and Column Store | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
US11048753B2 (en) | Flexible record definitions for semi-structured data in a relational database system | |
JP2015099586A (ja) | データ集約のためのシステム、装置、プログラム、及び方法 | |
WO2017170459A1 (ja) | 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム | |
US8805848B2 (en) | Systems, methods and computer program products for fast and scalable proximal search for search queries | |
WO2021047373A1 (zh) | 基于大数据的列数据处理方法、设备及介质 | |
US8442971B2 (en) | Execution plans with different driver sources in multiple threads | |
Li et al. | Skyline index for time series data | |
JP6159908B1 (ja) | 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム | |
US20220358178A1 (en) | Data query method, electronic device, and storage medium | |
US7882089B1 (en) | Caching database information | |
CN110716900A (zh) | 一种数据查询方法和系统 | |
US20100036804A1 (en) | Maintained and Reusable I/O Value Caches | |
JPWO2017170459A6 (ja) | 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム | |
US11630829B1 (en) | Augmenting search results based on relevancy and utility | |
US20120179669A1 (en) | Systems and methods for searching a search space of a query | |
CN108984720B (zh) | 基于列存储的数据查询方法、装置、服务器及存储介质 | |
CN114064729A (zh) | 一种数据检索方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200121 |