CN115587090A - 一种基于Doris的数据存储方法、装置、设备及介质 - Google Patents
一种基于Doris的数据存储方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115587090A CN115587090A CN202211091119.5A CN202211091119A CN115587090A CN 115587090 A CN115587090 A CN 115587090A CN 202211091119 A CN202211091119 A CN 202211091119A CN 115587090 A CN115587090 A CN 115587090A
- Authority
- CN
- China
- Prior art keywords
- copy
- node
- storage
- storage medium
- data
- 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/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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (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
本申请公开了一种基于Doris的数据存储方法、装置、设备及介质,针对要存储的第一数据分片,获取该第一数据分片对应副本的存储模式。如果存储模式为异构存储模式,则将该第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上。其中,第一存储介质为低速存储介质,查询速度较慢。在存储模式为异构存储模式且第一数据分片还存在对应的第二副本,将第二副本存储到第二后端BE节点对应的第二存储介质上。其中,第二存储介质为高速存储介质,具有较高的查询速度,第二副本为第一数据分片对应的副本中除第一副本外的其他任意一个副本。即,本申请通过异构存储的方式减少在高速存储介质中所存储的副本数量,从而降低存储成本。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种基于Doris的数据存储方法、装置、设备及介质。
背景技术
Doris是一款高性能分析型数据仓库,基于大规模并行处理(Massively ParallelProcessing,MPP)架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。其中,Doris通过分区、分桶两种划分方式将表划分成多个数据分片(Tablet)。目前,Doris支持Tablet多副本存储,以通过多副本保证数据的可靠性以及支持高并发查询能力。
然而,在一些场景下,数据的查询效率较低,多副本存储将导致存储成本较高。
发明内容
有鉴于此,本申请实施例提供一种基于Doris的数据存储方法、装置、设备及介质,以实现通过异构存储的方式,降低存储成本。
为实现上述目的,本申请提供的技术方案如下:
在本申请第一方面,提供了一种基于Doris的数据存储方法,所述方法包括:
获取第一数据分片对应副本的存储模式,所述存储模式包括异构存储模式和同构存储模式;
若所述存储模式为所述异构存储模式,将所述第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上,所述第一存储介质为低速存储介质;
若所述第一数据分片存在对应的第二副本,将所述第二副本存储到第二后端BE节点对应的第二存储介质上,所述第二存储介质为高速存储介质,所述第二副本是指所述第一数据分片对应的副本中除所述第一副本外的其他任一副本。
在本申请第二方面,提供了一种基于Doris的数据存储装置,所述装置包括:
获取单元,用于获取第一数据分片对应副本的存储模式,所述存储模式包括异构存储模式和同构存储模式;
第一存储单元,用于若所述存储模式为所述异构存储模式,将所述第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上,所述第一存储介质为低速存储介质;
第二存储单元,用于若所述第一数据分片存在对应的第二副本,将所述第二副本存储到第二后端BE节点对应的第二存储介质上,所述第二存储介质为高速存储介质,所述第二副本是指所述第一数据分片对应的副本中除所述第一副本外的其他任一副本。
在本申请第三方面,提供了一种电子设备,所述设备包括:处理器和存储器;
所述存储器,用于存储指令或计算机程序;
所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行第一方面所述的方法。
在本申请第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得所述设备执行第一方面所述的方法。
在本申请第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现第一方面所述的方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例中,针对要存储的第一数据分片,获取该第一数据分片对应副本的存储模式,该存储模式包括异构存储模式和同构存储模式。如果存储模式为异构存储模式,则将该第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上。其中,第一存储介质为低速存储介质,查询速度较慢。在存储模式为异构存储模式且第一数据分片还存在对应的第二副本,将第二副本存储到第二后端BE节点对应的第二存储介质上。其中,第二存储介质为高速存储介质,具有较高的查询速度,第二副本为第一数据分片对应的副本中除第一副本外的其他任意一个副本。即,本申请通过异构存储的方式减少在高速存储介质中所存储的副本数量,从而降低存储成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于Doris的数据存储场景示意图;
图2为本申请实施例提供的一种基于Doris的数据存储方法流程图;
图3为本申请实施例提供的另一种基于Doris的数据存储场景示意图;
图4为本申请实施例提供的一种数据查询场景示意图;
图5为本申请实施例提供的一种数据修复场景示意图;
图6为本申请实施例提供的一种基于Doris的数据存储装置示意图;
图7为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Doris包括前端(Frontend,FE)节点和后端(Backend,BE)节点,其中,FE节点负责存储以及维护集群元数据、接收、解析、查询、设计规划整体查询流程,BE节点负责数据存储和具体的实施过程。在数据存储方面,BE节点是完全对等的,FE节点按照一定策略将数据分配到BE节点上。在数据导入时,数据将直接写入BE节点上,不会通过FE节点中转,BE节点负责将导入数据写成对应的格式以及生成相关索引。
在Doris存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶)。每个Tablet包含若干数据行,各个Tablet之间的数据没有交集,并且在物理上是独立存储的。多个Tablet在逻辑上归属于不同的分区Partition。一个Tablet只属于一个Partition。而一个Partition包含若干个Tablet。Tablet是数据移动、复制等操作的最小物理存储单元。
目前,Doris支持Tablet多副本存储,默认副本数为三个。多副本能够保证数据存储的高可靠,以及服务的高可用。在使用三副本的情况下,一个节点的异常不会影响服务的可用性,集群的读、写服务仍然能够正常进行。另外,增加副本数还有助于提高系统支持高并发查询的能力。
例如图1所示的应用场景,将一个表Table按照时间划分为4个分区,其中第一分区中包括4个数据分片,分别为TabletA、TabletB、TabletC以及TabletD。同时,TabletA-TabletD各对应3个副本,同一数据分片对应的3个副本分别存储到不同的BE节点上。
在一个生产集群中,Doris推荐用户至少使用3个副本的表来保证数据的可靠性,但由于Doris经常被用在实时数仓的场景中,对数据时延的要求非常高,导致使用一些高速存储介质来存储Doris中的数据。但在大多数的联机分析处理(on-Line AnalyticProcessing,OLAP)中,用户对数据的查询频率较低,往往1个副本或2个副本就能满足用户的查询需求,Doris至少3副本的策略仅为了数据的可靠性,而忽视了数据的存储成本。
基于此,本申请提供了一种基于Doris的数据存储方法,当一个数据分片对应存储模式为异构存储模式且对应多个副本时,将利用不同的存储介质分别存储,不再将所有副本均存储到高速存储介质上,从而降低对高速存储介质的使用,进而减少存储成本。
为便于理解本申请实施例提供的技术方案,下面将结合附图进行说明。
参见图2,该图为本申请实施例提供的一种基于Doris的数据存储方法流程图,如图2所示,该方法可以由数据存储设备执行,该数据存储设备上部署有Doris数据库,该方法可以包括:
S201:获取第一数据分片对应的副本存储模式。
其中,副本存储模式可以包括同构存储模式和异构存储模式,同构存储模式是指数据分片对应的各个副本对应的存储介质相同,例如多个副本均存储在不同BE节点的固态硬盘(Solid State Disk,简称SSD)中。异构存储模式是指数据分片对应的副本所对应的存储介质不同,例如多个副本中一个副本存储在BE节点对应的简单存储服务(SimpleStorage Service,S3)中,另一些副本存储在BE节点对应的SSD中。
本实施例中,用户可以通过建表语句指示表中各数据分片对应副本的数量以及存储模式,FE节点在接收到建表语句后,通过解析该建表语句获取针对表中各个数据分片所配置的存储模式。其中,第一数据分片为基于表所划分的任一数据分片。具体地,可以在建表语句中设置指示存储模式的字段,通过该字段的不同取值来定义同构存储模式和异构存储模式。例如,建表语句中包括字段S,当S=1指示存储模式为异构存储模式;当S=0指示存储模式为同构存储模式。
S202:若副本存储模式为异构存储模式,将第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上。
本实施例中,若第一数据分片对应副本的存储模式为异构存储模式,则将第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上。其中,第一存储介质为低速存储介质。即,当第一数据分片对应副本的存储模式为异构存储模式时,将其中一个副本存储到后端BE节点对应的低速存储介质中,保证数据的可靠性。具体地,第一存储介质为可靠的低速存储介质,以提高数据的可靠性,例如可以为S3存储、分布式存储、本地的硬盘驱动器(Hard Disk Drive,HDD)。
S203:若第一数据分片存在对应的第二副本,将第一数据分片对应的第二副本存储到第二后端BE节点对应的第二存储介质上。
在第一数据分片对应的副本数量大于1,即存在第二副本时,将该第二副本存储到第二后端BE节点对应的第二存储介质上。其中,第二存储介质为高速存储介质,第二副本是指第一数据分片对应的副本中除第一副本外的其他任一副本。例如,第二存储介质为SSD、非易失性存储器(Non-Volatile Memory,NVM)。
也就是,在确定第一数据分片对应副本的存储模式为异构存储模式时,获取该第一数据分片对应的副本数量,如果副本数量为1,则将该副本存储到第一后端BE节点对应的第一存储介质上;如果副本数量大于1,则将其中一个副本(第一副本)存储到第一后端BE节点对应的第一存储介质上,以及将其他副本(第二副本)存储到第二后端BE节点对应的第二存储介质上。进一步地,如果副本数量大于2,则将多个第二副本可以存储在同一第二后端BE节点对应的第二存储介质上,也可以将该多个第二副本存储在不同的第二后端BE节点。
其中,第一后端BE节点和第二后端BE节点可以为同一BE节点,例如,Doris所包括的BE节点数量小于副本数量,在该情况下,第一副本存储在BE节点对应的第一存储介质上,第二副本存储在该BE节点对应的第二存储介质。例如,Doris仅包括1个BE节点,且第一数据分片对应2个副本,在进行异构存储时,一个副本存储在该BE节点的第一存储介质上,另一个副本存储在该BE节点的第二存储介质上。或者,第一后端BE节点和第二后端BE节点也可以为不同的BE节点,例如,Doris所包括的BE节点数量大于或等于副本数量,在该情况下,第一副本存储在一个BE节点对应的第一存储介质上,第二副本存储在另一个BE节点对应的第二存储介质上。例如,Doris包括4个节点,分别为BE1-BE4,且第一数据分片对应2个副本,在进行异构存储时,一个副本可以存储在BE1节点的第一存储介质上,另一个副本可以存储在BE2节点的第二存储介质上。
进一步,当FE接收到针对其他数据分片对应副本的存储时,均可以按照上述S201-S203进行存储。具体地,获取第二数据分片对应副本的存储模式;若存储模式为异构存储模式,可以将第二数据分片对应的一个副本存储到第一后端BE节点对应的第一存储介质上。
为便于理解本申请的实现框架,参见图3所示的应用场景示意图,在图3中,数据分片TabletA对应4个副本、TabletB对应3个副本、TabletC对应2个副本和TabletD对应个1副本。Doris包括BE1-BE4共4个BE节点,该4个BE节点中每个BE节点均对应有本地的SSD存储和远程的S3存储。上述4个数据分片对应副本的存储模式均为异构存储模式,则TabletA对应的A-4副本存储到BE4节点对应的S3上,其他3个副本分别存储在BE1-BE3对应的SSD上。同理,Tablet B/C/D都有1个副本存储到BE4的S3上,其他副本存储到BE1-BE3对应的SSD上。
需要说明的是,对于只有1个副本的数据分片,为保证数据的可靠性,将其对应的存储模式设置为异构存储模式。即将该副本存储到低速存储介质上。其中,为便于理解,在图3所示的应用场景,所有S3类型的副本均存储到BE4节点,在实际应用中,可以将S3类型的副本存储到不同的BE节点,本实施例在此不做限定。在执行管理任务时,BE节点均会访问本地的SSD和远端的S3,以同时管理基于SSD存储的副本和基于S3存储的副本。
可见,针对要存储的第一数据分片,获取该第一数据分片对应副本的存储模式,该存储模式包括异构存储模式和同构存储模式。如果存储模式为异构存储模式,则将该第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上。其中,第一存储介质为低速存储介质,查询速度较慢。在存储模式为异构存储模式且第一数据分片还存在对应的第二副本,将第二副本存储到第二后端BE节点对应的第二存储介质上。其中,第二存储介质为高速存储介质,具有较高的查询速度,第二副本为第一数据分片对应的副本中除第一副本外的其他任意一个副本。即,本申请通过异构存储的方式减少在高速存储介质中所存储的副本数量,从而降低存储成本。
本实施例中,数据分片对应的副本可以采用异构存储模式进行存储,在异构存储的情况下,对于数据分片的查询和写入将不同于同构存储,下面将分别对查询和写入进行说明。
一、数据查询
1)获取数据查询请求,该数据查询请求包括数据标识,该数据标识指示所要查询的第一目标数据分片。
本实施例中,FE可以接收客户端发送的数据查询请求,通过解析该数据查询请求获取其所包括的数据标识,通过该数据标识确定用户所要查询的数据分片,即第一目标数据分片。其中,第一目标数据分片可以为第一数据分片,也可以为其他数据分片,本实施例在此不做限定。
2)确定第一目标数据分片对应的存储模式和副本数量。
3)若存储模式为异构存储模式且副本数量大于1,向第三后端BE节点发送数据查询请求。
在确定出所要查询的第一目标数据分片后,获取在存储第一目标数据分片时对应的存储模式和副本数量。如果存储模式为异构存储模式且副本数量大于1,表明存在第一目标数据分片对应的副本存储在第二存储介质上,则向第三后端BE节点发送该数据查询请求。其中,第一目标数据分片的副本存储在第三后端BE节点的第二存储介质上。即,第三后端BE节点的第二存储介质上存储有第一目标数据分片的副本。
其中,当多个BE节点的第二存储介质上均存储有第一目标数据分片的副本时,FE可以随机项其中一个BE节点发送数据查询请求。或者,FE可以根据该多个BE节点的查询负载情况向查询负载较轻的BE节点发送查询请求。
例如,在图4中,第一目标数据分片为TabletA,由于BE1-BE3均在SSD上存储有TabletA的副本,FE可以向BE1、BE2和BE3中任一个BE节点上发送数据查询请求。当第一目标数据分片为TabletC,由于只有BE3的SSD上有TabletC的副本,则向BE3发送数据查询请求。
其中,第三后端BE节点在接收到数据查询请求后,将从第二存储介质读取所要查询的第二目标数据分片的副本,并将该副本发送给FE,进而由FE发送给客户端。
4)若存储模式为异构存储模式且副本数量等于1,向第四后端BE节点发送数据查询请求。
如果存储模式为异构存储模式且副本数量等于1,表明第一目标数据分片只有1个副本存储在第一存储介质上,则向第四后端BE节点发送数据查询请求。其中,第四后端BE节点是指在第一存储介质上存储第一目标数据分片对应副本的BE节点。例如,在图4所示的应用场景中,第一目标数据分片为TabletD,该副本只在BE4节点的S3上存储,则向BE4节点发送数据查询请求。其中,当第一存储介质为远程的存储介质时,FE向第四后端BE节点发送数据查询请求时,可以在该数据查询请求中添加第一存储介质的路径信息,以便第四后端BE节点根据该路径信息到第一存储介质上读取第一目标数据分片的副本。
在本公开的一个实施例中,在向第四后端BE节点发送数据查询请求之前,还可以预先判断在第四后端BE节点的第一存储介质上所存储的第一目标数据分片的副本是否处于存活状态,若处于存活状态,则向第四后端BE节点发送数据查询请求。如果未处于存活状态,则FE可以利用第一目标数据分片对应的元数据获取第一目标数据分片的副本;将该副本存储到第五后端BE节点对应的第一存储介质上;向第五后端BE节点发送数据查询请求。即,当第四后端BE节点上所存储的第一目标数据分片的副本损坏时,将利用第一目标数据分片对应的元数据进行修复,并放置在其他BE节点上,进而向其他BE节点发送查询请求,保证查询的可用性不下降。
也就是,当第一目标数据分片的副本是异构存储时,优先查询第二存储介质上副本,从而提供高查询性能。
二、数据写入
1)获取写入请求,该写入请求包括数据标识,该数据标识指示针对第二目标数据分片进行写入。
2)响应于接收到第一预设数量个第六后端BE节点发送的写入成功响应或接收到第七后端BE节点发送的写入成功响应,确定执行完成写入操作。
其中,第六后端BE节点是指在其对应的第二存储机制上存储第二目标数据分片对应副本的节点,第七后端BE节点是指在其对应的第一存储介质上存储第二目标数据分片对应副本的节点。
在本实施例中,当对第二目标数据分片对应的副本进行写入时,如果第二目标数据分片对应副本即存储在第一存储介质上,也存储在第二存储介质上。在异构存储的情况下,FE确定执行完成写入操作的条件可以包括:第一预设数量个第六后端BE节点向FE发送写入成功响应,或者接收到第七后端BE节点发送的写入成功响应。其中,第一预设数量可以根据实际应用情况设置,例如第一预设数量为n/2+1,其中,n表示第六后端BE节点的数量。例如,在图3所示的应用场景中,当第二目标数据分片为TabletA时,第六后端BE节点包括BE1、BE2和BE3共3个节点,则n=3,当BE1-BE3中任意两个BE节点完成写入操作,则FE确认完成此次写入操作,如果BE4中的副本未完成写入操作,则可以利用其它BE节点上的副本进行修复和更新。
需要说明的是,由于第二存储介质的写入速度远高于第一存储介质的写入速度,因此通常情况下条件“第一预设数量个第六后端BE节点向FE发送写入成功响应”优先被满足。
在本公开的一个实施例中,若第一数据分片的副本数量为2且第二后端BE节点故障,则从第一后端BE节点对应的第一存储介质上拷贝第一数据分片的副本;将所包括的第一数据分片的副本存储到第二后端BE节点外的其他BE节点对应的第二存储介质上。例如,第一数据分片为图5中的TabletC,包括副本C-1和C-2,BE3节点故障,则从BE4节点上拷贝一个副本,将其存储到BE2节点对应的第二存储介质SSD上。
若副本数量大于2且第二后端BE节点故障时,可以从除第一后端BE节点外的其他BE节点对应的第二存储介质上拷贝第一数据分片的副本;将所拷贝的第一数据分片的副本存储到除第二后端BE节点外的其他BE节点对应的第二存储介质上。例如,第一数据分片为图3中的TabletA,其中3个副本存储在SSD上,当BE3节点损坏时,A-3副本丢失,则可以从BE2节点拷贝一个副本,并将其存储到BE1的SSD上。
在一些应用场景中,还可以通过划分冷热数据的方式降低Doris数据库的存储成本。目前,将过去1-2周所存储的数据定义为热数据,该类数据将存储在高速存储介质中,以满足查询时延要求。然而,用户在建表时往往并不确定冷热的分界点,因此会按照一个偏大的时间值来设定,例如,设置3个月内存储的数据均为热数据,仍造成大量的数据存储在高速存储介质中,由于高速存储介质的成本远远高于低速存储介质的成本,从增加存储成本。
基于此,本实施例中可以通过数据分片对应的副本数量来定义冷热数据,具体地,若第一数据分片对应的副本数量大于第二预设数量,将该第一数据分片确定为热数据;若第一数据分片对应的副本数量等于1,将该第一数据分片确定为冷数据。其中,第二预设数量可以根据实际应用情况设置,但为大于1的数值,例如第二预设数量为4。即,在异构存储模式下,可以通过副本数量细粒度地划分数据。
基于上述方法实施例,本申请实施例提供了一种基于Doris的数据存储装置和设备,下面将结合附图进行说明。
参见图6,该图为本申请实施例提供的一种基于Doris的数据存储装置结构图,如图6所示,该装置600可以包括:获取单元601、第一存储单元602和第二存储单元603。
获取单元601,用于获取第一数据分片对应副本的存储模式,所述存储模式包括异构存储模式和同构存储模式;
第一存储单元602,用于若所述存储模式为所述异构存储模式,将所述第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上,所述第一存储介质为低速存储介质;
第二存储单元603,用于若所述第一数据分片存在对应的第二副本,将所述第二副本存储到第二后端BE节点对应的第二存储介质上,所述第二存储介质为高速存储介质,所述第二副本是指所述第一数据分片对应的副本中除所述第一副本外的其他任一副本。
在一些实施方式中,所述装置还包括:确定单元和发送单元;
所述获取单元601,还用于获取数据查询请求,所述数据查询请求包括数据标识,所述数据标识指示所要查询的第一目标数据分片;
确定单元,用于确定所述第一目标数据分片对应的存储模式和副本数量;
发送单元,用于若所述存储模式为所述异构存储模式且所述副本数量大于1,则向第三BE节点发送所述数据查询请求,所述第一目标数据分片的副本存储在所述第三后端BE节点的第二存储介质上;
所述发送单元,用于若所述存储模式为所述异构存储模式且所述副本数量等于1,则向第四后端BE节点发送所述数据查询请求,所述第一目标数据分片的副本存储在所述第四后端BE节点的第一存储介质上。
在一些实施方式中,所述发送单元,具体用于若所述第一目标数据分片的副本处于存活状态,向所述第四后端BE节点发送所述数据查询请求。
在一些实施方式中,所述装置还包括:第三存储单元;
所述获取单元601,还用于若所述第一目标数据分片的副本未处于存活状态,利用所述第一目标数据分片对应的元数据获得所述第一目标数据分片的副本;
所述第三存储单元,用于将所述第一目标数据分片的副本存储到第五后端BE节点对应的第一存储介质上;
所述发送单元,还用于向所述第五后端BE节点发送所述数据查询请求。
在一些实施方式中,所述装置还包括:发送单元和确定单元;
所述获取单元601,还用于获取写入请求,所述写入请求包括数据标识,所述数据标识指示针对第二目标数据分片进行写入;
所述发送单元,用于向存储有所述第二目标数据分片对应副本的所有后端BE节点发送所述写入请求;
所述确定单元,用于响应于接收到第一预设数量个第六后端BE节点发送的写入成功响应或接收到第七后端BE节点发送的写入成功响应,确定执行完成写入操作,所述第六后端BE节点是指在其对应的第二存储介质上存储所述第二目标数据分片对应副本的节点,所述第七后端BE节点是指在其对应的第一存储介质上存储所述第二目标数据分片对应副本的节点。
在一些实施方式中,所述装置还包括:复制单元和第四存储单元;
所述复制单元,用于若所述副本数量等于2且所述第二后端BE节点故障,从所述第一后端BE节点对应的第一存储介质上拷贝所述第一数据分片的副本;
所述第四存储单元,用于将所拷贝的所述第一数据分片的副本存储到除所述第二后端BE节点外的其他后端BE节点对应的第二存储介质上。
在一些实施方式中,所述装置还包括:确定单元;
所述确定单元,用于若所述第一数据分片对应的副本数量大于第二预设数量,将所述第一数据分片确定为热数据;
所述确定单元,用于若第一数据分片对应的副本数量为1,将第一数据分片确定为热数据。
在一些实施方式中,所述装置还包括:第五存储单元;
所述获取单元601,还用于获取第二数据分片对应副本的存储模式;
所述第五存储单元,用于若所述存储模式为所述异构存储模式,将所述第二数据分片对应的一个副本存储到所述第一后端BE节点对应的所述第一存储介质上。
在一些实施方式中,若所述Doris所包括的后端BE节点数量小于所述副本数量,所述第一后端BE节点与所述第二后端BE节点为同一后端BE节点;
若所述Doris所包括的后端BE节点数量大于或等于所述副本数量,所述第一后端BE节点与所述第二后端BE节点为不同后端BE节点。
在一些实施方式中,所述第一存储介质为简单存储服务S3,所述第二存储介质为固态硬盘SSD。
需要说明的是,本实施例中各个单元的具体实现可以参见上述方法实施例中的相关描述。本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,处理单元和发送单元可以是同一个单元,也可以是不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
参见图7,其示出了适于用来实现本公开实施例的电子设备700的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施例提供的电子设备与上述实施例提供的方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(Hyper Text TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备可以执行上述方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元/模块的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种基于Doris的数据存储方法,其特征在于,所述方法包括:
获取第一数据分片对应副本的存储模式,所述存储模式包括异构存储模式和同构存储模式;
若所述存储模式为所述异构存储模式,将所述第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上,所述第一存储介质为低速存储介质;
若所述第一数据分片存在对应的第二副本,将所述第二副本存储到第二后端BE节点对应的第二存储介质上,所述第二存储介质为高速存储介质,所述第二副本是指所述第一数据分片对应的副本中除所述第一副本外的其他任一副本。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取数据查询请求,所述数据查询请求包括数据标识,所述数据标识指示所要查询的第一目标数据分片;
确定所述第一目标数据分片对应的存储模式和副本数量;
若所述存储模式为所述异构存储模式且所述副本数量大于1,则向第三BE节点发送所述数据查询请求,所述第一目标数据分片的副本存储在所述第三后端BE节点的第二存储介质上;
若所述存储模式为所述异构存储模式且所述副本数量等于1,则向第四后端BE节点发送所述数据查询请求,所述第一目标数据分片的副本存储在所述第四后端BE节点的第一存储介质上。
3.根据权利要求2所述的方法,其特征在于,所述向第四后端BE节点发送所述数据查询请求,包括:
若所述第一目标数据分片的副本处于存活状态,向所述第四后端BE节点发送所述数据查询请求。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第一目标数据分片的副本未处于存活状态,利用所述第一目标数据分片对应的元数据获得所述第一目标数据分片的副本;
将所述第一目标数据分片的副本存储到第五后端BE节点对应的第一存储介质上;
向所述第五后端BE节点发送所述数据查询请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取写入请求,所述写入请求包括数据标识,所述数据标识指示针对第二目标数据分片进行写入;
向存储有所述第二目标数据分片对应副本的所有后端BE节点发送所述写入请求;
响应于接收到第一预设数量个第六后端BE节点发送的写入成功响应或接收到第七后端BE节点发送的写入成功响应,确定执行完成写入操作,所述第六后端BE节点是指在其对应的第二存储介质上存储所述第二目标数据分片对应副本的节点,所述第七后端BE节点是指在其对应的第一存储介质上存储所述第二目标数据分片对应副本的节点。
6.根据权利去1所述的方法,其特征在于,所述方法还包括:
若所述副本数量等于2且所述第二后端BE节点故障,从所述第一后端BE节点对应的第一存储介质上拷贝所述第一数据分片的副本;
将所拷贝的所述第一数据分片的副本存储到除所述第二后端BE节点外的其他后端BE节点对应的第二存储介质上。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一数据分片对应的副本数量大于第二预设数量,将所述第一数据分片确定为热数据;
若第一数据分片对应的副本数量为1,将第一数据分片确定为热数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第二数据分片对应副本的存储模式;
若所述存储模式为所述异构存储模式,将所述第二数据分片对应的一个副本存储到所述第一后端BE节点对应的所述第一存储介质上。
9.根据权利要求1所述的方法,其特征在于,
若所述Doris所包括的后端BE节点数量小于所述副本数量,所述第一后端BE节点与所述第二后端BE节点为同一后端BE节点;
若所述Doris所包括的后端BE节点数量大于或等于所述副本数量,所述第一后端BE节点与所述第二后端BE节点为不同后端BE节点。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述第一存储介质为简单存储服务S3,所述第二存储介质为固态硬盘SSD。
11.一种基于Doris的数据存储装置,其特征在于,所述装置包括:
获取单元,用于获取第一数据分片对应副本的存储模式,所述存储模式包括异构存储模式和同构存储模式;
第一存储单元,用于若所述存储模式为所述异构存储模式,将所述第一数据分片对应的第一副本存储到第一后端BE节点对应的第一存储介质上,所述第一存储介质为低速存储介质;
第二存储单元,用于若所述第一数据分片存在对应的第二副本,将所述第二副本存储到第二后端BE节点对应的第二存储介质上,所述第二存储介质为高速存储介质,所述第二副本是指所述第一数据分片对应的副本中除所述第一副本外的其他任一副本。
12.一种电子设备,其特征在于,所述设备包括:处理器和存储器;
所述存储器,用于存储指令或计算机程序;
所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行权利要求1-10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得所述设备执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211091119.5A CN115587090A (zh) | 2022-09-07 | 2022-09-07 | 一种基于Doris的数据存储方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211091119.5A CN115587090A (zh) | 2022-09-07 | 2022-09-07 | 一种基于Doris的数据存储方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115587090A true CN115587090A (zh) | 2023-01-10 |
Family
ID=84771672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211091119.5A Pending CN115587090A (zh) | 2022-09-07 | 2022-09-07 | 一种基于Doris的数据存储方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115587090A (zh) |
-
2022
- 2022-09-07 CN CN202211091119.5A patent/CN115587090A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10121169B2 (en) | Table level distributed database system for big data storage and query | |
CN107077483B (zh) | 共享文件夹和文件的同步 | |
US9934263B1 (en) | Big-fast data connector between in-memory database system and data warehouse system | |
CN110704000B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN107273392B (zh) | 用于搜索图像的计算机实现方法、装置及数据处理系统 | |
CN110688382B (zh) | 数据存储查询方法、装置、计算机设备及存储介质 | |
US10706022B2 (en) | Space-efficient secondary indexing on distributed data stores | |
US10909086B2 (en) | File lookup in a distributed file system | |
CN112334891B (zh) | 用于搜索服务器的集中式存储 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
US20200042609A1 (en) | Methods and systems for searching directory access groups | |
CN111221851A (zh) | 一种基于Lucene的海量数据查询、存储的方法和装置 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN115168362A (zh) | 数据处理方法、装置、可读介质及电子设备 | |
US10866960B2 (en) | Dynamic execution of ETL jobs without metadata repository | |
US20220300503A1 (en) | Querying distributed databases | |
CN110704401A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116049142A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115587090A (zh) | 一种基于Doris的数据存储方法、装置、设备及介质 | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
CN110727694A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106776772B (zh) | 一种数据检索的方法及装置 | |
CN112307061A (zh) | 用于查询数据的方法和装置 | |
US20210248162A1 (en) | Parallel data transfer from one database to another database | |
CN115840786B (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 |