Elasticsearch:简化数据流的数据生命周期管理

2024-06-15 06:04

本文主要是介绍Elasticsearch:简化数据流的数据生命周期管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:来自 Elastic Andrei Dan

今天,我们将探索 Elasticsearch 针对数据流的新数据管理系统:数据流生命周期,从版本 8.14 开始提供。凭借其简单而强大的执行模型,数据流生命周期可让n 你专注于数据生命周期的业务相关方面,例如降采样和保留。在后台,它会自动确保存储数据的 Elasticsearch 结构得到有效管理。

Elasticsearch 中的数据生命周期管理演变

自 6.x Elasticsearch 系列以来,索引生命周期管理 (index lifecycle management - ILM) 已使用户能够通过自动在层之间迁移数据来维护健康的索引并节省成本。

ILM 根据索引独特的性能、弹性和保留需求来处理索引,同时提供对成本的显着控制并详细定义索引的生命周期。

ILM 是一种非常通用的解决方案,可满足广泛的用例,从时间序列索引和数据流到存储文本内容的索引。对于所有这些用例,生命周期定义将非常不同,当我们考虑每个单独部署的可用硬件和数据分层资源时,它会变得更加不同。因此,ILM 允许完全可定制的生命周期定义,但代价是复杂性(精确的滚动定义;何时强制合并、收缩和(部分)挂载索引)。

当我们开始研究无服务器(serverless)解决方案时,我们有机会通过新的视角来审视生命周期管理,我们的用户可以(并且将)免受 Elasticsearch 内部概念(如分片、分配或集群拓扑)的影响。更重要的是,在无服务器中,我们希望能够根据需要更改内部 Elasticsearch 配置,以保持用户的最佳体验。

在这种新情况下,我们研究了现有的 ILM 解决方案,该解决方案为用户提供了内部 Elasticsearch 概念作为构建块,并决定我们需要一个新的解决方案来管理数据的生命周期。

我们吸取了从大规模构建和维护 ILM 中吸取的经验教训,并为未来创建了一个更简单的生命周期管理系统。该系统更具体,仅适用于数据流(data streams)。它直接在数据流上配置为属性(类似于索引设置属于索引的方式),我们称之为数据流生命周期。它是一种内置机制(继续使用索引设置类比),始终处于开启状态,并且始终对数据流的生命周期需求做出反应。

通过将适用范围限定在数据流(即带有很少更新的时间戳的数据),我们能够避免自定义,转而使用易用性和自动默认值。数据流生命周期将自动执行数据结构维护操作,如滚动和强制合并,并允许你仅处理你应该关心的业务相关生命周期功能,例如降采样(downsampling)和数据保留(data retention)。

数据流生命周期的功能不如 ILM 丰富;最值得注意的是,它目前不支持数据分层、缩减或可搜索快照。但是,不需要这些特定功能的用例将更好地由数据流生命周期服务。

虽然数据流生命周期最初是为无服务器环境的需求而设计的,但它们也可用于常规本地和 ESS Elasticsearch 部署。

配置数据流生命周期

让我们创建一个 Elasticsearch Serverless 项目,并开始创建由数据流生命周期管理的数据流。

创建项目后,转到索引管理并为 my-data-* 索引模式创建索引模板并配置 30 天的保留期:

让我们浏览这些步骤并完成此索引模板(我在映射部分配置了一个文本字段,但这是可选的):

现在,我们将提取一些以 my-data-stream 命名空间为目标的数据。我将使用左侧的 Dev Tools 部分,但你也可以选择自己喜欢的数据提取方式:

my-data-stream 现已创建,它包含 2 个文档。让我们转到 Index Management/Data Streams 并检查一下:

就这样!🎉 我们的数据流由数据流生命周期管理,数据保留期配置为 30 天。所有与 my-data-* 模式匹配的新数据流都将由数据流管理,并获得 30 天的数据保留期。

更新已配置的生命周期

数据流生命周期属性属于数据流。因此,我们可以通过直接导航到数据流来配置更新现有数据流的生命周期。让我们转到索引管理/数据流并将 my-data-stream 的保留期编辑为 7 天:

我们现在看到我们的数据流的数据保留期为 7 天:

现在系统中现有数据流已配置所需的 7 天保留期,我们还要更新索引模板保留,以便创建的新数据流也能获得 7 天的保留期:

实施细节

