CN112632027A - 一种日志数据存储方法及装置 - Google Patents
一种日志数据存储方法及装置 Download PDFInfo
- Publication number
- CN112632027A CN112632027A CN202011391814.4A CN202011391814A CN112632027A CN 112632027 A CN112632027 A CN 112632027A CN 202011391814 A CN202011391814 A CN 202011391814A CN 112632027 A CN112632027 A CN 112632027A
- Authority
- CN
- China
- Prior art keywords
- index
- node
- data
- alias
- request
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000012634 fragment Substances 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 15
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 5
- 238000005096 rolling process Methods 0.000 abstract description 4
- 238000012546 transfer Methods 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000009466 transformation 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种日志数据的存储方法及装置,根据数据产生时间建立统一的索引模板与滚动策略,实现数据存储与读取。当不同阶段的数据触发相应的预设条件时,自动进行数据的转移,一方面能够提高写入和高频读取操作的高效响应;另一方面根据数据所处阶段划分不同性能硬件,有效降低业务成本。实现对数据的有效管理和利用。
Description
技术领域
本发明属于数据存储查询技术领域,尤其是涉及一种提高日志存储与查询效率的数据存储方法及装置。
背景技术
随着通信与互联网技术的发展,各种网络设备与应用产生的海量日志数据,对存储资源的需求日益增大。数据规模增大的同时,既要求对产生的实时数据进行高效的存储,又需要维护历史数据实现快速读取,因此提高系统资源的使用效率、保障系统高效运行,对于数据与业务的进行至关重要。
随着时间的推移,数据访问频率通常与数据的积累时长成反比,因此根据数据访问频率进行数据价值评估,对大量低价值的过期数据采取相对低效的处理方式或直接删除,而对新近产生的热点数据使用高效的处理方式,能够实现数据的价值与技术效率、成本相匹配。
Elasticsearch(以下简称ES)是一种基于Lucene底层技术的分布式全文搜索引擎,在处理百T及以上级别的海量数据时,如果没有针对性的优化方案,索引效率会很低,很难满足应用的需求。
发明内容
鉴于上述技术背景,本发明旨在提出一种日志数据的存储方法及装置。具体技术方案如下所述:
一方面,本发明实施例提供一种日志数据存储方法,包括:
接收日志数据存储请求,将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点;
当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引;以及,创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点;
当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
作为较佳的,所述第一条件包括存储的第一最长时长、最多文档数与最大磁盘占用,当索引符合其中至少一个条件则触发第一条件;所述第二条件包括存储的第二最长时长,第二最长时长大于所述第一最长时长。
作为较佳的,所述第一节点至第三节点的存储读取性能,依次递减;以及所述第一节点为写入和/或查询节点,第二节点为查询和/或存储节点,第三节点为存储节点。
作为较佳的,为所述第一索引或第二索引配置与第一节点数量相同的分片数。
作为较佳的,所述第一索引触发预设的第一条件之前,定时的在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引。
作为较佳的,所述第一索引的数据移入第二节点之前,将索引的分片以及分片中的数据段均合并为单个。
作为较佳的,所述第一索引的数据移入第三节点达到预设的时长后,删除第一索引以释放节点的存储空间。
作为较佳的,所述方法还包括:
接收数据查询请求,根据查询请求中的读取索引别名,发送查询至第一索引的各个分片;
所述索引分片分别查询符合条件的数据,并返回查询结果;
合并所述各个分片的查询结果,返回结果集。
另一方面,本发明实施例还提供一种日志数据存储装置,包括:
请求处理模块,用于接收并解析数据存储或查询请求,获取请求中的索引别名;
数据处理模块,根据所述请求中的索引别名,将数据存储到对应的节点与索引,以及从对应的节点与索引读取数据;
存储模块,用于将处理后的数据存储到对应节点,以及向数据处理模块返回数据;
结果返回模块,对数据请求返回存储或查询结果。
作为较佳的,所述数据处理模块:
将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点;
当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引;以及,创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点;
当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
采用上述技术方案,本发明的实施例至少具有以下有益效果:根据数据产生时间建立统一的索引模板与滚动策略,实现数据存储与读取。当不同阶段的数据触发相应的预设条件时,自动进行数据的转移,一方面能够提高写入和高频读取操作的高效响应;另一方面根据数据所处阶段划分不同性能硬件,有效降低业务成本。实现对数据的有效管理和利用。
附图说明
图1为本发明实施例的一种日志数据存储方法,工作流程图;
图2为本发明实施例的一种日志数据存储装置,组成结构图;
所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
对于应用或设备来说,每一条日志数据都具有对应的生命周期(life cycle),包括了数据的产生、使用、迁移、清理以及销毁等。数据的完整管理,应当集数据体验、清理、历史查询以及信息共享等于一体。特别是对于一个数据系统来说,为了确保稳定、高效地运行,需要将有效日志数据量控制在一个相对稳定的水平,基于此,诞生了DLM(Data LifeCycle Management,即数据生命周期管理)。
数据生命周期管理,如果按照数据产生的时间进行划分,主要可分为:热数据、温数据、冷数据、冻结以及解冻等阶段。例如,对冷数据一般需要进行备份归档、删除等操作;在一个场景下,数据流量监控业务每天所产生的日志数据的数量是巨大的,如果设定的存储天数为七天,那么七天前的数据就可以称为冷数据,这部分数据随着时间的推移逐渐失去存在的意义,而又会占用越来越大的存储空间,这种情况下,为了节省系统资源,需要对这些冷数据执行删除操作。
ES即Elasticsearch,就提供了一种全文搜索引擎,其索引(index) 实际上是指向一个或者多个物理分片的逻辑命名空间,目的是快速有效地进行全文索引,一个索引由一个或者多个分片组合在一起,索引本身并不存储数据原始值,利用分片将数据分发到集群内各节点存储。
使用ES来索引诸如日志事件等基于时间的数据,现有技术已经习惯了“每日一索引”的模式,即以天为粒度的索引名字来存放当天的日志数据,当一天过去后再新建一个索引。这种模式虽然很容易理解并且易于实现,但是也面临一些较难处理的问题,例如:为了达到较高的写入速度,活跃索引分片需要分布在尽可能多的节点上,而为了提高搜索速度和降低资源消耗,分片数量又需要尽可能地少,同时也不能有过大的单个分片导致操作不便;每天一个索引确实易于清理陈旧数据,但是需要考虑每天到底需要多少个分片;每天的写入压力是否一成不变,会不会发生一天分片过多而一天分片不够的情况。
如图1所示,本发明实施例提供一种日志数据存储方法,包括:
S101:接收日志数据存储请求,将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点。
作为可选的,本步骤之前还包括:
(1)创建索引模板,索引模板是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板, 如果需要每个一定时间建立新索引,只需要配置好索引模板,并在创建新索引时指定要使用的模板名,就可以直接重用已经定义好的模板中的设置和映射,不用每次都设置settings和mappings。settings指定index的配置信息, 比如分片数、副本数,refresh策略等信息;mappings指定index的内部构建信息,包括索引结构和文档字段等的设置。
(2)创建别名,索引别名就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用。索引别名能够灵活的实现在运行的集群中可以无缝的从一个索引切换到另一个索引。
实际中的业务变换,有时需要将业务数据从索引1变换到新的索引2上,如果没有别名,必须修改和总段业务系统才能实现,而利用别名则只需要修改别名,另起指向新的索引2即可,这样的操作可以在用户无任何感知的情况下完成。别名还可以使数据检索等操作更加方便,例如有两个月的日志数据分别存放在index_202008和index_202009两个索引中,没有使用别名进行检索时,需要同时写上两个索引名称进行检索,使用索引后,我们可以令别名同时指向这两个索引,检索时只需要使用这个别名就可以同时在两个索引中进行检索。
(3)配置(rollover)策略,对索引配置“模板”和“别名”后,设置生命周期策略,若当前索引数据量太大或存在时间太长时,滚动索引,将别名滚动到新索引。
策略内容包括规定别名与滚动条件列表。其中别名必须只指向一个索引,当索引满足指定的条件时,则创建一个新索引,并将别名切换到指向新索引的位置;条件列表包括索引存储的最长时长(如: “max_age”: “7d”)、索引支持的最多文档数(如:”max_docs”:1000)、索引最大磁盘空间占用(如“max_size”: “5gb”)。
(4)配置节点性能,包括将写索引的数据存入相对较高性能硬件,而将读取索引的数据存入相对较低性能硬件。
S102:当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引。
作为较佳的,为所述第一索引或第二索引配置与第一节点数量相同的分片数。
作为另一种实现方式,在所述第一索引触发预设的第一条件之前,定时的在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引。
S103:创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点。
作为较佳的,所述第一条件包括存储的第一最长时长、最多文档数与最大磁盘占用,当索引符合其中至少一个条件则触发第一条件。
进一步的,所述第一索引的数据移入第二节点之前,将索引的分片以及分片中的数据段均合并为单个。
S104:当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
作为较佳的,所述第二条件包括存储的第二最长时长,第二最长时长大于所述第一最长时长,例如可以设置第一最长时长为1周,而第二最长时长为1月。
进一步的,所述第一节点至第三节点的存储读取性能,依次递减,例如第一节点的存储硬件为SSD,第二节点为SSD或机械硬盘,第三节点为机械硬盘;以及所述第一节点为写入和/或查询节点,第二节点为查询和/或存储节点,第三节点为存储节点;以及,所述第一索引的数据移入第三节点达到预设的时长后,删除第一索引以释放节点的存储空间,例如当第一索引的数据在第三节点存储达3个月时删除数据。
作为较佳的实施方式,所述方法还包括对数据读取请求的处理:接收数据查询请求,根据查询请求中的读取索引别名,发送查询至第一索引的各个分片;所述索引分片分别查询符合条件的数据,并返回查询结果;合并所述各个分片的查询结果,返回结果集。
如图2所示,另一方面,本发明实施例还提供一种日志数据存储装置,包括:
请求处理模块,用于接收并解析数据存储或查询请求,获取请求中的索引别名;
数据处理模块,根据所述请求中的索引别名,将数据存储到对应的节点与索引,以及从对应的节点与索引读取数据;
存储模块,用于将处理后的数据存储到对应节点,以及向数据处理模块返回数据;
结果返回模块,对数据请求返回存储或查询结果。
作为较佳的,所述数据处理模块:
将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点;
当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引;以及,创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点;
当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
Claims (10)
1.一种日志数据存储方法,其特征在于,包括:
接收日志数据存储请求,将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点;
当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引;以及,创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点;
当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
2.根据权利要求1所述的日志数据存储方法,其特征在于,所述第一条件包括存储的第一最长时长、最多文档数与最大磁盘占用,当索引符合其中至少一个条件则触发第一条件;所述第二条件包括存储的第二最长时长,第二最长时长大于所述第一最长时长。
3.根据权利要求1所述的日志数据存储方法,其特征在于,所述第一节点至第三节点的存储读取性能,依次递减;以及所述第一节点为写入和/或查询节点,第二节点为查询和/或存储节点,第三节点为存储节点。
4.根据权利要求1所述的日志数据存储方法,其特征在于,为所述第一索引或第二索引配置与第一节点数量相同的分片数。
5.根据权利要求1所述的日志数据存储方法,其特征在于,还包括:所述第一索引触发预设的第一条件之前,定时的在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引。
6.根据权利要求1所述的日志数据存储方法,其特征在于,所述第一索引的数据移入第二节点之前,将索引的分片以及分片中的数据段均合并为单个。
7.根据权利要求1所述的日志数据存储方法,其特征在于,所述第一索引的数据移入第三节点达到预设的时长后,删除第一索引以释放节点的存储空间。
8.根据权利要求1-7任一所述的日志数据存储方法,其特征在于,所述方法还包括:
接收数据查询请求,根据查询请求中的读取索引别名,发送查询至第一索引的各个分片;
所述索引分片分别查询符合条件的数据,并返回查询结果;
合并所述各个分片的查询结果,返回结果集。
9.一种日志数据存储装置,其特征在于,所述装置包括:
请求处理模块,用于接收并解析数据存储或查询请求,获取请求中的索引别名;
数据处理模块,根据所述请求中的索引别名,将数据存储到对应的节点与索引,以及从对应的节点与索引读取数据;
存储模块,用于将处理后的数据存储到对应节点,以及向数据处理模块返回数据;
结果返回模块,对数据请求返回存储或查询结果。
10.根据权利要求9所述的日志数据存储装置,其特征在于,所述数据处理模块:
将产生时间处于预设第一周期的数据,写入到请求中指定的写入索引别名指向的第一索引所在的第一节点;
当所述第一索引触发预设的第一条件时,在第一节点创建第二索引,并将所述写入索引别名指向所述第二索引;以及,创建指向所述第一索引的读取索引别名,并将第一索引的数据移入第二节点;
当第一索引在所述第二节点触发预设的第二条件时,将第一索引的数据移入第三节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011391814.4A CN112632027A (zh) | 2020-12-03 | 2020-12-03 | 一种日志数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011391814.4A CN112632027A (zh) | 2020-12-03 | 2020-12-03 | 一种日志数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632027A true CN112632027A (zh) | 2021-04-09 |
Family
ID=75307449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011391814.4A Pending CN112632027A (zh) | 2020-12-03 | 2020-12-03 | 一种日志数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632027A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472808A (zh) * | 2021-07-16 | 2021-10-01 | 浙江大华技术股份有限公司 | 日志的处理方法、装置、存储介质及电子装置 |
-
2020
- 2020-12-03 CN CN202011391814.4A patent/CN112632027A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472808A (zh) * | 2021-07-16 | 2021-10-01 | 浙江大华技术股份有限公司 | 日志的处理方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741053B2 (en) | Data management system, method, terminal and medium based on hybrid storage | |
CN106662981B (zh) | 存储设备、程序和信息处理方法 | |
CN103336849B (zh) | 一种数据库检索系统中提高检索速度的方法及装置 | |
US9355112B1 (en) | Optimizing compression based on data activity | |
US10540095B1 (en) | Efficient garbage collection for stable data | |
US8909614B2 (en) | Data access location selecting system, method, and program | |
US20130117227A1 (en) | Cache based key-value store mapping and replication | |
US11429630B2 (en) | Tiered storage for data processing | |
US20070239747A1 (en) | Methods, systems, and computer program products for providing read ahead and caching in an information lifecycle management system | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
CN104731864A (zh) | 一种海量非结构化数据的数据存储方法 | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
CN106155934B (zh) | 一种云环境下基于重复数据的缓存方法 | |
CN109598156A (zh) | 一种写时重定向引擎快照流方法 | |
WO2015085747A1 (zh) | 一种数据访问存储方法及装置 | |
EP3788505B1 (en) | Storing data items and identifying stored data items | |
CN108089825B (zh) | 一种基于分布式集群的存储系统 | |
US10642530B2 (en) | Global occupancy aggregator for global garbage collection scheduling | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
CN111159176A (zh) | 一种海量流数据的存储和读取的方法和系统 | |
CN108776690B (zh) | 基于分层治理的hdfs分布式与集中式混合数据存储系统的方法 | |
US9178931B2 (en) | Method and system for accessing data by a client from a server | |
CN115114296A (zh) | 一种基于TemplateB+Tree的索引结构布局方法 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN112632027A (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 |