【Elasticsearch】Set up a data stream 创建data stream

在 Elasticsearch 中,数据流(Data Stream)是一种用于管理时间序列数据的高级功能,它通过自动管理索引的生命周期和版本控制,简化了大规模时间序列数据的存储和查询。以下是结合上述翻译内容,对 Elasticsearch 中设置数据流的详细步骤和概念的总结:

---

1.数据流的概念

数据流是一种用于管理时间序列数据的结构,它通过一个或多个后端索引来存储数据。数据流的主要优势包括:

• 自动生命周期管理:通过索引生命周期管理(ILM)策略,自动处理索引的滚动、压缩和删除。

• 简化索引管理:自动管理索引的版本,无需手动创建或管理索引。

• 无缝集成:与 Elasticsearch 的数据层(如热、温、冷、冻结层)无缝集成。

---

2.设置数据流的步骤

步骤 1:创建索引生命周期策略(ILM Policy)

索引生命周期策略用于定义索引在不同阶段的行为,例如滚动(rollover)、压缩(shrink)、合并(forcemerge)和删除(delete)。生命周期策略是可选的,但强烈推荐使用,因为它可以自动化管理数据流的后端索引。

生命周期策略通常包含以下阶段:

• Hot(热)阶段:存储最新数据,支持快速写入和查询。

• Warm(温)阶段:数据不再频繁更新,但仍然需要查询。

• Cold(冷)阶段:数据很少被查询,但需要保留。

• Frozen(冻结)阶段:数据被冻结,仅支持搜索。

• Delete(删除)阶段:数据被永久删除。

示例生命周期策略:

```json

PUT _ilm/policy/my-lifecycle-policy

{

  "policy": {

    "phases": {

      "hot": {

        "actions": {

          "rollover": {

            "max_primary_shard_size": "50gb"

          }

        }

      },

      "warm": {

        "min_age": "30d",

        "actions": {

          "shrink": {

            "number_of_shards": 1

          },

          "forcemerge": {

            "max_num_segments": 1

          }

        }

      },

      "cold": {

        "min_age": "60d",

        "actions": {

          "searchable_snapshot": {

            "snapshot_repository": "found-snapshots"

          }

        }

      },

      "frozen": {

        "min_age": "90d",

        "actions": {

          "searchable_snapshot": {

            "snapshot_repository": "found-snapshots"

          }

        }

      },

      "delete": {

        "min_age": "735d",

        "actions": {

          "delete": {}

        }

      }

    }

  }

}

```

---

步骤 2:创建组件模板(Component Templates)

组件模板是用于定义索引模板的构建块,通常包含映射(mappings)和索引设置(settings)。组件模板可以被多个索引模板复用,提高配置的灵活性。

• 映射组件模板:定义字段的映射,例如`@timestamp`和`message`。

• 设置组件模板:定义索引的生命周期策略和其他设置。

示例组件模板:

```json

PUT _component_template/my-mappings

{

  "template": {

    "mappings": {

      "properties": {

        "@timestamp": {

          "type": "date",

          "format": "date_optional_time||epoch_millis"

        },

        "message": {

          "type": "wildcard"

        }

      }

    }

  },

  "_meta": {

    "description": "Mappings for @timestamp and message fields"

  }

}

 

PUT _component_template/my-settings

{

  "template": {

    "settings": {

      "index.lifecycle.name": "my-lifecycle-policy"

    }

  },

  "_meta": {

    "description": "Settings for ILM"

  }

}

```

---

步骤 3:创建索引模板(Index Template)

索引模板用于定义数据流的结构,包括索引模式、组件模板和数据流配置。索引模板必须启用数据流,并指定与数据流名称匹配的索引模式。

示例索引模板:

 

```json

PUT _index_template/my-index-template

{

  "index_patterns": ["my-data-stream*"],

  "data_stream": {},

  "composed_of": ["my-mappings", "my-settings"],

  "priority": 500,

  "_meta": {

    "description": "Template for my time series data"

  }

}

```