主节点定期(根据 data_streams.lifecycle.poll_interval 设置,默认情况下每 5 分钟一次)迭代系统中配置为由生命周期管理的数据流。在每次迭代中,系统中的每个后备索引状态都会被评估,并执行一个操作以实现配置的生命周期所描述的目标状态。

对于每个管理的数据流,我们首先尝试根据 cluster.lifecycle.default.rollover 条件滚动数据流。这是对数据流的写入索引尝试的唯一操作。

滚动后,前一个写入索引将有资格进行合并。由于我们希望分片维护任务的合并是我们自动执行的,因此我们实施了一个更轻量的合并操作,这是强制合并到 1 个段的替代方法,它只合并小段的长尾(long tail)而不是整个分片。这种方法的主要好处是它可以在滚动后自动和尽早应用。

合并后备索引后,在下一次生命周期执行运行时,索引将被降采样。

完成所有计划的降采样轮次后,每次生命周期运行时,都会检查后备索引是否符合数据保留条件。当指定的数据保留期过后(自滚动时间起),后备索引将被删除。

降采样和数据保留都是基于时间的操作(例如 data_retention: 7d),并且是从索引滚动以来计算的。索引滚动以来的时间在 explain lifecycle API 中可见,我们称之为generation_time,表示后备索引成为世代索引(而不是数据流的写入索引)以来的时间。

我已经运行了 my-data-stream(在轮转时有 2 个后备索引)的 explain lifecycle API,以深入了解

我们可以看到两个索引的 lifecycle 定义都包括 7 天的更新数据保留期。

较旧的索引 .ds-my-data-stream-2024.05.09-000001 不再是数据流的写入索引,我们可以看到解释 API 将 generation_time 报告为 49 分钟。一旦生成时间达到 7 天,.ds-my-data-stream-2024.05.09-000001 后备索引将被删除以符合配置的数据保留期。

索引 .ds-my-data-stream-2024.05.09-000002 是数据流的写入索引,一旦满足 rollover 标准,就会等待轮转。

time_since_index_creation 字段用于帮助计算当数据流不再接收大量数据时何时根据自动 max_age 标准滚动数据流。

从 ILM 迁移到数据流生命周期

促进数据流生命周期的平稳过渡,以便对数据流进行测试、试验,并最终将其迁移到生产环境,这始终是此功能的目标。因此,我们决定允许 ILM 和数据流生命周期在云环境和本地部署中的数据流上共存。

ILM 配置继续直接存在于支持索引上,而数据流生命周期则配置在数据流本身上。

支持索引一次只能由一个管理系统管理。如果 ILM 和数据流生命周期都适用于支持索引,则 ILM 优先(默认情况下,但可以使用 index.lifecycle.prefer_ilm 索引设置将优先级更改为数据流生命周期)。

数据流的迁移路径将允许现有的 ILM 管理的支持索引老化并最终被 ILM 删除,而新的支持索引将开始由数据流生命周期管理。

我们增强了 GET _data_stream API,使其包含每个支持索引的滚动信息(managed_by 字段,可能值为 Index Lifecycle Management、Data stream lifecycle 或Unmanaged,以及 prefer_ilm 设置的值),并在数据流级别包含 next_generation_managed_by 字段,以指示将管理下一代支持索引的系统。

要将未来的支持索引(在数据流滚动后创建)配置为由数据流生命周期管理,需要执行两个步骤:

  1. 更新支持数据流的索引模板,将 prefer_ilm 设置为 false(请注意,prefer_ilm 是一个索引设置,因此在索引模板中配置它意味着它只会在新的支持索引上配置)并配置所需的数据流生命周期(这将确保新的数据流将开始由数据流生命周期管理)。
  2. 使用 lifecycle API 为现有数据流配置数据流生命周期。

有关迁移到数据流生命周期的完整教程,请查看我们的文档。

结论

我们为数据流构建了一个生命周期功能,可以自动处理底层数据结构的维护,让你专注于业务生命周期需求,如降采样和数据保留。

试用我们新的无服务器(serverless)产品,并了解更多有关数据流生命周期的可能性的信息。

准备好自己尝试一下了吗?开始免费试用。
想要获得 Elastic 认证?了解下一期 Elasticsearch 工程师培训何时举行!

原文:Data lifecycle management: Simplifying data lifecycle management for data streams — Elastic Search Labs

这篇关于Elasticsearch:简化数据流的数据生命周期管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062622

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同