CN110888872A - 数据存储方法、装置、计算机设备和存储介质 - Google Patents
数据存储方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110888872A CN110888872A CN201910983594.5A CN201910983594A CN110888872A CN 110888872 A CN110888872 A CN 110888872A CN 201910983594 A CN201910983594 A CN 201910983594A CN 110888872 A CN110888872 A CN 110888872A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- splitting
- indexes
- strategy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013500 data storage Methods 0.000 title claims abstract description 24
- 230000011218 segmentation Effects 0.000 claims abstract description 38
- 238000000638 solvent extraction Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 17
- 230000003203 everyday effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 20
- 238000012423 maintenance Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据存储方法、装置、计算机设备和存储介质,该方法包括:根据数据分割策略,将待存储的数据拆分成多份数据,其中,该分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;将该多份数据分别存储到不同的索引上,得到多个目标索引,其中,该目标索引包括前缀、根据该分割策略定义的信息;将该多个目标索引对应的数据分别存储到多个节点中。采用本方法能够达到减轻各个ES节点的压力,提高检索能力,且在删除某个分割后的索引的情况下,不会影响到其他索引的查询效率的技术效果。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据存储方法、装置、计算机设备和存储介质。
背景技术
Elasticsearch(简称为,ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据,可以在极短的时间内存储、搜索和分析海量的数据。与传统的关系型数据库相比,ES支持分片和复制,从而方便水平分割和扩展,复制保证了ES的高可用与高吞吐。
目前使用ES存储大量数据一般是将结构相同的数据存储在ES的同一个索引上,利用ES对海量数据的支持,对这些数据进行检索和分析。
具体在存储时,ES会将数据分散存储到多个节点上存储方式如图1所示:
查询时,ES从所有的节点上查询数据后,汇总返回给客户端。查询方式如图2所示。
但是,需要说明的是,如果单个索引的数据量过大,可能会对集群从故障中恢复的能力产生负面影响,删除数据时可能会对索引的查询造成比较大的影响。
针对相关技术中,使用ES存储大量数据时将结构相同的数据存储在ES的同一个索引上,导致各个ES节点的压力较大,检索能力较低的问题,尚未提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减轻各个ES节点的压力,提高检索能力,并且在删除某个分割后的索引后,不会影响到其他索引的查询效率的数据存储方法、装置、计算机设备和存储介质。
一种数据存储方法,所述方法包括:根据数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息。
在其中一个实施例中,在所述分割策略为所述时间分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:获取所述待存储的数据的新增日期,其中,所述新增日期为每天新增的数据所对应的具体时间,且所述新增日期包括多个;根据所述新增日期,将所述待存储的数据拆分成多份数据。
在其中一个实施例中,在所述分割策略为所述字段分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:根据预设规则设置目标字段,其中,所述目标字段用于拆分数据;根据所述目标字段,将所述待存储的数据拆分成多份数据。
在其中一个实施例中,在所述分割策略为所述业务分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:获取所述待存储的数据对应的业务类型;根据所述业务类型,将所述待存储的数据拆分成多份数据。
在其中一个实施例中,在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:通过所述多个目标索引的前缀和根据所述分割策略定义的信息,查询第一目标数据,其中,所述多个目标索引的前缀均相同;将所述第一目标数据上报至数据库。
在其中一个实施例中,在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:根据所述多个目标索引的前缀,查询第二目标数据;将所述第二目标数据上报至数据库。
在其中一个实施例中,所述业务类型包括以下至少之一:面向企业业务、面向消费者业务。
一种数据存储装置,所述装置包括:拆分模块,用于按照数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;获取模块,用于将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;存储模块,用于将所述多个目标索引对应的数据分别存储到多个节点中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据数据分割策略,将待存储的数据拆分成多份数据,其中,该分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
将该多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;
将该多个目标索引对应的数据分别存储到多个节点中。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;
将所述多个目标索引对应的数据分别存储到多个节点中。
上述数据存储方法、装置、计算机设备和存储介质,通过数据分割策略,将海量数据按照不同的维度拆分成多份数据,存储于不同的索引之中,而不是将结构相同的数据存储在ES的同一个索引上,导致各个ES节点的压力较大,检索能力较低,进而达到了减轻各个ES节点的压力,提高检索能力,且在删除某个分割后的索引的情况下,不会影响到其他索引的查询效率的技术效果。
附图说明
图1为相关技术中ES将数据分散存储到多个节点上的存储方式示意图;
图2为相关技术中ES从所有节点上查询数据的示意图;
图3为一个实施例中数据存储方法的应用环境图;
图4为一个实施例中数据存储方法的流程示意图;
图5为一个实施例中按照时间维度进行分割的方法流程示意图;
图6为一个实施例中按照时间维度进行存储的方法流程示意图;
图7为一个实施例中按照时间维度进行存储后查询的方法流程示意图(一);
图8为一个实施例中按照时间维度进行存储后查询的方法流程示意图(二);
图9为一个实施例中按照字段维度进行分割的方法流程示意图;
图10为一个实施例中按照字段维度进行存储的方法流程示意图;
图11为一个实施例中按照字段维度进行存储后查询的方法流程示意图(一);
图12为一个实施例中按照字段维度进行存储后查询的方法流程示意图(二);
图13为一个实施例中按照业务维度进行分割的方法流程示意图;
图14为一个实施例中按照业务维度进行存储的方法流程示意图;
图15为一个实施例中按照业务维度进行存储后查询的方法流程示意图(一);
图16为一个实施例中按照业务维度进行存储后查询的方法流程示意图(二);
图17为一个实施例中数据存储装置的结构框图;
图18为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据存储方法,可以应用于如图3所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。服务器104通过数据分割策略,将海量数据按照不同的维度拆分成多份数据,存储于不同的索引之中,在需要查询时,将查询到的目标数据汇总到终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图4所示,提供了一种数据存储方法,包括以下步骤:
步骤S402,根据数据分割策略,将待存储的数据拆分成多份数据。
需要说明的是,上述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略。
可选地,上述时间分割策略包括但并不限于以下方式:方式一、按照年、月、日的方式将同一天发生的数据划分到同一个索引下;方式二、按照年、月的方式将同一月发生的数据划分到同一索引下。在此,并不赘述。
可选地,上述字段分割策略包括但并不限于以下方式:方式一、按照城市的方式将同一城市发生的数据划分到同一索引下;方式二、按照年龄阶段的方式将同一年龄阶段发生的数据划分到同一索引下;方式三、按照性别的方式将同一性别发生的数据划分到同一索引下。在此,并不赘述。
可选地,上述业务分割策略包括但并不限于以下方式:方式一、将面向企业业务(To Business简称为TOB)划分到同一索引下;方式二、将面向消费者业务(To Customer简称为TOC)划分到同一索引下。在此,并不赘述。
步骤S404,将该多份数据分别存储到不同的索引上,得到多个目标索引。
可选地,根据分割策略定义的信息包括但并不限于:在分割策略为时间分割策略时,通过时间格式命名的信息;在分割策略为字段分割策略,通过城市、年龄、性别等命名的信息;在分割策略为业务分割策略时,通过业务类型命名的信息。
在本可选实施例中,上述前缀为同一个。
步骤S406,将上述多个目标索引对应的数据分别存储到多个节点中。
上述数据存储方法中,通过数据分割策略,将海量数据按照不同的维度拆分成多份数据,存储于不同的索引之中,而不是将结构相同的数据存储在ES的同一个索引上,导致各个ES节点的压力较大,检索能力较低,进而达到了减轻各个ES节点的压力,提高检索能力,且在删除某个分割后的索引的情况下,不会影响到其他索引的查询效率的技术效果。
在一个可选地实施方式中,在上述分割策略为上述时间分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S11,获取上述待存储的数据的新增日期,其中,上述新增日期为每天新增的数据所对应的具体时间,且上述新增日期包括多个;
步骤S12,根据上述新增日期,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S13,通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S14,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S15,根据该多个目标索引的前缀,查询第二目标数据;步骤S16,将该第二目标数据上报至数据库。
通过上述时间分割策略,将海量数据按照时间维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S11至步骤S16进行进一步描述。
将每天新增的大量数据存放于以前缀+时间格式命名(对应于上述根据分割策略定义的信息)的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图5。
通过分割后存储方式如图6所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图7所示,只需要查询某天的数据。以20190301为例,ES API接口只需查询索引名为index_data_20190301的索引的数据,即可获取20190301对应的数据;方式二,如图8所示,需要查询多个日期的数据。ES API接口只需查询别名为index_data的索引的数据,即可获取多个日期对应的数据。
可选地,在上述分割策略为上述字段分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S21,根据预设规则设置目标字段,其中,上述目标字段用于拆分数据;
可选地,上述目标字段包括但并不限于:通过城市命名的信息、通过年龄阶段命名的信息、按照性别命名的信息。
步骤S22,根据上述目标字段,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S23,通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S24,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S25,根据该多个目标索引的前缀,查询第二目标数据;步骤S26,将该第二目标数据上报至数据库。
通过上述字段分割策略,将海量数据按照字段维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S21至步骤S26进行进一步描述。
将不同城市维度的数据存储于别名(对应于上述前缀)+城市(根据分割策略定义的信息)命名的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图9。
通过分割后存储方式如图10所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图11所示,只需要查询某个城市的数据。以杭州为例,ES API接口只需查询索引名为index_data_hangzhou的索引的数据,即可获取hangzhou对应的数据;方式二,如图12所示,需要查询多个城市的数据。ESAPI接口只需查询别名为index_data的索引的数据,即可获取多个城市对应的数据。
可选地,在上述分割策略为上述业务分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S31,获取上述待存储的数据对应的业务类型;
步骤S32,根据上述业务类型,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S33,根通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S34,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S35,根据该多个目标索引的前缀,查询第二目标数据;步骤S36,将该第二目标数据上报至数据库。
通过上述业务分割策略,将海量数据按照业务维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S31至步骤S36进行进一步描述。
将数据以面向企业业务、面向消费者业务的业务维度进行拆分,通过拆分,可以更加方便地管理面向企业业务、面向消费者业务的业务数据。
例如,将不同业务维度的数据存储于别名(对应于上述前缀)+业务(对应于上述根据分割策略定义的信息)命名的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图13。
通过分割后存储方式如图14所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图15所示,只需要查询某个业务的数据。以面向企业业务为例,ES API接口只需查询索引名为index_data_tob的索引的数据,即可获取tob对应的数据;方式二,如图16所示,需要查询多个业务的数据。ESAPI接口只需查询别名为index_data的索引的数据,即可获取多个业务对应的数据。
综上,由于切割的维度和切割的粒度会影响到后续对这些数据在ES上的维护和利用,因此,本实施例通过对海量数据进行合理切割,存在ES的不同索引下,可以合理的存储和利用海量的数据。
应该理解的是,虽然图4至图16的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4至图16中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图17所示,提供了一种数据存储装置17,包括:拆分模块1702、获取模块1704和存储模块1706,其中:
拆分模块1702,用于按照数据分割策略,将待存储的数据拆分成多份数据,其中,上述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略。
可选地,上述时间分割策略包括但并不限于以下方式:方式一、按照年、月、日的方式将同一天发生的数据划分到同一个索引下;方式二、按照年、月的方式将同一月发生的数据划分到同一索引下。在此,并不赘述。
可选地,上述字段分割策略包括但并不限于以下方式:方式一、按照城市的方式将同一城市发生的数据划分到同一索引下;方式二、按照年龄阶段的方式将同一年龄阶段发生的数据划分到同一索引下;方式三、按照性别的方式将同一性别发生的数据划分到同一索引下。在此,并不赘述。
可选地,上述业务分割策略包括但并不限于以下方式:方式一、将面向企业业务(To Business简称为TOB)划分到同一索引下;方式二、将面向消费者业务(To Customer简称为TOC)划分到同一索引下。在此,并不赘述。
获取模块1704,用于将上述多份数据分别存储到不同的索引上,得到多个目标索引。
可选地,根据分割策略定义的信息包括但并不限于:在分割策略为时间分割策略时,通过时间格式命名的信息;在分割策略为字段分割策略,通过城市、年龄、性别等命名的信息;在分割策略为业务分割策略时,通过业务类型命名的信息。
在本可选实施例中,上述前缀为同一个。
存储模块1706,用于将上述多个目标索引对应的数据分别存储到多个节点中。
上述数据存储装置中,通过数据分割策略,将海量数据按照不同的维度拆分成多份数据,存储于不同的索引之中,而不是将结构相同的数据存储在ES的同一个索引上,导致各个ES节点的压力较大,检索能力较低,进而达到了减轻各个ES节点的压力,提高检索能力,且在删除某个分割后的索引的情况下,不会影响到其他索引的查询效率的技术效果。
在一个可选地实施方式中,在上述分割策略为上述时间分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S11,获取上述待存储的数据的新增日期,其中,上述新增日期为每天新增的数据所对应的具体时间,且上述新增日期包括多个;
步骤S12,根据上述新增日期,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S13,通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S14,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S15,根据该多个目标索引的前缀,查询第二目标数据;步骤S16,将该第二目标数据上报至数据库。
通过上述时间分割策略,将海量数据按照时间维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S11至步骤S16进行进一步描述。
将每天新增的大量数据存放于以前缀+时间格式命名(对应于上述根据分割策略定义的信息)的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图5。
通过分割后存储方式如图6所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图7所示,只需要查询某天的数据。以20190301为例,ES API接口只需查询索引名为index_data_20190301的索引的数据,即可获取20190301对应的数据;方式二,如图8所示,需要查询多个日期的数据。ES API接口只需查询别名为index_data的索引的数据,即可获取多个日期对应的数据。
可选地,在上述分割策略为上述字段分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S21,根据预设规则设置目标字段,其中,上述目标字段用于拆分数据;
可选地,上述目标字段包括但并不限于:通过城市命名的信息、通过年龄阶段命名的信息、按照性别命名的信息。
步骤S22,根据上述目标字段,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S23,通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S24,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S25,根据该多个目标索引的前缀,查询第二目标数据;步骤S26,将该第二目标数据上报至数据库。
通过上述字段分割策略,将海量数据按照字段维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S21至步骤S26进行进一步描述。
将不同城市维度的数据存储于别名(对应于上述前缀)+城市(根据分割策略定义的信息)命名的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图9。
通过分割后存储方式如图10所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图11所示,只需要查询某个城市的数据。以杭州为例,ES API接口只需查询索引名为index_data_hangzhou的索引的数据,即可获取hangzhou对应的数据;方式二,如图12所示,需要查询多个城市的数据。ESAPI接口只需查询别名为index_data的索引的数据,即可获取多个城市对应的数据。
可选地,在上述分割策略为上述业务分割策略时,上述根据数据分割策略,将待存储的数据拆分成多份数据包括以下步骤:
步骤S31,获取上述待存储的数据对应的业务类型;
步骤S32,根据上述业务类型,将上述待存储的数据拆分成多份数据。
可选地,在将上述多个目标索引对应的数据分别存储到多个节点中之后,上述方法还包括以下步骤:
步骤S33,根通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S34,将该第一目标数据上报至数据库。
或者,包括以下步骤:
步骤S35,根据该多个目标索引的前缀,查询第二目标数据;步骤S36,将该第二目标数据上报至数据库。
通过上述业务分割策略,将海量数据按照业务维度查拆分成多份数据,存储于不同的索引之中,减轻了各个ES节点的压力,提高检索能力,而且删除某个分割后的索引,不会影响到其他索引的查询效率。
下面结合具体示例,对上述步骤S31至步骤S36进行进一步描述。
将数据以面向企业业务、面向消费者业务的业务维度进行拆分,通过拆分,可以更加方便地管理面向企业业务、面向消费者业务的业务数据。
例如,将不同业务维度的数据存储于别名(对应于上述前缀)+业务(对应于上述根据该分割策略定义的信息)命名的索引上,这样可以更好地管理和应用这些索引中的数据,具体可以参见图13。
通过分割后存储方式如图14所示,将多个目标索引对应的数据分别存储到多个节点中。
在本实施例中,通过分割后有两种查询方式:方式一、如图15所示,只需要查询某个业务的数据。以面向企业业务为例,ES API接口只需查询索引名为index_data_tob的索引的数据,即可获取tob对应的数据;方式二,如图16所示,需要查询多个业务的数据。ESAPI接口只需查询别名为index_data的索引的数据,即可获取多个业务对应的数据。
综上,由于切割的维度和切割的粒度会影响到后续对这些数据在ES上的维护和利用,因此,本实施例通过对海量数据进行合理切割,存在ES的不同索引下,可以合理的存储和利用海量的数据。
关于数据存储装置的具体限定可以参见上文中对于数据存储方法的限定,在此不再赘述。上述数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图18所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据存储方法。
本领域技术人员可以理解,图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
根据数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;
将所述多个目标索引对应的数据分别存储到多个节点中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:根通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;将该第一目标数据上报至数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤A,根据该多个目标索引的前缀,查询第二目标数据;将该第二目标数据上报至数据库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
将所述多份数据分别存储到不同的索引上,得到多个目标索引,所述目标索引包括前缀、根据所述分割策略定义的信息;
将所述多个目标索引对应的数据分别存储到多个节点中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:根通过该多个目标索引的前缀和根据该分割策略定义的信息,查询第一目标数据,其中,该多个目标索引的前缀均相同;步骤S34,将该第一目标数据上报至数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:根据该多个目标索引的前缀,查询第二目标数据;步骤S36,将该第二目标数据上报至数据库。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
根据数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;
将所述多个目标索引对应的数据分别存储到多个节点中。
2.根据权利要求1所述的方法,其特征在于,在所述分割策略为所述时间分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:
获取所述待存储的数据的新增日期,其中,所述新增日期为每天新增的数据所对应的具体时间,且所述新增日期包括多个;
根据所述新增日期,将所述待存储的数据拆分成多份数据。
3.根据权利要求1所述的方法,其特征在于,在所述分割策略为所述字段分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:
根据预设规则设置目标字段,其中,所述目标字段用于拆分数据;
根据所述目标字段,将所述待存储的数据拆分成多份数据。
4.根据权利要求1所述的方法,其特征在于,在所述分割策略为所述业务分割策略时,所述根据数据分割策略,将待存储的数据拆分成多份数据包括:
获取所述待存储的数据对应的业务类型;
根据所述业务类型,将所述待存储的数据拆分成多份数据。
5.根据权利要求1所述的方法,其特征在于,在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:
通过所述多个目标索引的前缀和根据所述分割策略定义的信息,查询第一目标数据,其中,所述多个目标索引的前缀均相同;
将所述第一目标数据上报至数据库。
6.根据权利要求1所述的方法,其特征在于,在将所述多个目标索引对应的数据分别存储到多个节点中之后,所述方法还包括:
根据所述多个目标索引的前缀,查询第二目标数据;
将所述第二目标数据上报至数据库。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述业务类型包括以下至少之一:
面向企业业务、面向消费者业务。
8.一种数据存储装置,其特征在于,所述装置包括:
拆分模块,用于按照数据分割策略,将待存储的数据拆分成多份数据,其中,所述分割策略包括以下至少之一:时间分割策略、字段分割策略、业务分割策略;
获取模块,用于将所述多份数据分别存储到不同的索引上,得到多个目标索引,其中,所述目标索引包括前缀、根据所述分割策略定义的信息;
存储模块,用于将所述多个目标索引对应的数据分别存储到多个节点中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910983594.5A CN110888872A (zh) | 2019-10-16 | 2019-10-16 | 数据存储方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910983594.5A CN110888872A (zh) | 2019-10-16 | 2019-10-16 | 数据存储方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110888872A true CN110888872A (zh) | 2020-03-17 |
Family
ID=69746224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910983594.5A Pending CN110888872A (zh) | 2019-10-16 | 2019-10-16 | 数据存储方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888872A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035481A (zh) * | 2020-08-31 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112364030A (zh) * | 2021-01-12 | 2021-02-12 | 支付宝(杭州)信息技术有限公司 | 一种基于可信账本数据库的业务衍生记录存储方法 |
CN112925783A (zh) * | 2021-03-26 | 2021-06-08 | 北京金山云网络技术有限公司 | 业务数据处理方法和装置、电子设备和存储介质 |
CN114661753A (zh) * | 2020-12-23 | 2022-06-24 | 北京首信科技股份有限公司 | 话单检索方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
CN105138592A (zh) * | 2015-07-31 | 2015-12-09 | 武汉虹信技术服务有限责任公司 | 一种基于分布式架构的日志数据存储和检索方法 |
CN107783980A (zh) * | 2016-08-24 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 索引数据生成及数据查询方法及装置、存储和查询系统 |
CN109241178A (zh) * | 2018-07-20 | 2019-01-18 | 华为技术有限公司 | 管理存储空间的方法和装置 |
CN109815231A (zh) * | 2018-12-26 | 2019-05-28 | 亚信科技(中国)有限公司 | 数据分片方法、装置、计算机设备和存储介质 |
-
2019
- 2019-10-16 CN CN201910983594.5A patent/CN110888872A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
CN105138592A (zh) * | 2015-07-31 | 2015-12-09 | 武汉虹信技术服务有限责任公司 | 一种基于分布式架构的日志数据存储和检索方法 |
CN107783980A (zh) * | 2016-08-24 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 索引数据生成及数据查询方法及装置、存储和查询系统 |
CN109241178A (zh) * | 2018-07-20 | 2019-01-18 | 华为技术有限公司 | 管理存储空间的方法和装置 |
CN109815231A (zh) * | 2018-12-26 | 2019-05-28 | 亚信科技(中国)有限公司 | 数据分片方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
MEMBER: "ElasticSearch按照一定规则分割index", 《SEGMENTFAULT.COM/A/1190000016702033》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035481A (zh) * | 2020-08-31 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112035481B (zh) * | 2020-08-31 | 2023-10-27 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN114661753A (zh) * | 2020-12-23 | 2022-06-24 | 北京首信科技股份有限公司 | 话单检索方法及装置 |
CN112364030A (zh) * | 2021-01-12 | 2021-02-12 | 支付宝(杭州)信息技术有限公司 | 一种基于可信账本数据库的业务衍生记录存储方法 |
CN112364030B (zh) * | 2021-01-12 | 2021-04-06 | 支付宝(杭州)信息技术有限公司 | 一种基于可信账本数据库的业务衍生记录存储方法 |
CN112925783A (zh) * | 2021-03-26 | 2021-06-08 | 北京金山云网络技术有限公司 | 业务数据处理方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888872A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN109558404B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
US11288144B2 (en) | Query optimized distributed ledger system | |
CN110764700B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110795427B (zh) | 数据分离存储方法、装置、计算机设备和存储介质 | |
EP3238106A1 (en) | Compaction policy | |
CN112579606A (zh) | 工作流数据处理方法、装置、计算机设备及存储介质 | |
US20160004455A1 (en) | Method of controlling splitting of data, and system | |
CN110580246B (zh) | 迁徙数据的方法、装置、计算机设备及存储介质 | |
CN111177302A (zh) | 业务单据处理方法、装置、计算机设备和存储介质 | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN110659297A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110569255A (zh) | 数据库分库分表的分页查询方法、装置和计算机设备 | |
CN111209061A (zh) | 用户信息的填写方法、装置、计算机设备和存储介质 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN113065887B (zh) | 资源处理方法、装置、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN109460500B (zh) | 热点事件发现方法、装置、计算机设备和存储介质 | |
CN117076480A (zh) | 数据源的确定方法及装置、设备及存储介质 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN114691653A (zh) | 账套迁移方法、装置、计算机设备和存储介质 | |
CN109656948B (zh) | 位图数据处理方法、装置、计算机设备和存储介质 | |
CN113672640A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN110874370B (zh) | 数据查询方法、装置、计算机设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200317 |