---

步骤 4:创建数据流

数据流可以通过以下两种方式创建:

1. 自动创建:通过向数据流名称发送索引请求来自动创建数据流。

2. 手动创建:使用`PUT _data_stream/<name>`API 显式创建数据流。

示例:

 

```json

PUT my-data-stream/_bulk

{ "create": {} }

{ "@timestamp": "2099-05-06T16:21:15.000Z", "message": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736" }

```

 

---

步骤 5:保护数据流

使用索引权限控制对数据流的访问。授予对数据流的权限等同于授予对其后端索引的相同权限。

---

步骤 6:管理数据流

• 获取数据流信息:使用`GET _data_stream/<name>`API 获取数据流的详细信息。

• 删除数据流:使用`DELETE _data_stream/<name>`API 删除数据流及其后端索引。

---

3.数据流的优势

• 自动化管理:通过 ILM 策略自动处理索引的生命周期。

• 灵活的查询:支持对所有后端索引的统一查询。

• 高效存储:通过压缩和快照功能优化存储成本。

• 无缝集成:与 Elastic Stack 的其他组件(如 Kibana、Logstash)无缝集成。

---

4.注意事项

• 数据流的名称必须与索引模板中的索引模式匹配。

• 数据流的生命周期策略必须在索引模板中指定。

• 数据流的后端索引是隐藏的,用户不能直接对其进行操作。

---

通过以上步骤,您可以高效地设置和管理 Elasticsearch 中的数据流,从而更好地处理大规模时间序列数据。

在 Elasticsearch 中,数据流(Data Stream)的访问控制是通过索引权限(Index Privileges)实现的。这种机制确保了对数据流的访问权限管理既灵活又安全。以下是关于如何使用索引权限控制对数据流的访问,以及授予数据流权限与授予其后端索引权限之间的关系的详细说明:


---

1.数据流与后端索引的关系
数据流是一个逻辑结构,用于管理时间序列数据。它通过一个或多个后端索引来存储数据。这些后端索引是隐藏的,用户通常不会直接与它们交互。相反,所有对数据流的操作(如写入、查询)都会自动映射到相应的后端索引。

由于数据流的后端索引是隐藏的,直接管理这些索引的权限是不现实的。因此,Elasticsearch 提供了一种机制,允许通过管理数据流的权限来间接控制对后端索引的访问。


---

2.索引权限的作用
Elasticsearch 提供了多种索引权限,用于控制用户对索引的操作。这些权限包括:

• `read`:允许用户读取索引中的数据。

• `write`:允许用户向索引中写入数据。

• `delete`:允许用户删除索引中的文档。

• `create_index`:允许用户创建新的索引。

• `delete_index`:允许用户删除索引。

• `manage`:允许用户管理索引的设置(如生命周期策略)。

对于数据流,这些权限同样适用。当您授予用户对数据流的某种权限时,Elasticsearch 会自动将这些权限映射到数据流的后端索引。


---

3.授予数据流权限
要授予用户对数据流的权限,可以通过角色(Role)和角色映射(Role Mapping)来实现。角色定义了用户可以执行的操作,而角色映射将角色分配给用户或用户组。


示例:授予对数据流的读写权限
假设您有一个数据流`my-data-stream`,并希望授予用户`john_doe`对该数据流的读写权限。以下是具体步骤:


1. 创建角色:定义角色的权限。

```json
   PUT /_security/role/my_data_stream_role
   {
     "indices": [
       {
         "names": ["my-data-stream"],
         "privileges": ["read", "write"]
       }
     ]
   }
   ```

2. 映射角色到用户:将角色分配给用户。

```json
   PUT /_security/user/john_doe
   {
     "roles": ["my_data_stream_role"]
   }
   ```

权限的传递
当用户`john_doe`被授予对`my-data-stream`的读写权限时,Elasticsearch 会自动将这些权限映射到数据流的后端索引。这意味着:

• 用户可以读取和写入数据流中的数据。

