当前位置: 首页 > article >正文

Elasticsearch 滚动索引(Rollover Index)详解

文章目录

  • 1、滚动索引的作用
  • 2、滚动索引的用法
    • 2.1 核心概念
    • 2.2 实现步骤
  • 3、适用场景
  • 4、与其他技术的结合使用
  • 5、案例:日志数据的滚动索引
    • 5.1 场景描述
    • 5.2 实现步骤
  • 6、示例:结合索引生命周期管理(ILM)
    • 6.1 场景描述
    • 6.2 实现步骤
  • 7、总结

滚动索引(Rollover Index)是 Elasticsearch 中用于管理时间序列数据或日志数据的一种机制。它允许在索引达到一定条件(如文档数量、时间或大小)时自动创建新索引,从而避免单个索引过大,提高查询性能和管理效率。本文将详细介绍滚动索引的作用、用法、适用场景以及与其他技术的结合使用,并通过示例代码帮助理解。


1、滚动索引的作用

滚动索引的主要作用包括:

  • 自动管理索引生命周期:根据预设条件(如时间、文档数量、索引大小)自动创建新索引。
  • 优化查询性能:避免单个索引过大,提高查询效率。
  • 简化数据管理:通过别名(Alias)统一访问多个索引,简化数据管理。
  • 支持时间序列数据:适用于日志、监控数据等时间序列数据的存储和查询。

2、滚动索引的用法

2.1 核心概念

  • 别名(Alias):一个指向一个或多个索引的逻辑名称,用于统一访问。
  • 滚动条件:触发创建新索引的条件,如文档数量、索引大小或时间。
  • 写索引:当前正在写入的索引,通常通过别名指向。

2.2 实现步骤

  1. 创建初始索引:创建一个初始索引,并为其设置别名。
  2. 设置滚动条件:定义触发滚动的条件(如文档数量、索引大小或时间)。
  3. 执行滚动操作:当条件满足时,自动创建新索引并将别名指向新索引。

3、适用场景

滚动索引适用于以下场景:

  • 日志数据:每天或每小时生成大量日志数据,需要按时间滚动索引。
  • 监控数据:实时监控系统生成的时间序列数据,需要按大小或文档数量滚动索引。
  • 时间序列数据:任何按时间顺序生成的数据,如传感器数据、交易记录等。

4、与其他技术的结合使用

滚动索引通常与以下技术结合使用:

  • 索引生命周期管理(ILM):自动管理索引的生命周期,包括滚动、删除、归档等操作。
  • 别名(Alias):通过别名统一访问多个索引,简化数据管理。
  • 时间序列数据模型:适用于按时间顺序生成的数据。

5、案例:日志数据的滚动索引

5.1 场景描述

假设我们有一个日志系统,每天生成大量日志数据。我们希望每天自动创建一个新索引,并在索引达到 1000 个文档或 1GB 大小时滚动到新索引。

5.2 实现步骤

步骤 1:创建初始索引

首先创建一个初始索引,并为其设置别名 logs_write

PUT /logs-000001
{"aliases": {"logs_write": {}}
}

步骤 2:设置滚动条件
定义滚动条件(如文档数量达到 1000 或索引大小达到 1GB):

POST /logs_write/_rollover
{"conditions": {"max_docs": 1000,"max_size": "1gb"}
}

步骤 3:插入文档
向别名 logs_write 插入文档:

POST /logs_write/_doc
{"message": "This is a log entry","timestamp": "2023-10-01T00:00:00Z"
}

步骤 4:滚动索引
当条件满足时,执行滚动操作,创建新索引并将别名指向新索引:

POST /logs_write/_rollover
{"conditions": {"max_docs": 1000,"max_size": "1gb"}
}

步骤 5:查询数据
通过别名 logs_write 查询数据:

GET /logs_write/_search
{"query": {"match_all": {}}
}

6、示例:结合索引生命周期管理(ILM)

6.1 场景描述

假设我们希望自动管理日志索引的生命周期,包括滚动、删除和归档操作。

6.2 实现步骤

步骤 1:创建生命周期策略
创建一个生命周期策略,定义滚动、删除和归档操作:

PUT _ilm/policy/logs_policy
{"policy": {"phases": {"hot": {"actions": {"rollover": {"max_size": "1gb","max_docs": 1000}}},"delete": {"min_age": "30d","actions": {"delete": {}}}}}
}

步骤 2:创建初始索引
创建一个初始索引,并应用生命周期策略:

PUT /logs-000001
{"settings": {"index.lifecycle.name": "logs_policy","index.lifecycle.rollover_alias": "logs_write"},"aliases": {"logs_write": {}}
}

步骤 3:插入文档
向别名 logs_write 插入文档:

POST /logs_write/_doc
{"message": "This is a log entry","timestamp": "2023-10-01T00:00:00Z"
}

步骤 4:自动滚动
当条件满足时,ILM 会自动执行滚动操作,创建新索引并将别名指向新索引。

7、总结

滚动索引是 Elasticsearch 中管理时间序列数据的重要机制。通过自动创建新索引,滚动索引可以优化查询性能、简化数据管理,并支持时间序列数据的存储和查询。结合索引生命周期管理(ILM)和别名(Alias),滚动索引能够实现更强大的数据管理功能,适用于日志、监控数据等场景。

相关文章:

Elasticsearch 滚动索引(Rollover Index)详解

文章目录 1、滚动索引的作用2、滚动索引的用法2.1 核心概念2.2 实现步骤 3、适用场景4、与其他技术的结合使用5、案例:日志数据的滚动索引5.1 场景描述5.2 实现步骤 6、示例:结合索引生命周期管理(ILM)6.1 场景描述6.2 实现步骤 7…...

学习笔记:黑马程序员JavaWeb开发教程(2025.3.17)

11.5 案例-文件上传-阿里云OSS-入门 出现报错:Process exited with an error: 1 (Exit value: 1),点击exec那一行,出现错误原因:Command execution failed. 在CSDN上找到了解决方法: 之后出现新的报错&…...

python局部变量和全局变量

文章目录 1.局部变量和全局变量2.局部变量2.1 局部变量的作用2.2 局部变量的生命周期 3. 全局变量3.1 函数不能直接修改全局变量的引用3.2 在函数内部修改全局变量的值3.3 全局变量定义的位置3.4 全局变量命名的建议 1.局部变量和全局变量 (1)局部变量 …...

攻克 3D 模型网站建设难题,看迪威系统优势

在当今数字化时代,3D 模型广泛应用于建筑设计、游戏开发、工业制造、文化创意等诸多领域。拥有一个功能强大的 3D 模型网站,对于企业展示产品、设计师分享作品、教育机构开展教学等都具有重要意义。然而,构建这样一个网站却并非易事&#xff…...

仿最美博客POETIZE(简易版)

写在前面 本文章参考于两个开源项目分别为:POETIZE-最美博客,拾壹博客 如有侵权,请联系删除 正题 此页面为拾壹博客修改而成,采用了POETIZE的布局以及背景图片,技术栈:SpringbootVue,主要涉及页面为网站…...

vue/H5的日历组件可简单定制

在components创建riliZujian.vue <template><div class"max_box"><!-- 日历 文字 --><div class"month"><div click"lastMonth" class"monthText13">上月</div><div class"monthText2&q…...

STM32——独立看门狗(IWDG)

IWDG 简介 独立看门狗本质上是一个 定时器 &#xff0c;这个定时器有一个输出端&#xff0c;可以输出复位信号。该定时器是一个 12 位的递减计数器 &#xff0c;当计数器的值减到 0 的时候&#xff0c;就会产生一个复位信号。如果 在计 数没减到 0 之前&#xff0c;重置计…...

C++11智能指针简述

一、实现原理 在智能指针对象中有一个裸指针&#xff0c;此指针存储的是动态创建对象的地址&#xff0c;用于生存期控制&#xff0c;能够确保智能指针对象离开所在作用域时&#xff0c;自动正确地销毁动态创建的对象&#xff0c;防止内存泄漏。 使用裸指针存在的问题&#xff…...

fastpdf应用程序错误0xc0000142

原因&#xff1a;一般是部分DLL文件未能被系统注册或者丢失&#xff0c;导致动态库调用错误造成的。 解决方法&#xff1a;将DLL文件重新注册一遍。 手动复制&#xff1a;1.按下“winr”打开运行&#xff0c;在运行框中输入“cmd”&#xff0c;再点击确定&#xff1b; 2.在命…...

Linux操作系统实验报告单(3)文本编辑器vi/vim

一、实验目的 掌握vi/vim编辑器的进入和退出方式了解vi/vim的三种模式熟练vi/vim的操作命令 二、实验内容 1.在家目录下新建一个名为“vitest_name”&#xff08;“name”为学生姓名拼音&#xff09;的目录。 ●创建用户目录命令&#xff1a;sudo mkdir /home/vitest_lw3613 …...

linux(centos8)下编译ffmpeg

必要依赖 # centos8有些找不到依赖包&#xff0c;需要手动下载源码编译 sudo dnf install -y epel-release sudo dnf install -y git gcc gcc-c make nasm yasm \libtool autoconf automake cmake \bzip2 bzip2-devel zlib-devel \xz xz-devel x264-devel x265-devel \openssl…...

Centos固定IP配置

虚拟机安装 安装vmware 网盘链接 安装centos7.5 网盘链接 安装教程自行查找 固定IP配置 对安装好的VMware进行网络配置&#xff0c;方便虚拟机连接网络&#xff0c;本次设置建议选择NAT模式&#xff0c;需要宿主机的Windows和虚拟机的Linux能够进行网络连接&#xff0c;…...

AI自动获客系统源码

一、AI自动获客的显著优势 在当今商业环境中&#xff0c;AI自动获客技术正逐渐成为企业获客的新宠。相较于传统的获客方式&#xff0c;它展现出诸多显著优势。首先&#xff0c;AI技术能够通过智能分析和精准匹配&#xff0c;快速找到潜在客户&#xff0c;从而大大提高获客效率…...

3.17[Q]CV Bézier curve

我是计算机视觉学生&#xff0c;&#xff1f;详细解释&#xff0c;越细节越好 我是计算机视觉学生&#xff0c;如何使用de Casteljau 算法来绘制由 4 个控制点表示的 Bzier 曲线&#xff1f;原理是什么&#xff1f;工作流程是什么&#xff1f;详细解释&#xff0c;越细节越好…...

K8S学习之基础三十一:k8s中RBAC 的核心概念

Kubernetes (k8s) 中的 RBAC&#xff08;Role-Based Access Control&#xff0c;基于角色的访问控制&#xff09;是一种用于管理用户和服务账户对集群资源访问权限的机制。RBAC 允许管理员通过定义角色&#xff08;Role&#xff09;和角色绑定&#xff08;RoleBinding&#xff…...

二叉树算法题实战:从遍历到子树判断

目录 一、引言 二、判断两棵二叉树是否相同 思路 代码实现 注意点 三、二叉树的中序遍历 思路 代码实现 注意点 四、判断一棵树是否为另一棵树的子树 思路 代码实现 注意点 ​编辑 五、补充 一、引言 作者主页&#xff1a;共享家9527-CSDN博客 作者代码仓库&am…...

第8章 信息安全工程(一)

8.1 信息安全管理 8.1.1 保障要求 网络与信息安全保障体系中的安全管理建设&#xff0c;通常需要满足以下 5 项原则&#xff1a; (1)网络与信息安全管理要做到总体策划&#xff0c;确保安全的总体目标和所遵循的原则。 (2)建立相关组织机构&#xff0c;要明确责任部门&…...

学习threejs,使用MeshFaceMaterial面材质容器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshFaceMaterial 二…...

Git 实战指南:本地客户端连接 Gitee 全流程

本文将以 Gitee(码云)、系统Windows 11 为例,详细介绍从本地仓库初始化到远程协作的全流程操作 目录 1. 前期准备1.1 注册与配置 Gitee1.2 下载、安装、配置客户端1.3 配置公钥到 Gitee2. 本地仓库操作(PowerShell/Git Bash)2.1 初始化本地仓库2.2 关联 Gitee 远程仓库3. …...

Spring Cloud 中的服务注册与发现: Eureka详解

1. 背景 1.1 问题描述 我们如果通过 RestTamplate 进行远程调用时&#xff0c;URL 是写死的&#xff0c;例如&#xff1a; String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 当机器更换或者新增机器时&#xff0c;这个 URL 就需要相应地变…...

通过 SVG 使用 AI 生成理想图片:技术实现与实践指南

文章目录 1. SVG 与 AI 的结合&#xff1a;技术价值2. 技术原理&#xff1a;AI 如何生成 SVG&#xff1f;3. 实现步骤&#xff1a;从需求到图形3.1 定义需求3.2 使用 AI 生成 SVG3.3 验证与调整 4. 代码解析&#xff1a;实现科技感的关键4.1 渐变背景4.2 网格线条4.3 发光六边形…...

【AI学习从零至壹】Pytorch神经⽹络

Pytorch神经⽹络 神经网络简介神经元激活函数 神经网络神经⽹络的⼯作过程前向传播(forward) 反向传播(backward)训练神经⽹络 Pytorch搭建并训练神经⽹络神经⽹络构建和训练过程数据预处理构建模型优化器&提取训练数据训练样本 神经网络简介 神经元 在深度学习中&#x…...

设计模式-对象创建

对象创建 前言1. Factory Method1.1 模式介绍1.2 模式代码1.2.1 问题代码1.2.2 重构代码 1.3 模式类图1.4 要点总结 2. Abstract Factory2.1 模式介绍2.2 模式代码2.2.1 问题代码2.2.2 重构代码 2.3 模式类图2.4 要点总结 3. Prototype3.1 模式介绍3.2 模式代码3.3 模式类图3.4…...

谈谈你对前端工程化的理解,它包含哪些方面

大白话谈谈你对前端工程化的理解&#xff0c;它包含哪些方面 前端工程化其实就是把前端开发变得更规范、更高效、更易于维护的一套方法和流程。就好比你盖房子&#xff0c;不能随便瞎盖&#xff0c;得有设计图纸、施工标准、分工合作&#xff0c;前端工程化也是类似的道理。 项…...

JSON数据格式介绍

2.5 JSON 2.5.1.JSON格式的用途 在开发中凡是涉及到『跨平台数据传输』&#xff0c;JSON格式一定是首选 2.5.2.JSON格式的说明 1.JSON数据两端要么是{}&#xff0c;要么是[] {}定义JSON对象[]定义JSON数组 2.JSON对象的格式是&#xff1a;json {key:value,key:value,...,ke…...

java的WeakHashMap可以用来做缓存使用?强软弱虚四种引用对比

在 Java 中&#xff0c;引用&#xff08;Reference&#xff09;机制用于管理对象的生命周期和垃圾回收。Java 提供了四种类型的引用&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Refer…...

【AVRCP】Notification PDUs 深入解析与应用

目录 一、Notification PDUs 概述 二、GetPlayStatus:同步查询播放状态 2.1 命令功能与应用场景 2.2 请求格式(CT → TG) 2.3 响应格式(TG → CT) 2.4 注意事项 2.5 协议实现示例(伪代码) 三、RegisterNotification:异步事件订阅 3.1 命令概述 3.2 命令格式 …...

从过拟合到强化学习:机器学习核心知识全解析

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

【MySQL基础-9】深入理解MySQL中的聚合函数

在数据库操作中&#xff0c;聚合函数是一类非常重要的函数&#xff0c;它们用于对一组值执行计算并返回单个值。MySQL提供了多种聚合函数&#xff0c;如COUNT、SUM、AVG、MIN和MAX等。这些函数在数据分析和报表生成中扮演着关键角色。本文将深入探讨这些聚合函数的使用方法、注…...

Lora 中 怎么 实现 矩阵压缩

Lora 中 怎么 实现 矩阵压缩 1. 导入必要的库 import torch import re from datasets import Dataset from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer, \get_cosine_schedule_with_warmup, EarlyStoppingCallback from peft...