CN111506570A - 数据存储及查询方法、装置、电子设备及存储介质 - Google Patents

数据存储及查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111506570A
CN111506570A CN202010147158.7A CN202010147158A CN111506570A CN 111506570 A CN111506570 A CN 111506570A CN 202010147158 A CN202010147158 A CN 202010147158A CN 111506570 A CN111506570 A CN 111506570A
Authority
CN
China
Prior art keywords
storage system
data
storage
storing
address information
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
CN202010147158.7A
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.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010147158.7A priority Critical patent/CN111506570A/zh
Publication of CN111506570A publication Critical patent/CN111506570A/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • 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
    • 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/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement

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)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了数据存储及查询方法、装置、电子设备及存储介质,涉及数据处理领域,其中的方法可包括:获取待存储的数据;将所述数据存储到预先构建的存储集群中的底层存储***中;其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息。应用本申请所述方案,可实现海量数据的存储,提升读写性能等。

Description

数据存储及查询方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机应用技术,特别涉及数据处理领域的数据存储及查询方法、装置、电子设备及存储介质。
背景技术
随着Feed流追踪(Feed Trace)***的高速发展,***的数据量呈现几何增长,相应地,需要对海量数据进行存储。
目前通常采用弹性搜索***(ES,Elasticsearch)或数据库存储方式,但这些方式主要适用于数据量不大的存储场景,当数据量很大时,读写性能都会下降,而且ES采用固态磁盘(SSD,Solid State Disk)进行存储,成本很高。
发明内容
有鉴于此,本申请提供了数据存储及查询方法、装置、电子设备及存储介质。
一种数据存储方法,包括:
获取待存储的数据;
将所述数据存储到预先构建的存储集群中的底层存储***中;
其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及所述底层存储***;所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息。
根据本申请一优选实施例,该方法进一步包括:将所述数据划分为核心数据和非核心数据;在所述上层存储***中存储所述核心数据对应的索引信息的副本。
根据本申请一优选实施例,该方法进一步包括:若所述存储集群中不包括所述底层存储***,则将所述数据存储到所述中间存储***中。
根据本申请一优选实施例,所述上层存储***包括:弹性搜索***ES;所述中间存储***包括:分布式表格存储***Table;所述底层存储***包括:高级文件***AFS。
一种数据查询方法,包括:
获取针对存储集群中存储的数据的查询请求;所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;所述底层存储***用于存储数据,所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息;
基于所述上层存储***和所述中间存储***中的信息,按预定方式从所述底层存储***中获取查询的数据返回。
根据本申请一优选实施例,所述按预定方式从所述底层存储***中获取查询的数据返回包括:
获取用户的第一查询请求,确定出对应的上层存储***,并根据确定出的上层存储***中的索引信息确定出行键列表;
根据所述行键列表查询所述中间存储***,确定出查询的数据所在的地址信息;
根据所述地址信息从所述底层存储***中获取查询的数据返回。
根据本申请一优选实施例,所述按预定方式从所述底层存储***中获取查询的数据返回包括:
获取用户的第二查询请求,根据所述第二查询请求确定出所述中间存储***中的对应分片;
针对所述分片,采用范围查询方式或行键列表随机查询方式,确定出查询的数据所在的地址信息;
根据所述地址信息从所述底层存储***中获取查询的数据返回。
一种数据存储装置,包括:第一获取单元以及存储单元;
所述第一获取单元,用于获取待存储的数据;
所述存储单元,用于将所述数据存储到预先构建的存储集群中的底层存储***中;其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及所述底层存储***;所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息。
根据本申请一优选实施例,所述存储单元进一步用于,将所述数据划分为核心数据和非核心数据;在所述上层存储***中存储所述核心数据对应的索引信息的副本。
根据本申请一优选实施例,所述存储单元进一步用于,若所述存储集群中不包括所述底层存储***,则将所述数据存储到所述中间存储***中。
根据本申请一优选实施例,所述上层存储***包括:弹性搜索***ES;所述中间存储***包括:分布式表格存储***Table;所述底层存储***包括:高级文件***AFS。
一种数据查询装置,包括:第二获取单元以及查询单元;
所述第二获取单元,用于获取针对存储集群中存储的数据的查询请求;所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;所述底层存储***用于存储数据,所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息;
所述查询单元,用于基于所述上层存储***和所述中间存储***中的信息,按预定方式从所述底层存储***中获取查询的数据返回。
根据本申请一优选实施例,所述查询单元获取用户的第一查询请求,确定出对应的上层存储***,并根据确定出的上层存储***中的索引信息确定出行键列表,根据所述行键列表查询所述中间存储***,确定出查询的数据所在的地址信息,根据所述地址信息从所述底层存储***中获取查询的数据返回。
根据本申请一优选实施例,所述查询单元获取用户的第二查询请求,根据所述第二查询请求确定出所述中间存储***中的对应分片,针对所述分片,采用范围查询方式或行键列表随机查询方式,确定出查询的数据所在的地址信息,根据所述地址信息从所述底层存储***中获取查询的数据返回。
一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如以上所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:采用多级存储方式,可实现海量数据的存储,提升了读写性能,并增强了海量数据存储的效率和稳定性;而且,大大减少了对SSD的使用,主要使用更便宜的AFS等来进行存储,从而降低了实现成本;另外,可通过存储副本来保证核心数据的完整性和读写的高效性;再有,可支持各种查询方式,具有广泛适用性等;上述可选方式所具有的其它效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请所述数据存储方法实施例的流程图;
图2为本申请所述南北两套存储集群的示意图;
图3为本申请所述查询及地址信息存储方式示意图;
图4为本申请所述数据存储装置实施例400的组成结构示意图;
图5为本申请所述数据查询装置实施例500的组成结构示意图;
图6为根据本申请实施例所述方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
另外,应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请所述数据存储方法实施例的流程图。如图1所示,包括以下具体实现方式。
在101中,获取待存储的数据。
在102中,将所述数据存储到预先构建的底层存储***中;其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;中间存储***用于存储数据在底层存储***中的地址信息,上层存储***用于构建并存储中间存储***的索引信息。
优选地,上层存储***可为ES,中间存储***可为分布式表格存储***(Table),底层存储***可为高级文件***(AFS,Advanced/Amazing File System)。也就是说,可将数据存储到AFS中,每套存储集群中可分别包括:ES、Table以及AFS,Table用于存储数据在AFS中的地址信息,ES用于构建并存储Table的索引信息。以下即以此为例进行说明。
本实施例中,为平衡各存储集群间的读写压力,分散存储压力,采用分集群、分机房、分级存储的方式。
可预先构建至少一套存储集群,作为一种优选的实现方式,可预先构建南北两套存储集群,每套存储集群中可分别包括:ES、Table以及AFS,即构建南北两套ES+Table+AFS的存储集群。
其中,ES主要用于构建并存储Table的索引信息,如构建二级索引,存储查询维度字段,用于维度查询和统计等。Table可为分布式表格存储***,采用稀疏表数据模型,可提供模式自由(free schema)、数据多版本、数据过期失效、***合并等非关系型数据库(NoSql)数据库特征。Table可用于存储数据在AFS中的地址信息,或者,如果存储集群中不包括AFS,也可将数据存储到Table中,Table可采用串口硬盘(SATA,Serial ATA)进行存储。AFS可为超大规模文件***,可托管所有的离线存储资源,并可提供存储服务化能力。AFS可同时支持在线业务、离线业务、在线离线混合部署业务以及备份业务等。本实施例中可利用AFS来存储全量字段的数据,同时存入AFS的数据可用于数据挖掘分析等。
图2为本申请所述南北两套存储集群的示意图。如图2所示,对于任意一套存储***来说,其中的ES和Table可位于不同的机房。
对于待存储的数据,可根据对应的业务及用户类型(如是否为VIP)等,按照预先配置,确定出具体的存储位置,并相应地进行存储。
另外,通常来说,南方用户的数据会存储到南方的存储集群,北方用户的数据会存储到北方的存储集群,但特殊情况下,如南方存储集群出现了问题,也可将南方用户的数据存储到北方的存储集群。
通过上述介绍可以看出,本实施例中,可采用多级存储方式,从而可实现海量数据的存储,提升了读写性能,并增强了海量数据存储的效率和稳定性,而且,大大减少了对SSD的使用,主要使用SATA或更便宜的AFS来进行存储,从而降低了实现成本等。
本实施例中,还可将数据划分为核心数据和非核心数据(普通数据),并可在ES中存储核心数据对应的索引信息的副本,即核心数据ES中带副本,非核心数据ES中无副本,从而保证了核心数据的完整性和读写的高效性等。
具体将哪些数据划分为核心数据、将哪些数据划分为非核心数据可根据实际需要而定。比如,可按照重要程度及使用频率等将数据划分为核心数据和非核心数据。
本实施例中,针对存储集群中的海量数据,还可提供数据查询功能,如可获取针对存储集群中存储的数据的查询请求,基于ES和Table中的信息,按预定方式从AFS中获取查询的数据返回。可支持各不同类型的查询请求,如第一查询请求和第二查询请求,优选地,第一查询可为文章标识(nid)查询,第二查询可为手机序列号标识(cuid)查询,以下分别对其具体实现进行说明。
1)nid查询
获取用户的nid查询请求,确定出对应的ES,并可根据确定出的ES中的索引信息确定出行键列表(rowkey list)。
根据查询请求对应的用户类型(如是否为VIP)及业务等,可确定出对应的ES,并可根据确定出的ES中的索引信息,通过路由标识(RoutingId)路由到Table中的具体分片(slice),返回rowkey list。
之后,可根据rowkey list查询Table,确定出查询的数据所在的地址信息。进一步地,可根据所述地址信息从AFS中获取查询的数据返回。
如果利用Table来存储全量字段的数据,那么在获取到rowkey list后,可根据rowkey list查询Table,从而直接获取到查询的数据返回。如果利用AFS来存储全量字段的数据,那么在获取到rowkey list后,则需要首先根据rowkey list查询Table,从而确定出查询的数据所在的地址信息,进而根据所述地址信息从AFS中获取查询的数据返回。
2)cuid查询
可获取用户的cuid查询请求,根据cuid确定出Table中的对应slice。比如,可按照现有方式通过cuid(即rowkey的前缀)来计算slice分片号,从而确定出具体的slice。
之后,针对确定出的slice,可采用范围(scan)查询方式或rowkey随机查询方式,确定出查询的数据所在的地址信息。进一步地,可根据所述地址信息从AFS中获取查询的数据返回。scan查询方式以及rowkey随机查询方式的具体实现均为现有技术。
同样地,如果利用Table来存储全量字段的数据,那么可直接从Table中获取查询的数据返回。如果利用AFS来存储全量字段的数据,那么则需要首先从Table中获取查询的数据所在的地址信息,进而根据所述地址信息从AFS中获取查询的数据返回。
在Table中存储数据在AFS中的地址信息时,可采用以下方式。
比如,AFS中的一条数据记录的文件路径为:
/user/feed_plat/job_data/development/diagnosis/exporter_output/RoughSortLog/7249088751862528/201912090630_0。
其中,/user/feed_plat/job_data/development/diagnosis/exporter_output/为读写双方都已知不变的部分,那么Table只需要按照模块名(即RoughSortLog)/消费实例id/时间戳_第一条偏移量的格式保留RoughSortLog/7249088751862528/201912090630_0部分即可,即可将RoughSortLog/7249088751862528/201912090630_0部分作为地址信息存储在Table中。
基于上述介绍,图3为本申请所述查询及地址信息存储方式示意图。如图3所示,对于cuid查询,无需执行RoutingId路由及返回rowkey list等操作,另外,还可在查询端对于查询到的数据进行融合去重等处理,最终展示给用户。
需要说明的是,对于前述的方法实施例,为了简单描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
总之,采用本申请方法实施例所述方案,采用多级存储方式,可实现海量数据的存储,提升了读写性能,并增强了海量数据存储的效率和稳定性;而且,大大减少了对SSD的使用,主要使用SATA或更便宜的AFS来进行存储,从而降低了实现成本;另外,可通过存储副本来保证核心数据的完整性和读写的高效性;再有,可支持各种查询方式,具有广泛适用性等。
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
图4为本申请所述数据存储装置实施例400的组成结构示意图。如图4所示,包括:第一获取单元401以及存储单元402。
第一获取单元401,用于获取待存储的数据。
存储单元402,用于将数据存储到预先构建的存储集群中的底层存储***中;其中,存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;中间存储***用于存储数据在底层存储***中的地址信息,上层存储***用于构建并存储中间存储***的索引信息。
优选地,上层存储***可为ES,中间存储***可为Table,底层存储***可为AFS。以下即以此为例进行说明。
可预先构建至少一套存储集群,作为一种优选的实现方式,可预先构建南北两套存储集群,每套存储集群中可分别包括:ES、Table以及AFS,即构建南北两套ES+Table+AFS的存储集群。
存储单元402还可将数据划分为核心数据和非核心数据,在ES中存储核心数据对应的索引信息的副本,即核心数据ES中带副本,非核心数据ES中无副本,从而保证了核心数据的完整性和读写的高效性等。
具体将哪些数据划分为核心数据、将哪些数据划分为非核心数据可根据实际需要而定。比如,可按照重要程度及使用频率等将数据划分为核心数据和非核心数据。
若存储集群中不包括AFS,存储单元402还可将数据存储到Table中。Table可采用SATA进行存储。
图5为本申请所述数据查询装置实施例500的组成结构示意图。如图5所示,包括:第二获取单元501以及查询单元502。
第二获取单元501,用于获取针对存储集群中存储的数据的查询请求;存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***底层存储***;底层存储***用于存储数据,中间存储***用于存储数据在所述底层存储***中的地址信息,上层存储***用于构建并存储中间存储***的索引信息。
查询单元502,用于基于上层存储***和中间存储***中的信息,按预定方式从底层存储***中获取查询的数据返回。
优选地,上层存储***可为ES,中间存储***可为Table,底层存储***可为AFS。以下即以此为例进行说明。
查询单元502可获取用户的第一查询请求,如nid查询请求,确定出对应的ES,并根据确定出的ES中的索引信息确定出rowkey list,根据rowkey list查询Table,确定出查询的数据所在的地址信息,根据所述地址信息从AFS中获取查询的数据返回。
和/或,查询单元502可获取用户的第二查询请求,如cuid查询请求,根据cuid确定出Table中的对应slice,针对slice,采用scan查询方式或rowkey随机查询方式,确定出查询的数据所在的地址信息,根据所述地址信息从AFS中获取查询的数据返回。
图4和图5所示装置实施例的具体工作流程请参照前述方法实施例中的相关说明,不再赘述。
总之,采用本申请装置实施例所述方案,采用多级存储方式,可实现海量数据的存储,提升了读写性能,并增强了海量数据存储的效率和稳定性;而且,大大减少了对SSD的使用,主要使用SATA或更便宜的AFS来进行存储,从而降低了实现成本;另外,可通过存储副本来保证核心数据的完整性和读写的高效性;再有,可支持各种查询方式,具有广泛适用性等。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例所述方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器Y01、存储器Y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图6中以一个处理器Y01为例。
存储器Y02即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器Y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器Y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置Y03和输出装置Y04。处理器Y01、存储器Y02、输入装置Y03和输出装置Y04可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置Y03可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用集成电路、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管或者液晶显示器监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网、广域网、区块链网络和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (16)

