CN113742378A - 数据查询及存储方法、相关设备及存储介质 - Google Patents

数据查询及存储方法、相关设备及存储介质 Download PDF

Info

Publication number
CN113742378A
CN113742378A CN202110055495.8A CN202110055495A CN113742378A CN 113742378 A CN113742378 A CN 113742378A CN 202110055495 A CN202110055495 A CN 202110055495A CN 113742378 A CN113742378 A CN 113742378A
Authority
CN
China
Prior art keywords
data
information
stored
disk
tree
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
Application number
CN202110055495.8A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110055495.8A priority Critical patent/CN113742378A/zh
Publication of CN113742378A publication Critical patent/CN113742378A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Abstract

本申请实施例公开了一种数据查询方法、存储方法、相关设备及计算机存储介质,其中,所述数据查询方法包括:获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;从磁盘的所述存储地址中读取出所述数据;将读取出的数据作为在所述待查询信息下期望查询到的数据。

Description

数据查询及存储方法、相关设备及存储介质
技术领域
本申请涉及数据处理技术,具体涉及一种数据查询方法、存储方法、相关设备及计算机存储介质。
背景技术
对于持久化数据,即在一定时间内不易产生变化的数据如最近1周内的手机排行榜数据,相关技术中通常采用基于内存的本地缓存如Caffeine本地缓存或分布式缓存如Redis分布式缓存进行这些数据的缓存。具体的,在实际应用中,想要查询一数据如最近1周内的手机排名前10的数据,先需要获得查询条件(查询条件1:最近1周;查询条件2:手机类;查询条件3:排名前10),根据查询条件到数据库中去查询,将查询结果读取至基于内存的Redis分布式缓存或者Caffeine本地缓存中,以呈现查询结果,由此实现对数据的查询。这种方案至少存在以下不足之处:需要将数据读取至内存进行缓存,而内存的容量往往是有限的,从而造成缓存的数据有限,如果对内存中不存在的数据进行查询需要删除内存中已存在的数据再将需要查询的数据读取至内存进行缓存。而被删除的数据后续还可能因为再次被查询而被重新缓存至内存,如此造成了内存大量重复的缓存操作。重复缓存会降低数据的查询效率,甚至是内存的损坏。在实际应用中,内存本身造价偏高,频繁更换内存不利于经济成本的节省。且前述方案无法适应大量数据并行查询的情形。
发明内容
为解决现有存在的技术问题,本申请实施例提供一种数据查询方法、存储方法、相关设备及计算机存储介质。
本申请实施例的技术方案是这样实现的:本申请实施例提供一种数据查询方法,包括:
获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
从磁盘的所述存储地址中读取出所述数据;
将读取出的数据作为在所述待查询信息下期望查询到的数据。
上述方案中,所述数据在磁盘中作为树中的节点位置上的数据进行存储,存储在磁盘中的树在所述磁盘中具有一个树地址;
相应的,所述依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;从磁盘的所述存储地址中读取出所述数据,将读取出的数据作为在所述待查询信息下期望查询到的数据,包括:
依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树;
确定所述树在磁盘中的树地址;
基于所述树地址,对磁盘中的所述树进行遍历,确定出所述树中用于存储所述排名信息的数据的节点位置;读取出所述节点位置上存储的数据;
将读取出的所述数据作为在所述待查询信息下期望查询到的数据。
上述方案中,所述方法还包括:
判断所述内存中是否存储有符合所述数据筛选条件以及排名信息的数据的记录信息;
如果判断为是,依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树。
上述方案中,所述方法还包括:
如果判断为否,
从数据库中获得符合所述数据筛选条件以及所述排名信息的数据;
在磁盘中为获得的数据创建一棵树;
为所述树分配树地址、以及为所述数据分配在所述树中的节点位置。
上述方案中,所述方法还包括:
获得磁盘中存储的所有符合所述数据筛选条件的数据;
获得各个所述数据的属性,所述属性表征在所述数据筛选条件下各个数据的排名;
按照所述属性,将所有数据进行合并。
上述方案中,所有符合所述数据筛选条件的数据位于至少两颗树;
相应的,所述按照所述属性,将所有数据进行合并,包括:
按照所述至少两颗树中存储的所有数据的属性,将所述至少两颗树合并成一颗树。
本申请实施例提供一种数据存储方法,应用于磁盘,包括:
获得待存储数据;
对所述待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
本申请实施例提供一种数据存储方法,应用于内存,包括:
获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
本申请实施例提供一种数据查询设备,包括:
获得单元,用于获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
第一确定单元,用于依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
读取单元,用于从磁盘的所述存储地址中读取出所述数据;
第二确定单元,用于将读取出的数据作为在所述待查询信息下期望查询到的数据。
本申请实施例提供一种磁盘,包括:
存储单元,用于对待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
记录单元,用于对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
本申请实施例提供一种内存,包括:
获得单元,用于获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
存储单元,用于存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述数据查询和/或存储方法的步骤。
本申请实施例提供一种数据查询方法、存储方法、相关设备及计算机存储介质,其中,所述数据查询方法包括:获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;从磁盘的所述存储地址中读取出所述数据;将读取出的数据作为在所述待查询信息下期望查询到的数据。
本申请实施例将需要被查询的数据缓存或存储在磁盘中,实现了磁盘级的缓存。本申请实施例中的内存无需进行数据缓存,而是记录信息进行记录或存储,可减轻内存的负担,有效避免由于数据缓存在内存而可能导致的内存被频繁更换的问题。由于磁盘的空间比内存的缓存空间大,所以磁盘缓存数据的数据量较大,其可支持大量并行数据的查询。且磁盘的造价廉价于内存,可有效节省支出成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的数据查询方法的实施例的流程示意图一;
图2为本申请提供的数据查询方法的实施例的流程示意图二;
图3为本申请提供的应用于磁盘的数据存储方法实施例的流程示意图;
图4为本申请提供的应用于内存的数据存储方法实施例的流程示意图;
图5为本申请提供的基于磁盘的本地缓存方案中涉及的交互示意图;
图6为本申请提供的基于磁盘的本地缓存方案的具体实现示意图;
图7为本申请提供的数据查询设备的组成结构示意图;
图8为本申请提供的磁盘的组成结构示意图;
图9为本申请提供的内存的组成结构示意图;
图10为本申请提供的数据查询设备的硬件构成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
相关技术中,将数据缓存在内存的技术可视为内存级的数据缓存技术,本申请实施例提供的数据存储和查询方法,可实现磁盘级的数据缓存和查询,可有效避免由于数据缓存在内存(相当于是内存级的数据缓存)而可能导致的内存被频繁更换的问题。由于磁盘的空间比内存的缓存空间大,所以磁盘可做到大量数据的缓存,可有效实现大量并行数据的查询。
本申请提供一种数据查询方法的实施例,应用于数据查询设备,如图1所示,所述方法包括:
S101:获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
本步骤中,数据查询设备接收用户输入的待查询信息,用户想查询出期望数据。进一步的,用户可向数据查询设备输入数据筛选条件如用户期望查询3C类商品、服饰类商品等,还输入在该数据筛选条件下的排名信息如3C类商品排名前10的产品、服饰类排名前5的商品等。可以理解,用户输入的排名信息可以指的是在所述数据筛选条件的至少两个排名信息如好评排名第1~第10或者排名第1~5;此外,本申请实施例中的排名信息还可以是某个指定或特定的排名信息如销售量排名第1或排名第3。具体可根据用户实际使用需求而灵活输入,不做具体限定。数据
S102:依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
本步骤中,内存用于记录或存储记录信息。数据查询设备可依据内存记录或存储的记录信息确定符合所述数据筛选条件以及所述排名信息的数据在磁盘中的存储地址。本申请实施例中将被查询的数据缓存或存储在磁盘中。并在内存中记录或存储有待查询的数据在磁盘中的存储地址这一信息,由此可由内存存储或记录的这一信息,查找到存储或缓存到磁盘中的数据。在一个实施例中,内存中存储或记录的记录信息用于对某个数据在磁盘中的存储地址及筛选出该数据需要的数据筛选条件及排名信息进行对应记录。示例性地,3C类的好评第1名的商品存储在磁盘的A地址中。服饰类的好评第1名的商品存储在磁盘的B地址中。可以理解,记录信息本身存储或记录的并非是商品数据本身,而是能够筛选出该数据的数据筛选条件以该数据在数据筛选条件下的排名信息。即本申请实施例中内存无需缓存数据本身,仅需要对筛选出该数据的数据筛选条件以该数据在数据筛选条件下的排名信息、该数据的存储地址进行对应存储或记录即可。
S103:从磁盘的所述存储地址中读取出所述数据;
S104:将读取出的数据作为在所述待查询信息下期望查询到的数据。
S103~S104中,数据查询设备从磁盘的存储地址中将用户期望查询的数据读取出。
在一个可选的方案中,在S101~S104之后,所述方法还包括:数据查询设备将在所述待查询信息下期望查询到的数据进行显示,以显示给用户。优选的,在进行显示时,还可以按照所述数据筛选条件下的排名信息进行期望查询数据的显示。例如期望查询的数据为3C类商品的销售量前5名,在显示时,可按照销售量从第1到第5的顺序进行排列显示。
前述S101~S104中,本申请实施例将需要被查询的数据缓存或存储在磁盘中,实现了磁盘级的缓存。本申请中的内存不再进行被查询数据的缓存,而是对待查询数据在磁盘中的存储地址这一信息进行记录或存储,可减轻内存的负担,有效避免由于数据缓存在内存(相当于是内存级的数据缓存)而可能导致的内存被频繁更换的问题。此外,由于磁盘的空间比内存的缓存空间大,所以磁盘缓存数据的数据量较大,其可支持大量并行数据的查询。且磁盘的造价廉价于内存,可有效节省支出成本。
本申请实施例中,在磁盘中可以以LSM(日志合并)树的形式进行数据的缓存或存储,在具体实现上,LSM树可以基于平衡二叉树、数组等有序结构来实现。每棵树可以具有两个或更多的节点,每个节点上对应存储有一个数据,存储在某个节点上的数据可视为一个节点数据。关于树、树的节点等概念的理解具体请参见相关说明,本文不做重点阐述。可以理解,在磁盘以树的形式进行数据的存储时,每个数据均可作为树中的一个节点数据进行存储,存储在磁盘中的每棵树在所述磁盘中具有一个存储地址。为区别于存储在磁盘中的每颗树,将每棵树在磁盘中的存储地址视为树地址。可以理解,树地址可方便数据查询设备在磁盘中查找该棵树。找到该棵树,才可能找到存储到该棵树上的节点数据。为区别于树地址和树上的节点数据的地址,本申请实施例中引入了节点位置的概念,用于唯一标识树中的一个节点在该树中的位置,该树中的某个节点数据在磁盘中的存储地址就可视为该节点数据在该树上所处的节点的位置。基于此,前述S102~S104可以通过如下方案来实现,如图2所示:S1021:依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树;
S1022:确定所述树在磁盘中的树地址;
S1021和S1022,相当于实现对符合所述数据筛选条件以及排名信息的数据其所处的树在磁盘中的树地址进行确认的方案。基于此,本申请实施例中内存无需缓存数据本身,内存中的记录信息可以是对筛选出该数据的数据筛选条件以该数据在数据筛选条件下的排名信息、该数据所位于的树的存储地址如树地址进行对应存储或记录即可。
S1023:基于所述树地址,对磁盘中的所述树进行遍历,确定出所述树中用于存储所述排名信息的数据的节点位置;读取出所述节点位置上存储的数据;
S1024:将读取出的所述数据作为在所述待查询信息下期望查询到的数据。
S1023~S1024,基于树地址从磁盘中将该树查找出,然后遍历其上的节点位置,得到树中用于存储所述排名信息的数据的节点位置,读取出所述节点位置上存储的数据,即可作为用户期望查询的数据。
在S1021~S1024中,磁盘中以树的形式进行数据的存储,可快速地实现对数据的查找。内存中无需缓存数据,仅存储或记录记录信息即可,依据内存中记录或存储的记录信息也可快速地实现对磁盘中存储数据的查找。
前述方案中,为默认内存中存储有符合所述数据筛选条件以及排名信息的数据的记录信息。而在实际应用中,在获得待查询信息之后,所述方法还包括:
S105:判断所述内存中是否存储有符合所述数据筛选条件以及排名信息的数据的记录信息;
如果判断为是,执行前述的依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树的技术方案;
如果判断为否,执行S106;
S106:从数据库中获得符合所述数据筛选条件以及所述排名信息的数据;在磁盘中为获得的数据创建一棵树;为所述树分配树地址、以及为所述数据分配在所述树中的节点位置。
可以理解,本申请实施例中数据库存储有大量数据,将数据库中的数据缓存到磁盘,可视为将数据库中的数据缓存到本地。与需要查询时不断的从数据库中读取数据的方案相比,从本地的磁盘中进行数据的读取更为快速。在内存中未存在关于期望查询的数据的记录信息的情况下,从数据库中将期望查询的数据读取出,并创建一颗树,为树分配树地址、以及为数据分配在所述树中的节点位置。其中,在磁盘中为该树创建的树地址需要唯一标识该树,与磁盘中其他树的树地址不混。将从数据库中读取出的数据存储到所创建的这棵树的某个节点位置处,作为一节点数据。此时,就可以将该数据的数据筛选条件以该数据在数据筛选条件下的排名信息、该数据所位于的树的树地址进行对应存储或记录,形成记录信息。该记录信息可以存储在磁盘中,还可以存储在内存中,以便后续进行使用。可以理解,如果以树的形式进行数据的存储,树地址+数据在该树中所处的节点位置即可视为该数据在磁盘中的存储地址或存储位置。
在具体实现上,磁盘中存储的数据可以以树的形式进行存储,还可以不按照树的形式进行存储。可以理解采用树的形式进行数据的存储可认为是采用了一定的数据存储结构对数据进行缓存。除此之外,还可以不采用任何数据存储结构直接对数据进行存储,并记录数据在磁盘中的存储位置。在这种情况下,所述方法还包括:获得磁盘中存储的所有符合所述数据筛选条件的数据;获得各个所述数据的属性;按照所述属性,将所有数据进行合并。其中,数据的属性可以具体是数据对应的商品的类别如3C类、服饰类;进一步的,还可以是在一定类别下的排名,如3C类的第1名或服饰类的第2名。以不采用任何数据存储结构对数据进行存储为例,3C类商品排名第1名的数据存在磁盘的a地址,3C类商品排名第2名的数据存在磁盘的c地址,3C类商品排名第3名的数据存在磁盘的b地址。按照在3C类别下的排名,将属于同一商品类别且排名前3的商品进行合并,形成一数组,该数组表示3C类商品排名前3的商品。数组中的第1个元素代表3C类商品排名第1名的数据,数组中的第2个元素代表3C类商品排名第2名的数据,数组中的第3个元素代表3C类商品排名第3名的数据。
前述方案中,是以磁盘中不以任何数据存储结构的方式进行数据存储为例。如果磁盘中以一定的数据存储结构进行数据的存储,例如以LSM的形式进行数据存储,如果符合待查询信息中的数据筛选条件的数据位于两颗或者更多棵的树上,即所有符合同一数据筛选条件的数据位于至少两颗树,那么可按照所述至少两颗树中存储的所有数据的属性,将两颗或更多棵树进行合并,合并成一颗树,以将属于同一数据筛选条件的数据进行合并。示例性地,磁盘中缓存有关于3C类排名前10的商品数据,其中3C类排名前5的商品记录或存储在树1上,3C类排名第6~第10的商品记录或存储在树2上,则可获得可将这两颗树进行合并,形成一颗新的树。本领域技术人员应该理解,树的合并实际上就是符合同一数据筛选条件如3C类排名前10的数据的合并。示例性地,合并后的树如新的树相当于对符合同一数据筛选条件如3C类排名前10的数据进行合并,该新的树中的第1~第5个节点位置用于依次记录3C类排名前5的商品数据,该新的树中的第6~第10个节点位置用于依次记录3C类排名第6~第10的商品数据。为合并的新树分配一个树地址,每颗树中的节点在该树中具有一个自己的位置,树的地址+商品数据所在的节点在该树中的位置即构成了该商品数据在磁盘中的存储地址。磁盘中缓存数据是采用一定的数据存储结构还是直接对数据进行存储均可视具体情况而灵活设定。
前述方案中,实现了基于磁盘的本地缓存,区别于相关技术中的基于内存的本地缓存或分布式缓存,利用廉价的磁盘资源,解决数据的缓存问题。同时,磁盘缓存数据的容量较大,可实现对大量数据的缓存、以及实现对数据的并发查询。本申请实施例中内存中仅对记录信息进行缓存或存储,无需对数据本身进行缓存或存储,依据内存中的记录信息可快速而准确地确定出数据在磁盘中的存储地址,可有效提高查询效率,支持并发查询,提高并发查询效率。
前述的数据查询方法基于下面所述的数据存储方法而实现。本申请实施例中的数据存储方法包括应用于磁盘的方法和应用于内存的方法。具体参见以下描述,本申请实施例提供一种数据存储方法,应用于磁盘,如图3所示,包括:
S301:获得待存储数据;
本步骤中,从数据库中读取待存储数据。可将数据库中的所有数据作为需要缓存至磁盘的待存储数据。或者,将数据库中将被查询效率高的数据作为需要缓存至磁盘的待存储数据。
S302:对所述待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
本步骤中,对从数据库中读取出的待存储数据进行存储或缓存,存储到本地磁盘中。缓存至本地磁盘中的数据均具有用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名的指示信息。该指示信息可由磁盘根据各个缓存数据的属性,为各个缓存数据进行分配。还可分配各个缓存数据在磁盘中的存储位置。
S303:对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
本步骤中,将各个缓存数据的指示信息和各个缓存数据在磁盘中的存储位置进行对应记录,形成记录信息。所述记录信息可用于对磁盘中缓存的数据进行查询。
S301~S303中,将待存储数据存储到磁盘,实现了本地磁盘级的数据存储。并得到用于表征待存储数据的指示信息和在磁盘中的存储位置的记录信息,依据记录信息,可快速实现对存储在磁盘中的数据的查询。区别于相关技术中的基于内存的本地缓存或分布式缓存,利用廉价的磁盘资源,解决数据的缓存问题。同时,磁盘缓存数据的容量较大,可实现对大量数据的缓存、以及实现对数据的并发查询。
本申请实施例提供的应用于内存的数据存储方法,如图4所示,所述方法包括:
S401:获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
S402:存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
在S401~S402中,内存可从磁盘中将记录信息读取出并存储到自身。或者,内存根据磁盘为磁盘中缓存的各个数据分配的指示信息和存储位置,将这二者进行对应记录,形成记录信息并存储。
与相关技术中需要将被查询的数据缓存至内存的方案不同,本申请实施例中的内存不再进行被查询数据的缓存,仅需要对记录信息进行记录或存储,如此,可减轻内存的负担,有效避免由于数据缓存在内存(相当于是内存级的数据缓存)而可能导致的内存被频繁更换的问题。
下面结合附图及具体实施例对本申请作进一步详细的说明。
本应用场景中,以图5所示的交互场景为例,在图5所示的交互场景中包括有运营端、业务系统、内存、磁盘、和源数据存储层。其中,运营端可供用户输入待查询信息;业务系统可基于内存记录或存储的记录信息对用户期望查询的数据进行查询。内存用于对记录信息进行存储。磁盘用于对用户期望查询的数据进行缓存。源数据存储层可用于存储源数据,其功能与前述的数据库类似。可将源数据存储层中所有数据或部分需要被查询的数据缓存至业务系统的本地,实现磁盘级的本地缓存。在一应用场景中,业务系统可基于AOP(面向切面编程)的方法而实现,其执行的功能与前述的数据查询设备的功能相同。本领域技术人员应该而知,在AOP技术中存在有几个通知类型,本申请实施例中会使用到前置通知和后置通知两个通知类型。其中,前置通知,用于在目标方法执行前执行;后置通知,用于在目标方法执行后执行,本应用场景中目标方法图5中的封装查询分布式计算API(ApplicationProgramming Interface,接口)或开源数据管理库(ClientHouse)API方法。由图5所示,本本申请实施例的数据查询方法在目标执行方法前执行,不影响目标方法的正常执行。此外,本申请还提供一种合并磁盘中的存储数据的方案,这种合并方案一方面可有效节省对磁盘的占用,另一方面可提高并发查询效率。合并方案在目标方案执行后执行,也不影响目标方法的执行。其中,目标方法不是本方案的重点,前述说明在于描述本申请提供的数据查询方法和数据合并方法均不会影响到目标方法。其中,AOP、前置通知和后置通知具体请参见相关技术,本文不做具体赘述。
结合图5所示的交互场景,本申请实施例的数据查询方法和存储方法的相关执行流程具体可参照以下描述。
本应用场景中,源数据存储层存储有大量的数据,磁盘可从中读取数据到磁盘本地,并以LSM树的形式进行数据的存储,属于同一数据筛选条件的数据可以存储在同一颗树上,也可以存储在不同颗树上。在每颗树上可在所述同一数据筛选条件下将期望存储在同一颗树上的数据按照一定的排名进行存储。示例性地,将源数据存储层中存储的上一个季度内3C类好评前5的商品数据按照好评的排名存储到同一颗树上。示例性地,磁盘可以从源数据存储层中读取出在上一个季度内3C类好评前5的商品数据如A牌子的笔记本电脑、B品牌的手机、C品牌的一体机等。在磁盘中创建一颗新树如Tree 1,为该树分配一个树地址如0X01,该新树创建与读取的数据的数量为相同数值的节点位置如5个节点位置,将3C类好评前5的商品数据依次存储或记录到各个节点位置。例如节点位置1用于存储好评第一的商品数据如A品牌的笔记本电脑、节点位置2用于存储好评第二的商品数据如B品牌的手机等。其中,可以理解,本应用场景中树的地址+商品数据所在的节点在该树中的位置即构成了该商品数据在磁盘中的存储地址。如此,实现了商品数据在磁盘本地的LSM树形式的存储。可以理解,在本应用场景中,之所以将符合或属于同一数据筛选条件的数据存储在同一颗树上,是为了方便对数据的并行或并发查询(同时查询多个商品数据如对上一个季度内3C类好评前5的商品进行查询),从同一颗树上将需要查询的多个商品数据一同读取出,可大大缩短数据查询时间,提高查询效率。对上一个季度内3C类好评前5的商品进行查询。本应用场景中,采用LSM树的形式对源数据存储层中存储的可能被用户查询的数据进行存储,且在存储时将符合或属于同一数据筛选条件的数据按照一定的排名进行存储,可大大减少查询时间,提高查询效率。此外,将源数据存储层中的数据缓存或存储到本地磁盘,实现了磁盘级的本地缓存。磁盘的存储容量较大,可存储的数据比内存缓存的数据量多。且磁盘本身的造价与内存比起来较低,可有效节省支出成本。
在具体实现中,在磁盘中可将Tree 1的树地址以及Tree 1中各个节点位置存储的各商品数据在同类商品如3C类商品中的排名信息进行对应存储或记录,形成记录信息。内存从磁盘中读取形成的记录信息。可以理解,在磁盘的记录信息是可以根据数据的实际存储情况而进行灵活更新的,在磁盘中的记录信息被更新的情况下,内存需重新读取记录信息。此外,考虑到每颗树对应一个数据筛选条件,如Tree 1的数据筛选条件是3C类好评商品,树中的节点位置对应存储的商品的排名信息,基于此,在技术层面上可为每颗树如Tree1设置一个Key值,该Key值表征该树对应的数据筛选条件。记录Key值、Tree 1的树地址、Tree1中各个节点位置存储的商品数据的排名信息进行对应存储或记录,形成记录信息。其中,由于在磁盘中是以树的形式进行数据存储的,且在每颗树中按照一定排名顺序的方式进行数据存储的,节点位置的排序在一定程度上表示了排名顺序,Key值是用于表示数据筛选条件的信息,那么记录信息中的Key值与其对应的各个节点位置之间的对应关系在一定程度上表示可筛选出在Tree1中存储的数据的数据筛选条件以及该数据在所述数据筛选条件下的排名信息。内存从磁盘中读取该记录信息。本应用场景中,内存不需要缓存或存储商品数据本身,仅需要存储记录信息即可,如此减轻了内存的负担。商品数据本身缓存或存储到磁盘中,实现了磁盘级别的本地缓存。本应用场景中的Key值是为了在后续进行数据查询的方案中基于待查询的Key,确定出期望查询数据所在的树在磁盘中的存储地址(树地址),再依据树地址查找到期望查询数据。
下面结合图5及图6所示来对数据查询过程进行说明。
在显示的运营端查询页面上,用户输入待查询信息,如输入数据筛选条件(3C商品类好评)以及在所述数据筛选条件下的排名信息(排名第1~第5)的商品数据。业务系统接收用户输入的待查询信息,利用AOP技术实现数据查询。业务系统对用户输入的数据筛选条件进行识别,依据识别出的“3C商品类好评的”结果,生成与这一结果对应的KEY值。判断内存中是否存储有符合用户输入的数据筛选条件的数据的记录信息。如果判断为否,则需要进一步判断磁盘中是否存储有包括有该KEY的记录信息。如果磁盘中已存储,则以内存映射文件(Memory Mapped Files)的方式将该条记录信息加载或读取至内存,以便后续使用。如果磁盘中未存储符合有该KEY的记录信息,则调用源数据存储层的API将符合所输入的数据筛选条件以及排名信息的数据读取至磁盘,并以树的形式进行存储,得到针对该数据筛选条件以及排名信息的记录信息。有关该过程的描述请参见前述相关说明,重复之处不赘述。其中,以Memory Mapped Files(内存映射文件)的方式实现磁盘和内存之间的交互读或写缓存,可加快读或写的速度,节省查询时间,提高查询效率。
在判断为内存中存储有包括有该KEY的记录信息的情况下,确定期望查询的商品数据在磁盘中是否有缓存,即在该记录信息中是否存在有与该KEY对应的排名信息,如果存在有与该KEY对应的排名信息,说明3C类商品排名前5的商品数据均已缓存到磁盘中,如果未存在与该KEY值对应的排名信息,则说明排名前5的商品数据均未缓存到磁盘中。或者缺失一个排名信息如排名第5,则说明排名第5的商品数据还未缓存到磁盘中,即缺失排名第5的商品数据。这种情况下,需要调用源数据存储层的API将符合所输入的数据筛选条件以及缺失排名的数据读取至磁盘,并以树的形式进行存储,该条记录信息被更新,将缺失的排名第5的节点位置更新至原记录信息中。有关该过程的描述请参见前述相关说明,重复之处不赘述。
在期望查询的商品数据在磁盘中均存在缓存的情况下,业务系统基于内存中缓存的记录信息,确定出记录信息中与该KEY值对应的树地址,即依据KEY查找到期望查询的数据的树在磁盘中的存储位置。业务系统查找到具有该存储位置的树,对树进行遍历,查找出树中与用户输入的排名信息对应的节点位置如树中的第1~第5节点位置,该节点位置上存储的节点数据即为用户期望查询的数据,业务系统将其传输至运营端,在运营端查询页面处进行展示,供用户查看。
本应用场景中,可称针对一颗树得到的记录信息为元信息文件;内存中记录的针对所有树的记录信息称之为元信息集合对象,即元信息集合对象中记录有磁盘中存储的所有树的元信息文件;内存中存储的记录信息可以是元信息集合对象。
在实际应用中,磁盘中可能存在有这样两颗树,其中一颗树用于存储3C类好评第1~第5的商品数据,即该树的节点位置1~5用于对3C类产品中为好评率第1~第5的商品进行存储。另一颗树用于存储3C类好评第6~第10的商品数据,即该树的节点位置1~5表示用于对3C类产品中为好评率第6~第10的商品进行存储。针对磁盘中存储的属于同一数据筛选条件的两颗或更多颗树,可定期对这些树进行合并,一方面节省在磁盘中的占用空间,另一方面可提高查询效率。合并方案具体可以是:在第一颗树原有的基础(第一颗树原有第1~第5个节点,用于存储排名第1~第5的商品数据)上,为第一颗树创建5个节点,将第二颗树中存储的好评第6~第10的商品数据存储到新创建的5个节点位置上。还可以,创建一颗新的树,并为该树创建10个节点,将好评第1~第10的商品数据存储到这10个节点位置上。本应用场景中,数据查询方案可利用一线程去完成,合并数据方案可利用另一线程去完成,二者互不影响,所以这种方案称之为异步流程。在技术层面上,在为实现合并数据方案而预先设定的合并周期如48小时到来时,业务系统读取内存中缓存的元信息集合对象,对元信息集合对象进行遍历,以零拷贝(Zero-Copy)方式对磁盘中存储的具有相同KEY值的树进行合并,相当于对具有一定相同特性的商品数据进行合并如对3C好评类前10的商品数据进行合并。更新元信息文件以及元信息对象集合。以便后续查询使用。本申请实施例中对树进行合并可提高查询效率的原因在于:相比于未合并前,如果用户要查询3C类好评商品的前10名商品数据,则需要对2颗树进行查询,而在合并后则只需要对一颗树进行查询,由此可有效缩短查询时间,提高查询效率。其中,以零拷贝方式对磁盘中存储的具有相同KEY值的树进行合并之前,需要从磁盘中将树读取出然后再合并,这这种读写方式可视为是一种以Zero-Copy的方式实现磁盘到磁盘的数据读写的方案。此外,在磁盘中查询到用户期望查询的数据的情况下,业务系统还利用Zero-Copy的方式将期望查询的数据读取出并进行展示。这种方案可视为以Zero-Copy的方式实现磁盘到展示页面的读取的方案。本应用场景中,利用Zero-Copy的方式实现磁盘到磁盘的数据读写以及磁盘到展示页面的读取,可有效缩短数据读写速度,加快查询效率。
本应用场景中的以上实现逻辑可由AOP代码来实现。本应用场景中的AOP代码以内存映射文件的方式实现磁盘和内存交互读/写缓存,以零拷贝的方式实现磁盘到网络数据读取和磁盘到磁盘的数据读写,以LSM树的思想实现了数据的周期合并,提高了后续数据查询效率,在磁盘中实现大量数据在磁盘级的高效本地缓存。
从图5中可看出,其中用户输入数据筛选条件以及期望查询的数据的排名信息,利用前置通知从内存存储的元信息集合对象中获取Key对应的LSM树地址,以零拷贝的方式从具有该树地址的树中顺序读取数据。当磁盘中未存在缓存时,从数据源中获取数据并以内存映射文件方式创建新的LSM树。在合并周期到来时,异步线程通过零拷贝的方式合并同一key对应的所有LSM树,提高查询效率。
本应用场景中,将需要被查询的数据缓存或存储在磁盘中,实现了磁盘级的缓存,且结合了零拷贝和内存映射文件技术,可加快缓存或数据查询,提高效率。本应用场景中的内存不再进行被查询数据的缓存,仅对记录信息进行记录或存储即可,可减轻内存的负担,有效避免由于数据缓存在内存(相当于是内存级的数据缓存)而可能导致的内存被频繁更换的问题。此外,由于磁盘的空间比内存的缓存空间大,所以磁盘缓存数据的数据量较大,其可支持大量并行数据的查询。且磁盘的造价廉价于内存,可有效节省支出成本。
本申请实施例提供一种数据查询设备,如图7所示,包括:获得单元701、第一确定单元702、读取单元703以及第二确定单元704;其中,
获得单元701,用于获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
第一确定单元702,用于依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
读取单元703,用于从磁盘的所述存储地址中读取出所述数据;
第二确定单元704,用于将读取出的数据作为在所述待查询信息下期望查询到的数据。
在一个可选的方案中,所述第一确定单元702,用于依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树;确定所述树在磁盘中的树地址;
相应的,所述读取单元703,用于基于所述树地址,对磁盘中的所述树进行遍历,得到所述树中用于存储所述排名信息的数据的节点位置;读取出所述节点位置上存储的数据;
第二确定单元704,用于将读取出的所述数据作为在所述待查询信息下期望查询到的数据。
在一个可选的方案中,所述设备还包括判断单元,用于:判断所述内存中是否存储有符合所述数据筛选条件以及排名信息的数据的记录信息;
如果判断单元判断为是,则触发第一确定单元702依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树。
如果判断单元判断为否,则所述查询设备的创建单元,用于从数据库中获得符合所述数据筛选条件以及所述排名信息的数据;在磁盘中为获得的数据创建一棵树;为所述树分配树地址、以及为所述数据分配在所述树中的节点位置。
在一个可选的方案中,所述设备还包括合并单元,用于:
获得磁盘中存储的所有符合所述数据筛选条件的数据;
获得各个所述数据的属性;
按照所述属性,将所有数据进行合并。
在一个可选的方案中,在所有符合所述数据筛选条件的数据位于至少两颗树的情况下,将所述至少两颗树合并成一颗树。
可以理解,所述设备中的获得单元701、第一确定单元702、读取单元703以及第二确定单元704在实际应用中均可由所述查询设备的中央处理器(CPU,Central ProcessingUnit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
本申请实施例提供一种磁盘,如图8所示,包括:存储单元801和记录单元802;其中,
存储单元801,用于对待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
记录单元802,用于对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
本申请实施例提供一种内存,如图9所示,包括:获得单元901和存储单元902;其中,
获得单元901,用于获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
存储单元902,用于存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
需要说明的是,本申请实施例的相关设备如数据查询设备、磁盘和内存,由于这些设备解决问题的原理与前述的查询方法、存储方法相似,因此,这些设备的实施过程及实施原理均可以参见前述查询方法、存储方法的实施过程及实施原理描述,重复之处不再赘述。其中,数据查询设备与前述的业务系统的执行功能相同,数据查询设备的执行功能的理解请参见对业务系统的执行功能的理解,重复之处不做具体限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时至少用于执行图1至图6任一所示方法的步骤。所述计算机可读存储介质具体可以为存储器。所述存储器可以为如图10所示的存储器62。
图10为本申请实施例的数据查询设备的硬件结构示意图,如图10所示,数据查询设备包括:用于进行数据传输的通信组件63、至少一个处理器61和用于存储能够在处理器61上运行的计算机程序的存储器62。终端中的各个组件通过总线系统64耦合在一起。可理解,总线系统64用于实现这些组件之间的连接通信。总线系统64除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统64。
其中,所述处理器61执行所述计算机程序时至少执行图1至图6任一所示方法的步骤。
可以理解,存储器62可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器62旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器61中,或者由处理器61实现。处理器61可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器61中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器61可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器61可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器62,处理器61读取存储器62中的信息,结合其硬件完成前述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种数据查询方法,其特征在于,包括:
获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
从磁盘的所述存储地址中读取出所述数据;
将读取出的数据作为在所述待查询信息下期望查询到的数据。
2.根据权利要求1所述的方法,其特征在于,所述数据在磁盘中作为树中的节点位置上的数据进行存储,存储在磁盘中的树在所述磁盘中具有一个树地址;
相应的,所述依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;从磁盘的所述存储地址中读取出所述数据,将读取出的数据作为在所述待查询信息下期望查询到的数据,包括:
依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树;
确定所述树在磁盘中的树地址;
基于所述树地址,对磁盘中的所述树进行遍历,确定出所述树中用于存储所述排名信息的数据的节点位置;读取出所述节点位置上存储的数据;
将读取出的所述数据作为在所述待查询信息下期望查询到的数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
判断所述内存中是否存储有符合所述数据筛选条件以及排名信息的数据的记录信息;
如果判断为是,依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据位于的树。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果判断为否,
从数据库中获得符合所述数据筛选条件以及所述排名信息的数据;
在磁盘中为获得的数据创建一棵树;
为所述树分配树地址、以及为所述数据分配在所述树中的节点位置。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
获得磁盘中存储的所有符合所述数据筛选条件的数据;
获得各个所述数据的属性,所述属性表征在所述数据筛选条件下各个数据的排名;
按照所述属性,将所有数据进行合并。
6.根据权利要求5所述的方法,其特征在于,所有符合所述数据筛选条件的数据位于至少两颗树;
相应的,所述按照所述属性,将所有数据进行合并,包括:
按照所述至少两颗树中存储的所有数据的属性,将所述至少两颗树合并成一颗树。
7.一种数据存储方法,应用于磁盘,其特征在于,包括:
获得待存储数据;
对所述待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
8.一种数据存储方法,应用于内存,其特征在于,包括:
获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
9.一种数据查询设备,其特征在于,包括:
获得单元,用于获得待查询信息,所述待查询信息用于指示数据筛选条件以及在所述数据筛选条件下的排名信息;
第一确定单元,用于依据内存中的记录信息,确定符合所述数据筛选条件以及排名信息的数据在磁盘中的存储地址;
读取单元,用于从磁盘的所述存储地址中读取出所述数据;
第二确定单元,用于将读取出的数据作为在所述待查询信息下期望查询到的数据。
10.一种磁盘,其特征在于,包括:
存储单元,用于对待存储数据进行存储;被存储的所述待存储数据至少具有指示信息,所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
记录单元,用于对所述指示信息和所述待存储数据在磁盘中的存储位置进行记录,得到记录信息;所述记录信息用于对所述待存储数据进行查询。
11.一种内存,其特征在于,包括:
获得单元,用于获得记录信息,所述记录信息为对指示信息和存储在磁盘中的数据在磁盘中的存储位置进行记录的信息,其中所述指示信息用于指示可筛选出所述待存储数据的数据筛选条件以及在所述数据筛选条件下所述待存储数据的排名;
存储单元,用于存储所述记录信息,其中所述记录信息用于对磁盘中存储的数据进行查询。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至8任一所述方法的步骤。
CN202110055495.8A 2021-01-15 2021-01-15 数据查询及存储方法、相关设备及存储介质 Pending CN113742378A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110055495.8A CN113742378A (zh) 2021-01-15 2021-01-15 数据查询及存储方法、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110055495.8A CN113742378A (zh) 2021-01-15 2021-01-15 数据查询及存储方法、相关设备及存储介质

Publications (1)

Publication Number Publication Date
CN113742378A true CN113742378A (zh) 2021-12-03

Family

ID=78728208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110055495.8A Pending CN113742378A (zh) 2021-01-15 2021-01-15 数据查询及存储方法、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN113742378A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064662A (zh) * 2022-01-13 2022-02-18 北京中交兴路信息科技有限公司 查询数据的方法、装置、电子设备及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064662A (zh) * 2022-01-13 2022-02-18 北京中交兴路信息科技有限公司 查询数据的方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
US10346435B2 (en) System and method for improved performance in a multidimensional database environment
US7689574B2 (en) Index and method for extending and querying index
CN110555001B (zh) 数据处理方法、装置、终端及介质
US11321315B2 (en) Methods and systems for database optimization
US20160364407A1 (en) Method and Device for Responding to Request, and Distributed File System
CN111198976B (zh) 云上资产关联分析系统、方法、电子设备及介质
CN111241177B (zh) 数据采集方法、系统及网络设备
CN111400334B (zh) 数据处理方法、装置、存储介质及电子装置
CN110888837B (zh) 对象存储小文件归并方法及装置
US20120005233A1 (en) Computer system and recording medium
CN108932286B (zh) 一种数据查询方法及装置
CN113672627A (zh) Elasticsearch搜索引擎索引构建方法及装置
CN112580315A (zh) 一种网页表格的显示方法、装置、终端设备及介质
US10712943B2 (en) Database memory monitoring and defragmentation of database indexes
CN113742378A (zh) 数据查询及存储方法、相关设备及存储介质
CN111831691A (zh) 一种数据读写方法及装置、电子设备、存储介质
CN114490527A (zh) 元数据检索方法、系统、终端及存储介质
CN110019440B (zh) 数据的处理方法及装置
WO2022001626A1 (zh) 注入时序数据的方法、查询时序数据的方法及数据库系统
WO2022121274A1 (zh) 一种存储系统中元数据管理方法、装置及存储系统
CN114428776A (zh) 一种面向时序数据的索引分区管理方法和系统
CN113760854A (zh) Hdfs内存中数据的识别方法及相关设备
US8977814B1 (en) Information lifecycle management for binding content
CN112685557A (zh) 可视化信息资源管理方法及装置
CN112307272A (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