CN110196851A - 一种数据存储方法、装置、设备及存储介质 - Google Patents
一种数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110196851A CN110196851A CN201910383728.XA CN201910383728A CN110196851A CN 110196851 A CN110196851 A CN 110196851A CN 201910383728 A CN201910383728 A CN 201910383728A CN 110196851 A CN110196851 A CN 110196851A
- Authority
- CN
- China
- Prior art keywords
- index
- data
- attribute
- time
- migration
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000005012 migration Effects 0.000 claims abstract description 61
- 238000013508 migration Methods 0.000 claims abstract description 61
- 230000007704 transition Effects 0.000 claims abstract description 37
- 238000013500 data storage Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 13
- 239000012634 fragment Substances 0.000 description 13
- 238000007726 management method Methods 0.000 description 6
- 208000018672 Dilatation Diseases 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000000926 separation method Methods 0.000 description 5
- 230000002567 autonomic effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F16/2228—Indexing 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据存储方法、装置、设备及存储介质,所述方法包括:创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引;获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件;创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中;确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点。本发明能够对数据集群中满足预设条件的索引数据进行迁移,从而实现对不同属性的索引数据进行分开存储,降低存储成本。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术
Elasticsearch是一种分布式存储搜索引擎,对于一个分布式存储系统来说,数据是分散存储在多个节点上的。Elasticsearch的节点可以有多种属性,包括数据节点、master节点、ingest节点等等。原生的Elasticsearch存储方案,通过配置节点的相关属性,可以设定其节点类型,通过配置路径参数,可以设置其对应的数据目录。一个或多个Elasticsearch节点会构成Elasticsearch集群,写入集群的数据会以索引及分片为单位分散存储在各个数据节点上,数据会在各个数据节点上自动均衡。
由于Elasticsearch支持多种数据类型,例如行存、列存、倒排索引、空间索引等,存储空间消耗比较多;一般原始数据写入Elasticsearch需要多倍于数据本身大小的存储空间,Elasticsearch集群的数据存储模式单一,不能根据对数据访问的热度对数据进行分开存储,若所有数据均存储在性能较好的磁盘上,数据存储成本大。
发明内容
本发明所要解决的技术问题在于,提供一种数据存储方法、装置、设备及存储介质,能够对数据集群中满足预设条件的索引数据进行迁移,从而实现对不同属性的索引数据进行分开存储,降低存储成本。
为了解决上述技术问题,第一方面,本发明提供了一种数据存储方法,所述方法包括:
创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引;
获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件;
创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中;
确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
第二方面,本发明提供了一种数据存储装置,所述装置包括:
数据集群创建模块,用于创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引;
第一判断模块,用于获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件;
迁移索引列表创建模块,用于创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中;
数据迁移模块,用于确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
第三方面,本发明提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的数据存储方法。
第四方面,本发明提供了一种计算机存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如第一方面所述的数据存储方法。
实施本发明实施例,具有如下有益效果:
本发明通过在数据集群中设置不同属性的节点,具体可包括第一属性节点和第二属性节点;对于集群中的各索引,根据集群中各索引的创建时间及当前时间,确定所述索引是否满足第一迁移条件,并将满足第一迁移条件的索引加入到迁移索引列表中;当所述迁移索引列表中的某索引的索引数据当前存储在第一属性节点上时,将该索引的索引数据迁移到第二属性节点上。本发明实现了通过对索引的条件判断,确定该索引的当前属性,根据当前索引的属性确定是否需要对该索引的索引数据进行迁移,从而实现对不同属性索引的索引数据进行分开存储,不同属性的索引数据采用不同成本的存储介质,降低存储成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用场景示意图;
图2是本发明实施例提供的一种数据存储方法流程图;
图3是本发明实施例提供的一种索引属性状态判断方法流程图;
图4是本发明实施例提供的一种索引状态过期时间设置方法流程图;
图5是本发明实施例提供的一种数据迁移方法流程图;
图6是本发明实施例提供的一种运营管理系统的架构图;
图7是本发明实施例提供的一种基于Elasticsearch的冷热分离存储系统示意图;
图8是本发明实施例提供的一种数据调度示意图;
图9是本发明实施例提供的一种数据存储装置示意图;
图10是本发明实施例提供的第一判断模块示意图;
图11是本发明实施例提供的索引状态设置模块示意图;
图12是本发明实施例提供的数据迁移模块示意图;
图13是本发明实施例提供的一种设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
首先对本实施例涉及的相关术语作以下解释:
CES:Cloud Elasticsearch,基于Elasticsearch的分布式存储搜索分析引擎。
冷热分离:根据数据被访问的频率,采用不同成本的存储介质,分开存储的技术。
OSS:Operation and Support System,CES集群的运营管理系统。
Etcd:一种用于共享配置和服务发现的分布式、一致性存储系统。
Index(索引):Elasticsearch中的存储单元,和传统数据库中的表类似,包含多个字段,且可以指定各个字段类型。
请参见图1,其示出了本发明的应用场景示意图,包括:用户110、后台服务系统120和存储系统130,该场景中的数据会以索引及其分片为单位分散存储在存储系统130中的各个节点上,用户110可通过用户端设备向存储系统130中写入新数据,也可以通过用户设备在所述存储系统130中进行数据搜索。当用户110通过用户设备发出数据写入请求时,服务器120确定待写入数据对应的索引,将待写入数据存储到存储系统130对应索引的节点中;当用户110通过用户设备发出数据搜索请求时,服务器120可根据搜索请求,从存储系统130中的相关节点获取对应的数据并返回给用户设备。用户可根据自身需求,通过对该场景中各数据索引的属性进行设置,将存储系统130中的数据按索引属性进行分别存储。
请参见图2,其示出了一种数据存储方法,所述方法包括:
S210.创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引。
这里创建的集群中包含有若干个节点,对每个节点可分别进行属性的设置,在具体的实施过程中,可具体设定属性的种类,比如两种属性、三种属性等;本实施例以两种属性为例,并涉及到两种属性的节点,第一属性的节点和第二属性的节点,并且第一属性节点和第二属性节点分别存储在不同的存储介质中。集群中索引的个数不限,这里的索引可以是集群中预先创建好的,在有数据写入时,可将数据写入到对应的索引下;也可以是在有数据写入时,即时创建新索引,并将待写入的数据存储到新创建的索引中。
S220.获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件。
本实施例中需要通过对集群中各索引的属性状态进行判断,从而对各索引的索引数据执行相应的迁移操作。
具体地,请参见图3,其示出了一种索引属性状态判断方法,所述方法包括:
S310.对于每个索引分别计算当前时间与所述创建时间的时间间隔。
可通过服务器来获取当前时间戳,从而确定当前时间;对于所述索引的创建时间,是指该索引被添加到数据集群中的时间。对于每个索引,在获取到这两个时间点之后,计算这两个时间点之间的时间间隔。
S320.当所述时间间隔小于所述索引的状态过期时间时,判定所述索引满足第一迁移条件。
对于每个索引,本实施例都为其设置一个对应的参数:状态过期时间,这个参数可以是根据用户的请求,为各索引分别进行设定的,所述状态过期时间用于表示各索引从第一属性状态变化到第二属性状态的时间间隔,其中,所述各索引的初始状态为第一属性状态。这个参数可用来表示索引的状态属性的变化,具体可以理解为:从该属性创建之时起,经过状态过期时间之后,该索引从一种属性状态转变为另一种属性状态,本实施例中具体可以为该索引从第一属性状态转变为第二属性状态。
对于某一索引,当状态过期时间<时间间隔时,说明从索引的创建到当前时刻点已经超过了该索引的状态过期时间,需要对该索引进行状态属性的变换,此时判定该索引满足第一迁移条件,具体可以为:当该索引当前的状态属性为第一属性状态时,将该索引的状态属性转变为第二属性状态;当该索引当前的状态属性为第二属性状态时,不对该索引做属性状态的转变。
对于某一索引,当状态过期时间>时间间隔时,说明从索引的创建到当前时刻点还没有超过该索引的状态过期时间,还不需要对该索引进行状态属性的变换。
设置状态过期时间,是为了更好的实现数据的自动迁移,当某个索引下的索引数据达到了状态过期时间时,便对相应的数据进行自动迁移,使得不同属性的数据分开存储,节约存储资源。
S230.创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中。
将步骤S220中满足第一迁移条件的索引加入到迁移索引列表中。
S240.确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
迁移索引列表中的所有索引并不一定都满足最终进行迁移的条件,此时需要对迁移列表中的索引进行进一步判断,本实施例列表中需要被迁移的索引应该满足:该索引的索引数据当前存储在第一属性节点,将该索引的索引数据从第一属性节点迁移到第二属性节点。这是因为在此处,主要实现的是将数据从第一属性节点向第二属性节点进行迁移,原本就在第二属性节点的数据就不在需要进行迁移了。本实施例中的数据迁移是索引层面的迁移,即在迁移过程中,只要确定了某个索引是满足迁移条件的,则对该索引下的全部索引数据进行迁移,并不只是对个别数据的迁移。
本发明实施例中,存储在第一属性节点中的数据可以是用户需要进行频繁访问的数据,该部分数据可以存储在性能较好的存储介质中;存储在第二属性节点中的数据可以是用户不需要经常访问或者长时间不需要访问的数据,该部分数据可以存储在性能相对较低的存储介质中。本发明实现了通过对索引的条件判断,确定该索引的当前属性,根据当前索引的属性确定是否需要对该索引的索引数据进行迁移,从而实现对不同属性索引的索引数据进行分开存储,不同属性的索引数据采用不同成本的存储介质,这样提高了数据访问的效率,同时降低了数据存储成本。
请参见图4,其示出了一种索引状态过期时间设置方法,所述方法包括:
S410.响应于状态过期时间设置请求,为各索引分别设置所述状态过期时间。
根据上述实施例可知,在创建各索引时,需要为其分别设置状态过期时间,用于表示每个索引创建多长时间之后需要进行属性状态的转变。
S420.响应于状态过期时间调整请求,所述调整请求中包括:待调整索引,以及所述索引调整后的状态过期时间,对所述待调整索引的状态过期时间进行调整。
对于某个索引,在创建时为其设置状态过期时间之后,该状态过期时间并不是不可更改的,即可以根据用户的具体需求,重新调整该索引的状态过期时间,以一个具体的场景为例:当某个索引达到状态过期时间之后,该索引的索引数据被迁移到第二属性节点,此时用户需要频繁访问该部分数据,将该部分索引数据从第二属性节点迁回第一属性节点,则只需要调大该索引的状态过期时间即可。当增大该索引的状态过期时间时,当前时间与该索引的创建时间的时间间隔小于调整之后的状态过期时间,则认为该索引没有达到状态过期时间,其对应的索引数据也将被会自动迁回第一属性节点。
通过对索引的状态过期时间的灵活调整,能够供用户进行数据迁移的灵活配置,数据可在第一属性节点和第二属性节点进行相互迁移。
在判断索引数据满足迁移条件时,需要对数据进行迁移,但是可能存在这样一种情况,需要同时迁移的数据量很大,若这部分数据进行同时迁移的话,可能会影响其他业务的访问,为此,本实施例提供的了一种数据迁移方法,请参见图5,所述方法包括:
S510.响应于数据迁移并发量调整请求,所述并发量调整请求包括单次迁移数据量,根据所述单次迁移数据量对数据迁移并发量进行调整。
并发量调整请求可以是预先由用户进行设定的,后续系统可根据用户设定的并发量进行数据的自动迁移。
S520.获取当前待迁移的数据量,根据所述待迁移的数据量和所述单次迁移数据量,确定迁移策略。
这里的迁移策略可以是指根据待迁移的数据量和单次迁移数据量,确定数据迁移的批次和数据迁移的顺序。比如,先对哪些数据进行迁移,再对哪些数据进行迁移等。
S530.根据所述迁移策略对所述待迁移数据进行数据迁移。
这里对待迁移数据进行数据迁移包括:
将所述待迁移数据从所述第一属性节点迁移到所述第二属性节点,或,将所述待迁移数据从所述第二属性节点迁移到所述第一属性节点。
通过上述数据迁移的方法,实现了根据系统负载自动调整数据迁移并发量,避免影响业务访问。
下面以一个具体的运营管理系统(OSS)来说明本发明的具体实施方法,请参见图6,其示出了运营管理系统的架构图,所述系统包括一个OSS主节点master和ES(Elasticsearch的缩写)集群,ES集群由多个ES节点构成,每个ES节点均有一个代理节点agent。其中,master由多台机器及程序组成分布式集群,提供高可用的调度管理服务;agent部署在每个Elasticsearch节点上,提供Elasticsearch节点本地的信息上报,监控,调度等服务;master和多个agent通信,例如创建Elasticsearch集群、扩容、缩容等操作均由master向agent下发任务完成。master也可以直接调用被管理的Elasticsearch集群接口,进行数据采集、集群控制等操作。
上述实施例中的第一属性节点和第二属性节点在这里具体可以为热节点和冷节点,所述热节点可用于存储用户频繁访问的数据,称为热数据;所述冷节点可用于存储用户不经常访问的数据,称为冷数据。要实现冷热分离、数据迁移并发控制、数据迁移调度等操作时,可以由master直接向Elasticsearch集群接口下发指令来触发执行。
请参见图7,其示出了一种基于Elasticsearch的冷热分离存储系统,所述冷热分离系统中包括若干冷节点和若干热节点,Elasticsearch的索引实际上是指向一个或者多个物理分片的逻辑命名空间,Elasticsearch是利用分片将数据分发到集群内各处的。分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。当集群规模扩大或者缩小时,Elasticsearch会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。一个分片可以是主分片或者副本分片。索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。用户通过应用程序与存储系统进行交互时,是直接与索引而不是与分片进行交互。
通过OSS管控平台,在CES集群机器上架的时候,将机器的CPU、内存、磁盘容量及类型放到一致性存储系统etcd中。在创建CES集群时,可以指定冷节点数量,热节点数量,以及各类型节点的资源信息,例如CPU、内存、磁盘容量及类型等。热节点偏向实时性要求较高的读写场景,一般会选用读写性能较高的磁盘,例如固态硬盘SSD;冷节点偏向大容量存储,数据访问不是很频繁场景,一般会选用机械硬盘HDD。冷热集群创建之后,数据写入默认会按照索引(表)级别保存在热节点上,系统提供用户接口配置哪些索引多长时间(称为索引热过期时间,即上述实施例中的状态过期时间)以后从热节点搬迁到冷节点存储,此时热过期时间<(当前时间–索引创建时间)。如果用户希望将部分已经搬迁到冷节点的索引数据搬迁到热节点上,只需重新配置索引热过期时间,满足热过期时间>(当前时间–索引创建时间)即可。
此方案已经被应用在CES集群中,当用户想降低存储成本时,可以利用本方案将不活跃的冷数据搬迁至成本更低的冷节点上存储;数据搬迁至冷节点之后,若后续用户又需要频繁访问这些冷数据,可以通过配置对应数据索引的热过期时间,来实现数据从冷节点到热节点的迁移。
为了降低不活跃的冷数据的存储成本,将不活跃的数据迁移至冷节点进行存储,具体的调度逻辑可为:
OSS Master周期性读取冷热集群的索引列表,这里的冷热集群是指既有热节点又有冷节点的集群,获取索引的创建时间和冷热属性,对于冷热属性有变更的索引,调用Elasticsearch接口更新属性,实际搬迁工作交由Elasticsearch完成,数据分布的控制主要利用Elasticsearch的Shard Allocation Filtering机制实现,该机制可使指定的索引分配到指定的数据节点上,调度周期可以控制在分钟级。
请参见图8,其示出了数据调度示意图,通过运营管理平台的控制,可实现ES集群中数据在冷热节点之间的数据搬移。其中热节点上的数据存储在例如固态硬盘SSD上,冷节点上的数据存储在例如机械硬盘HDD上。
下面对创建集群阶段调度控制、横向扩容阶段调度控制、横向缩容阶段调度控制、自动调度程序和数据搬迁控制逻辑进行详细说明。
1.创建集群阶段调度控制
为了使新建的索引落在指定的机型上,default template新增index.routing.allocation.include.temperature属性:
热集群或冷热集群值为hot,冷集群为cold,这样新建的索引就自动具有数据分配策略。
2.横向扩容阶段调度控制
若热集群首次添加冷节点,为了避免所有已有索引自动向新扩进来的节点搬迁,扩容之前,完成以下设置:
A)更新default template,设置"index.routing.allocation.exclude.temperature":"cold",去掉include temperature属性(如果有),这样新建的索引默认会在热节点上。
B)动态修改所有index属性,具体的修改可通过如下代码实现:
设置之后,这些已有的索引就不会自动迁移到新扩进来的冷节点上。
若冷集群首次添加热节点,扩容之后,更新default template,设置"index.routing.allocation.exclude.temperature":"cold",去掉include temperature属性(如果有)。这样新建的索引就会自动落在热节点上。
3.横向缩容阶段调度控制
若将冷热集群缩容至热集群,缩容之前,动态修改所有索引的属性,具体的修改可通过如下代码实现:
这样所有索引才能被迁移到热节点上。
若将冷热集群缩容至冷集群,缩容之前,完成以下设置:
A)更新default template,设置"index.routing.allocation.include.temperature":"cold",去掉exclude temperature属性(如果有)。这样新建的索引将落在冷节点。
B)动态修改所有索引的属性,具体的修改可通过如下代码实现:
这样所有存量的索引才能被迁移到冷节点上。
4.自动调度程序
每分钟扫描冷热集群所有索引的配置设定,调度程序可配置开关。
根据用户设定的索引热过期时间,动态设置如下参数,热数据将搬迁至冷节点:
5.数据搬迁控制逻辑:
用户可以配置哪些索引多长时间(称为索引热过期时间)以后从热节点搬迁到冷节点存储,此时热过期时间<(当前时间-索引创建时间)。如果用户希望将部分已经搬迁到冷节点的索引数据搬迁到热节点上,只需重新配置索引热过期时间,满足热过期时间>(当前时间-索引创建时间)即可。
配置索引热过期的OSS接口同样也可以通过程序来实现。
以一个日志存储分析场景为例,用户需要保存三个月的日志数据,超过100TB,而频繁分析需求只会访问过去一周的数据,极少数情况下查询过去三个月的数据。由于日志数据写过之后不会再修改,因此基本上活跃数据就只有一周,此时可将一周的数据放到热节点,采用高性能的固态硬盘存储,而剩余的数据全部采用机械硬盘冷节点存储。目前市场单块1TB机械硬盘价格在300元左右,而1TB固态硬盘一般超过2000元,这样采用冷热分离方案,相比全部采用固态硬盘可节省成本5倍以上,既实现了热数据高效访问,也实现了全量数据存储。
本实施例还提供了一种数据存储装置,请参见图9,所述装置包括:
数据集群创建模块910,用于创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引。
第一判断模块920,用于获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件。
迁移索引列表创建模块930,用于创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中。
数据迁移模块940,用于确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
请参见图10,所述第一判断模块920包括:
计算模块1010,用于对于每个索引分别计算当前时间与所述创建时间的时间间隔。
判定模块1020,用于当所述时间间隔小于所述索引的状态过期时间时,判定所述索引满足第一迁移条件。
请参见图11,所述装置还包括索引状态设置模块,所述索引状态设置模块包括:
第一设置模块1110,用于响应于状态过期时间设置请求,为各索引分别设置所述状态过期时间,所述状态过期时间用于表示各索引从第一属性状态变化到第二属性状态的时间间隔,其中,所述各索引的初始状态为第一属性状态。
调整模块1120,用于响应于状态过期时间调整请求,所述调整请求中包括:待调整索引,以及所述索引调整后的状态过期时间,对所述待调整索引的状态过期时间进行调整。
请参见图12,所述数据迁移模块940包括:
响应调整模块1210,用于响应于数据迁移并发量调整请求,所述并发量调整请求包括单次迁移数据量,根据所述单次迁移数据量对数据迁移并发量进行调整。
策略确定模块1220,用于获取当前待迁移的数据量,根据所述待迁移的数据量和所述单次迁移数据量,确定迁移策略。
迁移执行模块1230,用于根据所述迁移策略对所述待迁移数据进行数据迁移。
上述实施例中提供的装置可执行本发明任意实施例所提供方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的方法。
本实施例还提供了一种设备,请参见图13,该设备1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对设备中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在设备1300上执行存储介质1330中的一系列指令操作。设备1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。本实施例上述的任一方法均可基于图13所示的设备进行实施。
本实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如本实施例上述的任一方法。
本发明实现了通过对索引的条件判断,确定该索引的当前属性,根据当前索引的属性确定是否需要对该索引的索引数据进行迁移,从而实现对不同属性索引的索引数据进行分开存储,不同属性的索引数据采用不同成本的存储介质,降低存储成本。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤和顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或中断产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本实施例中所示出的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比示出的更多或更少的部件,或者组合某些部件,或者具有不同的部件的布置。应当理解到,本实施例中所揭露的方法、装置等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元模块的间接耦合或通信连接。
基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员还可以进一步意识到,结合本说明书所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本发明的范围。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引;
获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件;
创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中;
确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
2.根据权利要求1所述的一种数据存储方法,其特征在于,所述对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件包括:
对于每个索引分别计算当前时间与所述创建时间的时间间隔;
当所述时间间隔小于所述索引的状态过期时间时,判定所述索引满足第一迁移条件。
3.根据权利要求2所述的一种数据存储方法,其特征在于,所述方法还包括:
响应于状态过期时间设置请求,为各索引分别设置所述状态过期时间,所述状态过期时间用于表示各索引从第一属性状态变化到第二属性状态的时间间隔,其中,所述各索引的初始状态为第一属性状态。
4.根据权利要求3所述的一种数据存储方法,其特征在于,所述方法还包括:
响应于状态过期时间调整请求,所述调整请求中包括:待调整索引,以及所述索引调整后的状态过期时间,对所述待调整索引的状态过期时间进行调整。
5.根据权利要求1所述的一种数据存储方法,其特征在于,所述方法还包括:
响应于数据迁移并发量调整请求,所述并发量调整请求包括单次迁移数据量,根据所述单次迁移数据量对待迁移数据进行依次迁移,其中,所述对待迁移数据进行依次迁移包括:
将所述待迁移数据从所述第一属性节点迁移到所述第二属性节点,或,将所述待迁移数据从所述第二属性节点迁移到所述第一属性节点。
6.根据权利要求1所述的一种数据存储方法,其特征在于,所述方法还包括:
响应于数据写入请求,所述数据写入请求中包括待写入数据以及与所述待写入数据对应的索引,将所述待写入数据存储到所述索引所在的节点上。
7.一种数据存储装置,其特征在于,包括:
数据集群创建模块,用于创建数据集群,所述数据集群中包括若干第一属性节点、若干第二属性节点及若干索引;
第一判断模块,用于获取当前时间以及所述数据集群中各索引的创建时间,对于每个索引,根据当前时间和所述索引的创建时间,确定所述索引是否满足第一迁移条件;
迁移索引列表创建模块,用于创建迁移索引列表,将所述数据集群中满足所述第一迁移条件的索引加入到所述迁移索引列表中;
数据迁移模块,用于确定所述迁移索引列表中满足第二迁移条件的索引为目标索引,将所述目标索引的索引数据从所述第一属性节点迁移到所述第二属性节点,其中,所述满足第二迁移条件的索引为索引数据存储在第一属性节点上的索引。
8.根据权利要求7所述的一种数据存储装置,其特征在于,所述第一判断模块包括:
计算模块,用于对于每个索引分别计算当前时间与所述创建时间的时间间隔;
判定模块,用于当所述时间间隔小于所述索引的状态过期时间时,判定所述索引满足第一迁移条件。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一项所述的数据存储方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1至6任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383728.XA CN110196851B (zh) | 2019-05-09 | 2019-05-09 | 一种数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383728.XA CN110196851B (zh) | 2019-05-09 | 2019-05-09 | 一种数据存储方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196851A true CN110196851A (zh) | 2019-09-03 |
CN110196851B CN110196851B (zh) | 2024-05-10 |
Family
ID=67752588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910383728.XA Active CN110196851B (zh) | 2019-05-09 | 2019-05-09 | 一种数据存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196851B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258990A (zh) * | 2020-02-17 | 2020-06-09 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111460024A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的实时业务系统 |
CN111914126A (zh) * | 2020-07-22 | 2020-11-10 | 浙江乾冠信息安全研究院有限公司 | 用于索引的网络安全大数据的处理方法、设备及存储介质 |
CN112181987A (zh) * | 2020-10-12 | 2021-01-05 | 嘉联支付有限公司 | 一种非时序数据处理方法 |
CN112612865A (zh) * | 2020-12-17 | 2021-04-06 | 杭州迪普科技股份有限公司 | 一种基于Elasticsearch的文档存储方法和装置 |
CN112817878A (zh) * | 2019-11-15 | 2021-05-18 | 美光科技公司 | 操作具有动态可变属性的存储器的系统和方法 |
WO2021108300A1 (en) * | 2019-11-29 | 2021-06-03 | Amazon Technologies, Inc. | Warm tier storage for search service |
CN113111033A (zh) * | 2021-04-07 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种分布式对象存储系统中桶索引动态重分的方法和系统 |
CN113568567A (zh) * | 2020-04-29 | 2021-10-29 | 香港商希瑞科技股份有限公司 | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 |
CN113596153A (zh) * | 2021-07-28 | 2021-11-02 | 新华智云科技有限公司 | 一种数据均衡方法及系统 |
CN113760861A (zh) * | 2021-01-13 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种数据迁移的方法和装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689602B1 (en) * | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
US8954663B1 (en) * | 2012-06-25 | 2015-02-10 | Kip Cr P1 Lp | System, method and computer program product for synchronizing data written to tape including writing an index into a data partition so that data can be recovered in case of failure |
CN104348862A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 数据迁移处理方法、装置及系统 |
CN104869140A (zh) * | 2014-02-25 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 多集群系统和控制多集群系统的数据存储的方法 |
CN105426128A (zh) * | 2015-11-16 | 2016-03-23 | 浪潮集团有限公司 | 一种索引的维护方法及装置 |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
CN106844405A (zh) * | 2015-12-07 | 2017-06-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法和装置 |
CN107016025A (zh) * | 2016-11-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库索引的建立方法及装置 |
CN108228679A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 时序数据计量方法和时序数据计量装置 |
CN108549696A (zh) * | 2018-04-16 | 2018-09-18 | 安徽工业大学 | 一种基于内存计算的时间序列数据相似性查询方法 |
-
2019
- 2019-05-09 CN CN201910383728.XA patent/CN110196851B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689602B1 (en) * | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
US8954663B1 (en) * | 2012-06-25 | 2015-02-10 | Kip Cr P1 Lp | System, method and computer program product for synchronizing data written to tape including writing an index into a data partition so that data can be recovered in case of failure |
CN104348862A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 数据迁移处理方法、装置及系统 |
CN104869140A (zh) * | 2014-02-25 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 多集群系统和控制多集群系统的数据存储的方法 |
CN103902698A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储系统和存储方法 |
CN106326239A (zh) * | 2015-06-18 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式文件系统及其文件元信息管理方法 |
CN105426128A (zh) * | 2015-11-16 | 2016-03-23 | 浪潮集团有限公司 | 一种索引的维护方法及装置 |
CN106844405A (zh) * | 2015-12-07 | 2017-06-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法和装置 |
CN107016025A (zh) * | 2016-11-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库索引的建立方法及装置 |
CN108228679A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 时序数据计量方法和时序数据计量装置 |
CN108549696A (zh) * | 2018-04-16 | 2018-09-18 | 安徽工业大学 | 一种基于内存计算的时间序列数据相似性查询方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817878B (zh) * | 2019-11-15 | 2022-04-19 | 美光科技公司 | 操作具有动态可变属性的存储器的系统和方法 |
CN112817878A (zh) * | 2019-11-15 | 2021-05-18 | 美光科技公司 | 操作具有动态可变属性的存储器的系统和方法 |
WO2021108300A1 (en) * | 2019-11-29 | 2021-06-03 | Amazon Technologies, Inc. | Warm tier storage for search service |
CN111258990A (zh) * | 2020-02-17 | 2020-06-09 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111258990B (zh) * | 2020-02-17 | 2023-04-07 | 同盾控股有限公司 | 索引库数据迁移方法、装置、设备及存储介质 |
CN111460024A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的实时业务系统 |
CN113568567B (zh) * | 2020-04-29 | 2023-10-24 | 香港商希瑞科技股份有限公司 | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 |
CN111460024B (zh) * | 2020-04-29 | 2023-06-09 | 上海东普信息科技有限公司 | 基于Elasticsearch的实时业务系统 |
CN113568567A (zh) * | 2020-04-29 | 2021-10-29 | 香港商希瑞科技股份有限公司 | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 |
CN111914126A (zh) * | 2020-07-22 | 2020-11-10 | 浙江乾冠信息安全研究院有限公司 | 用于索引的网络安全大数据的处理方法、设备及存储介质 |
CN112181987A (zh) * | 2020-10-12 | 2021-01-05 | 嘉联支付有限公司 | 一种非时序数据处理方法 |
CN112612865A (zh) * | 2020-12-17 | 2021-04-06 | 杭州迪普科技股份有限公司 | 一种基于Elasticsearch的文档存储方法和装置 |
CN113760861A (zh) * | 2021-01-13 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种数据迁移的方法和装置 |
CN113111033A (zh) * | 2021-04-07 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种分布式对象存储系统中桶索引动态重分的方法和系统 |
CN113596153A (zh) * | 2021-07-28 | 2021-11-02 | 新华智云科技有限公司 | 一种数据均衡方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110196851B (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196851A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN110622152B (zh) | 用于查询时间序列数据的可扩展数据库系统 | |
US11269819B1 (en) | Managing consistency models in a distributed database | |
US8392482B1 (en) | Versioning of database partition maps | |
CN102495857B (zh) | 一种分布式数据库的负载均衡方法 | |
WO2021254135A1 (zh) | 任务执行方法及存储设备 | |
US10866970B1 (en) | Range query capacity allocation | |
JP2021513694A (ja) | ダークローンチ実現方法、装置、計算ノード及びシステム | |
US20150212741A1 (en) | Apparatus for in-memory data management and method for in-memory data management | |
JP2005196602A (ja) | 無共有型データベース管理システムにおけるシステム構成変更方法 | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
US9330158B1 (en) | Range query capacity allocation | |
CN109918450B (zh) | 基于分析类场景下的分布式并行数据库及存储方法 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN107977446A (zh) | 一种基于数据分区的内存网格数据加载方法 | |
US20240061712A1 (en) | Method, apparatus, and system for creating training task on ai training platform, and medium | |
Ma et al. | Dependency-aware data locality for MapReduce | |
Fan et al. | Intelligent resource scheduling based on locality principle in data center networks | |
CN115964444B (zh) | 一种云原生分布式多租户数据库实现方法及系统 | |
CN105930202B (zh) | 一种三阈值的虚拟机迁移方法 | |
CN115964176B (zh) | 云计算集群调度方法、电子设备和存储介质 | |
CN116450053A (zh) | 数据存储方法、装置、系统、电子设备和存储介质 | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
CN114625474A (zh) | 容器迁移方法、装置、电子设备及存储介质 | |
WO2019196595A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |