带你读《Elastic Stack 实战手册》之28:——3.4.2.13.Rollover API(1)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之28:——3.4.2.13.Rollover API(1)

3.4.2.13.Rollover API


创作人:杨松柏

 

了解 Elasticsearch 的同学应该都知道,索引的主分片在设定之后,改变(shrinksplit

reindex)主分片数目的成本相当大;因此在设计之初,一定要规划好索引的分片数目。如果集群的中节点数目固定,且写入的数据不会再有更新操作或者更新操作极其少;可以使用Rollover index的方式来限制每个索引的大小。

 

Rollover:

 

rollover-target绑定的当前索引满足设定的条件,执行滚动操作将会为rollover-target创建新索引。滚动目标可以是索引别名或者数据流;

 

l 当滚动目标是别名时,执行滚动别名将指向新的索引。

l 当滚动目标是数据流时,数据流将数据写入到新的索引,且新索引名后缀自增 1。


POST /alias1/_rollover/my-index-000002
{
  "conditions": {
    "max_age":   "7d",
    "max_docs":  2,
    "max_size": "5gb"
  }
}


如果需要实现 Rollover 自动化,可以自行实现一个定时任务请求该 API 或者使用 Elasticsearch 的 index lifecycle management (ILM) 功能。

 

API 介绍


Rollover API


POST /<rollover-target>/_rollover/<target-index>?wait_for_active_shards=<number>
POST /<rollover-target>/_rollover?wait_for_active_shards=<number>

URI 参数

 

 

必填参数,参数类型string。将已存的索引别名或数据流,分配给目标索引,来完成执行滚动。

 

 

可选参数,参数类型string。代表要被创建和分配索引别名的目标索引名称;

 

目标索引名称必须遵循以下规则:

 

l 所有字符必须小写

l 不允许包含\ / * ? " < >| ` ` (space character) , #

l 在7.0版本之前允许包含:,在7.0+不再支持

l 不能够以-_+开头

l 名称不能够是.或者..

l 长度不能超过 255 字节(注意:这是字节数限制,如果是字符得看表示一个字符需要多少个字节)

l 名称以 . 开头已经过时;除了隐藏索引和由插件管理的内部索引

 

如果rollover-target为数据流, 参数是不被允许的;执行 Rollover 数据流会按照相应规则生产新的索引:格式为 .ds--000001,其中-000001,数字必为6位数,左侧高位用0 补充,每发生一次 Rollover 自增加1。

 如果rollover-target为一个索引别名,且别名绑定的索引以 - 结尾;如果不指定

 执行 Rollover ,将生成新的索引indexName-+1

 

如果别名现绑定的索引名称不满足以 - 形式结尾,则必须指定 

 

查询参数

 

dry_run

 

可选参数,参数类型为boolean,默认值为 false。该参数的作用为检测 index 是否满足提供的 rollover 条件。 如果设置为true,将会完成检查工作,但不会真正执行 rollover 。

 

include_type_name

 

可选参数,参数类型为boolean,默认值为 false。在 mappings体内要求必须有mapping

type。

 

wait_for_active_shards

 

可选参数,参数类型为 string,默认值为 1(即只要一个主分片处于活跃便可以执行操作)。在执行rollover,要求处于活跃状态的索引分片副本数目,以保证数据的可靠和安全性;设置为

all或任何正整数,最多为索引分片的总数(number_of_replicas+1)。

 

详情可以参考 Active shardshttps://www.elastic.co/guide/en/elasticsearch/reference/7.10/docs-index_.html#index-wait-for-active-shards

 

master_timeout

 

可选参数,value值的单位可为dhmsmsmicrosnanos,默认值为30s。等待连接到主节点的时间。如果在超时时间阈值之前没有收到响应,则请求失败并返回错误。


timeout

 

可选参数,value 值的单位可为dhmsmsmicrosnanos,默认值为30s。请求等待

 

响应的时间。如果在超时时间阈值之前没有收到响应,则请求失败并返回错误。

 

请求体参数

 

aliases

 

可选参数,alias object。包含索引的 Index aliases。详情可以参看索引别名,批量操作的相关内容(即_aliases API)。

 

conditions

 

可选参数,参数类型object。如果设置条件,则只有现有索引达到条件集任何一个条件的阈值才会完成rollover。如果省略,则无条件执行rollover。条件集包括:

 

l max_age

l 可选参数,value 值的单位可为dhmsmsmicrosnanos;依据索引的创建时间与现在时间差值作为阈值。

 

l max_docs

l 可选参数,参数类型为integer;索引的最大文档数目;计数不包括自上次refresh之后新添加的文档和副本分片的文档。

 

l max_size

l 可选参数, byte units 值(单位bkbmbgbtbpb)。索引大小的最大值,只计算索引主分片的大小,副本不包括在内。

 

 mappings

 

可选参数,参数 mapping object。为索引进行数据建模,定义字段schema等。如果设置,mapping可能包含:

 

l 字段名字(Field names)

l 字段的数据类型(Field data types)

l mapping中一些修饰参数(Mapping parameters)

 

settings

 

可选参数,参数 index setting object。索引的配置选项;比如设置滚动产生的新索引副本分片数目等等。

 

详情可以参看 Index Settings:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/index-modules.html#index-modules-settings

 


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.13.Rollover API(2) https://developer.aliyun.com/article/1230208


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态。
|
4月前
|
缓存 Serverless API
函数计算产品使用问题之怎么通过API使用SD
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
消息中间件 运维 Serverless
函数计算产品使用问题之如何部署Stable Diffusion Serverless API
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
自然语言处理 数据可视化 API
淘宝商品评论 API 接口:深度解析用户评论,优化产品与服务
淘宝是领先的中国电商平台,其API为开发者提供商品信息、交易记录及用户评价等数据访问服务。对于获授权的开发者和商家,可通过申请API权限、获取并解析评论数据来进行情感分析和统计,进而优化产品设计、提升服务质量、增强用户互动及调整营销策略。未授权用户可能受限于数据访问。
|
9天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
8天前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态。
|
29天前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态。
|
4月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之是否支持直接从API接口采集数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要