• 用户可以读取和写入数据流的后端索引中的数据。


---

4.权限的等价性
授予用户对数据流的权限等同于授予其后端索引的相同权限。这种等价性体现在以下几个方面:


• 读取权限:用户可以查询数据流中的数据,这等同于查询后端索引中的数据。

• 写入权限:用户可以向数据流中写入数据,这等同于向后端索引写入数据。

• 删除权限:用户可以删除数据流中的文档,这等同于删除后端索引中的文档。

• 管理权限:用户可以管理数据流的设置(如生命周期策略),这等同于管理后端索引的设置。

这种设计使得用户无需直接与后端索引交互,同时确保了权限管理的一致性和安全性。


---

5.注意事项

• 数据流的隐藏性:后端索引是隐藏的,用户无法直接访问或管理它们。所有操作都通过数据流的 API 进行。

• 权限的粒度:虽然数据流的权限会映射到后端索引,但您仍然可以通过更细粒度的权限控制(如字段级权限)来进一步限制用户对数据的访问。

• 角色管理:建议通过角色管理权限,而不是直接为用户分配权限。这样可以更灵活地管理权限,并减少管理成本。


---

总结
在 Elasticsearch 中,通过索引权限控制对数据流的访问是一种高效且安全的方法。授予用户对数据流的权限等同于授予其后端索引的相同权限。这种机制不仅简化了权限管理,还确保了数据流和后端索引的一致性。通过合理配置角色和权限,您可以灵活地控制用户对数据流的访问,同时保护数据的安全性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27733.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

端到端自动驾驶——cnn网络搭建

论文参考&#xff1a;https://arxiv.org/abs/1604.07316 demo 今天主要来看一个如何通过图像直接到控制的自动驾驶端到端的项目&#xff0c;首先需要配置好我的仿真环境&#xff0c;下载软件udacity&#xff1a; https://d17h27t6h515a5.cloudfront.net/topher/2016/November…

自己的网页加一个搜索框,调用deepseek的API

一切源于一个学习黑马程序员视频的突发奇想 在网页悬浮一个搜索按钮&#xff0c;点击可以实现调用deepseek文本模型回答你的问题 前端实现 前端使用vue实现的 首先是整体页面&#xff1a;AIWidget.vue <template><div><!-- 悬浮 AI 按钮 --><el-button c…

第五天 Labview数据记录(5.3 CSV文件读写)

5.3 CSV文件读写 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff09;文件是一种常见的文本文件格式&#xff0c;用于存储表格数据。它在程序中具有重要的作用&#xff0c;主要体现在以下几个方面&#xff1a; 1. 数据存储与交换 &#xff1b;2. 跨平台…

250301-OpenWebUI配置DeepSeek-火山方舟+硅基流动+联网搜索+推理显示

A. 最终效果 B. 火山方舟配置&#xff08;一定要点击添加&#xff09; C. 硅基流动配置&#xff08;最好要点击添加&#xff0c;否则会自动弹出所有模型&#xff09; D. 联网搜索配置 E. 推理过程显示 默认是没有下面的推理过程的显示的 F. SearXNG配置 注意&#xff1a;此…

阿里云物联网获取设备属性api接口:QueryDevicePropertyData

阿里云物联网接口&#xff1a;QueryDevicePropertyData 说明&#xff1a;调用该接口查询指定设备或数字孪生节点&#xff0c;在指定时间段内&#xff0c;单个属性的数据 比如提取上传到物联网的温度数据 api文档&#xff1a;QueryDevicePropertyData_物联网平台_API文档-阿里…

算法系列之动态规划

动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;是一种用于解决复杂问题的算法设计技术。它通过将问题分解为更小的子问题&#xff0c;并存储这些子问题的解来避免重复计算&#xff0c;从而提高算法的效率。本文将介绍动态规划的基本概念、适用场景、复…

Linux系列:如何用 C#调用 C方法造成内存泄露