1.一种数据存储方法,其特征在于,包括:
获取待存储的数据;
将所述数据存储到预先构建的存储集群中的底层存储***中;
其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及所述底层存储***;所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息。
2.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:将所述数据划分为核心数据和非核心数据;在所述上层存储***中存储所述核心数据对应的索引信息的副本。
3.根据权利要求1所述的方法,其特征在于,
该方法进一步包括:若所述存储集群中不包括所述底层存储***,则将所述数据存储到所述中间存储***中。
4.根据权利要求1所述的方法,其特征在于,
所述上层存储***包括:弹性搜索***ES;所述中间存储***包括:分布式表格存储***Table;所述底层存储***包括:高级文件***AFS。
5.一种数据查询方法,其特征在于,包括:
获取针对存储集群中存储的数据的查询请求;所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;所述底层存储***用于存储数据,所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息;
基于所述上层存储***和所述中间存储***中的信息,按预定方式从所述底层存储***中获取查询的数据返回。
6.根据权利要求5所述的方法,其特征在于,
所述按预定方式从所述底层存储***中获取查询的数据返回包括:
获取用户的第一查询请求,确定出对应的上层存储***,并根据确定出的上层存储***中的索引信息确定出行键列表;
根据所述行键列表查询所述中间存储***,确定出查询的数据所在的地址信息;
根据所述地址信息从所述底层存储***中获取查询的数据返回。
7.根据权利要求5所述的方法,其特征在于,
所述按预定方式从所述底层存储***中获取查询的数据返回包括:
获取用户的第二查询请求,根据所述第二查询请求确定出所述中间存储***中的对应分片;
针对所述分片,采用范围查询方式或行键列表随机查询方式,确定出查询的数据所在的地址信息;
根据所述地址信息从所述底层存储***中获取查询的数据返回。
8.一种数据存储装置,其特征在于,包括:第一获取单元以及存储单元;
所述第一获取单元,用于获取待存储的数据;
所述存储单元,用于将所述数据存储到预先构建的存储集群中的底层存储***中;其中,所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及所述底层存储***;所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息。
9.根据权利要求8所述的装置,其特征在于,
所述存储单元进一步用于,将所述数据划分为核心数据和非核心数据;在所述上层存储***中存储所述核心数据对应的索引信息的副本。
10.根据权利要求8所述的装置,其特征在于,
所述存储单元进一步用于,若所述存储集群中不包括所述底层存储***,则将所述数据存储到所述中间存储***中。
11.根据权利要求8所述的装置,其特征在于,
所述上层存储***包括:弹性搜索***ES;所述中间存储***包括:分布式表格存储***Table;所述底层存储***包括:高级文件***AFS。
12.一种数据查询装置,其特征在于,包括:第二获取单元以及查询单元;
所述第二获取单元,用于获取针对存储集群中存储的数据的查询请求;所述存储集群至少为一套,每套存储集群中分别包括:上层存储***、中间存储***以及底层存储***;所述底层存储***用于存储数据,所述中间存储***用于存储所述数据在所述底层存储***中的地址信息,所述上层存储***用于构建并存储所述中间存储***的索引信息;
所述查询单元,用于基于所述上层存储***和所述中间存储***中的信息,按预定方式从所述底层存储***中获取查询的数据返回。
13.根据权利要求12所述的装置,其特征在于,
所述查询单元获取用户的第一查询请求,确定出对应的上层存储***,并根据确定出的上层存储***中的索引信息确定出行键列表,根据所述行键列表查询所述中间存储***,确定出查询的数据所在的地址信息,根据所述地址信息从所述底层存储***中获取查询的数据返回。
14.根据权利要求12所述的装置,其特征在于,
所述查询单元获取用户的第二查询请求,根据所述第二查询请求确定出所述中间存储***中的对应分片,针对所述分片,采用范围查询方式或行键列表随机查询方式,确定出查询的数据所在的地址信息,根据所述地址信息从所述底层存储***中获取查询的数据返回。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
CN202010147158.7A 2020-03-05 2020-03-05 数据存储及查询方法、装置、电子设备及存储介质 Pending CN111506570A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010147158.7A CN111506570A (zh) 2020-03-05 2020-03-05 数据存储及查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010147158.7A CN111506570A (zh) 2020-03-05 2020-03-05 数据存储及查询方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111506570A true CN111506570A (zh) 2020-08-07

Family

ID=71868987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010147158.7A Pending CN111506570A (zh) 2020-03-05 2020-03-05 数据存储及查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111506570A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314503A (zh) * 2011-09-01 2012-01-11 浪潮(北京)电子信息产业有限公司 一种索引方法
CN102436478A (zh) * 2011-10-12 2012-05-02 浪潮(北京)电子信息产业有限公司 一种实现海量数据存取的***及方法
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置
CN103186542A (zh) * 2011-12-27 2013-07-03 腾讯科技(北京)有限公司 一种数据查询的方法及装置
CN105468642A (zh) * 2014-09-09 2016-04-06 杭州海康威视数字技术股份有限公司 数据的存储方法及装置
CN105701096A (zh) * 2014-11-25 2016-06-22 腾讯科技(深圳)有限公司 索引生成方法、数据查询方法、装置及***
CN107291889A (zh) * 2017-06-20 2017-10-24 郑州云海信息技术有限公司 一种数据存储方法及***
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质
CN109918472A (zh) * 2019-02-27 2019-06-21 北京百度网讯科技有限公司 存储和查询数据的方法、装置、设备和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314503A (zh) * 2011-09-01 2012-01-11 浪潮(北京)电子信息产业有限公司 一种索引方法
CN102436478A (zh) * 2011-10-12 2012-05-02 浪潮(北京)电子信息产业有限公司 一种实现海量数据存取的***及方法
CN103186542A (zh) * 2011-12-27 2013-07-03 腾讯科技(北京)有限公司 一种数据查询的方法及装置
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置
CN105468642A (zh) * 2014-09-09 2016-04-06 杭州海康威视数字技术股份有限公司 数据的存储方法及装置
CN105701096A (zh) * 2014-11-25 2016-06-22 腾讯科技(深圳)有限公司 索引生成方法、数据查询方法、装置及***
CN107291889A (zh) * 2017-06-20 2017-10-24 郑州云海信息技术有限公司 一种数据存储方法及***
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质
CN109918472A (zh) * 2019-02-27 2019-06-21 北京百度网讯科技有限公司 存储和查询数据的方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
US9483513B2 (en) Storing large objects on disk and not in main memory of an in-memory database system
CN105993011B (zh) 跨多个输入数据流的样式匹配的方法、***和设备
US8856079B1 (en) Application programming interface for efficient object information gathering and listing
US8880510B2 (en) Unique value calculation in partitioned tables
CN111581216A (zh) 数据处理方法、装置、设备以及存储介质
CN104102710A (zh) 一种海量数据查询方法
CN103177062A (zh) 用于高速内存在线分析处理查询和操作的加速查询操作器
CN103177059A (zh) 用于数据库计算引擎的分离处理路径
CN111045985B (zh) 文件存储处理方法、服务器、电子设备及存储介质
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
US10296497B2 (en) Storing a key value to a deleted row based on key range density
US10289383B2 (en) Cross object synchronization
US10528590B2 (en) Optimizing a query with extrema function using in-memory data summaries on the storage server
CN110737682A (zh) 一种缓存操作方法、装置、存储介质和电子设备
CN111241108A (zh) 基于键值对kv***的索引方法、装置、电子设备和介质
US9792312B2 (en) Row identification column authorization profiles
CN112115114A (zh) 日志处理的方法、装置、设备及存储介质
CN111506803A (zh) 内容推荐方法、装置、电子设备及存储介质
CN110633281A (zh) 多类型数据源的处理方法及装置
CN110737747A (zh) 一种数据操作方法、装置及***
CN110598059B (zh) 数据库操作方法及装置
US8396858B2 (en) Adding entries to an index based on use of the index
US9773034B1 (en) Large-scale log index
US10157216B2 (en) Data management system and data management method
CN111290714A (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

Application publication date: 20200807

RJ01 Rejection of invention patent application after publication