一&#xff1a;背景 1. 讲故事 好久没写文章了&#xff0c;还是来写一点吧&#xff0c;今年准备多写一点 Linux平台上的东西&#xff0c;这篇从 C# 调用 C 这个例子开始。在 windows 平台上&#xff0c;我们常常在 C 代码中用 extern "C" 导出 C风格 的函数&#x…

1.2.3 使用Spring Initializr方式构建Spring Boot项目

本实战概述介绍了如何使用Spring Initializr创建Spring Boot项目&#xff0c;并进行基本配置。首先&#xff0c;通过Spring Initializr生成项目骨架&#xff0c;然后创建控制器HelloController&#xff0c;定义处理GET请求的方法hello&#xff0c;返回HTML字符串。接着&#xf…

【音视频】H265解码Nalu后封装rtp包

概述 基于ZLM流媒体框架以及简单RTSP服务器开源项目分析总结&#xff0c;相关源码参考以下链接 H265-rtp提取Nalu逻辑 通过rtsp流地址我们可以获取视频流中的多个rtp包&#xff0c;其中每个RTP包中又会包含一个或者多个Nalu&#xff0c;将其提取处理 总体逻辑分析 核心逻辑在…

03.03 QT

1.在注册登录的练习里面&#xff0c;追加一个QListwidget 项目列表 要求:点击注册之后&#xff0c;将账号显示到 1istwidget上面去 以及&#xff0c;在listwidget中双击某个账号的时候&#xff0c;将该账号删除 Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWi…

【星云 Orbit • STM32F4】04.一触即发:GPIO 外部中断

【星云 Orbit- • STM32F4】04. 一触即发&#xff1a;外部中断控制 摘要 本文详细介绍了如何使用STM32F407微控制器的HAL库实现外部中断功能。通过配置GPIO引脚作为外部中断源&#xff0c;并在中断回调函数中处理按键事件&#xff0c;实现了按键控制LED状态翻转的功能。本文旨…

(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意&#xff1a;ESP-01sWIFI模块&#xff0c;去搜了一下这个小东西很有玩点&#xff0c;远程控制LED啥的&#xff0c;然后我就想…

并发编程(线程基础)面试题及原理

1. 进程与线程 1.1 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至CPU&#xff0c;数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。 当一个程序被运…

基于开源库编写MQTT通讯

目录 1. MQTT是什么&#xff1f;2. 开发交互UI3. 服务器核心代码4. 客户端核心代码5. 消息订阅与发布6. 通讯测试7. MQTT与PLC通讯最后. 核心总结 1. MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Terlemetry Transport&#xff09;消息队列遥测协议&#xff1b;是…

vector习题

完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和&#xff0c;如&#xff1a;6321。则称其为“完数”&#xff1b;若因子之和大于该数&#xff0c;则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述&#xff…

vscode通过ssh远程连接(linux系统)不能跳转问题

1.问题描述 unbantu中的vscode能够通过函数跳转到函数定义&#xff0c;而windows通过ssh连接unbantu的vscode却无法跳转 2.原因&#xff1a; 主要原因是这里缺少插件&#xff0c;这里是unbantu给主机的服务器&#xff0c;与ubantu本地vscode插件相互独立&#xff0c;能否跳转…

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…

安全运营的“黄金4小时“:如何突破告警疲劳困局

在当今复杂多变的网络安全环境中&#xff0c;安全团队面临着前所未有的挑战。尤其是面对高级持续性威胁&#xff08;APT&#xff09;时&#xff0c;最初的“黄金4小时”成为决定成败的关键窗口。在这段时间内&#xff0c;快速而准确地响应可以极大地降低损失&#xff0c;然而&a…

【Pytest】setup和teardown的四个级别

文章目录 1.setup和teardown简介2.模块级别的 setup 和 teardown3.函数级别的 setup 和 teardown4.方法级别的 setup 和 teardown5.类级别的 setup 和 teardown 1.setup和teardown简介 在 pytest 中&#xff0c;setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操…

傅里叶分析

傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复…