【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 中,通过索引权限控制对数据流的访问是一种高效且安全的方法。授予用户对数据流的权限等同于授予其后端索引的相同权限。这种机制不仅简化了权限管理,还确保了数据流和后端索引的一致性。通过合理配置角色和权限,您可以灵活地控制用户对数据流的访问,同时保护数据的安全性。
相关文章:
【Elasticsearch】Set up a data stream 创建data stream
在 Elasticsearch 中,数据流(Data Stream)是一种用于管理时间序列数据的高级功能,它通过自动管理索引的生命周期和版本控制,简化了大规模时间序列数据的存储和查询。以下是结合上述翻译内容,对 Elasticsear…...

redhat无网利用iso搭建本地yum源
redhat8 挂载iso镜像到本地目录 第一种方法: 上传rhel8的iso文件到服务器。 mkdir /mnt/cdrom mount -t iso9660 -o loop rhel-8.10-x86_64-dvd.iso /mnt/cdrom 第二种方法: 如果是vmware等自己安装的虚拟机,可以直接挂载iso镜像到cd/dvd…...

我的ChatGPT怎么登不上?
近期,不少用户反馈在使用ChatGPT时遇到登录困难、连接超时等问题。本文将从技术角度分析常见原因,并提供合规、安全的解决方案,同时结合开发者实际需求推荐实用工具,助您高效应对登录障碍。 ChatGPT登录失败的常见原因 网络环境限…...

飞机大战lua迷你世界脚本
-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…...

链表常用技巧和操作总结
链表是我们数据结构很重要的一点,也是常考的点 接下来我会先进行技巧总结,然后再通过具体的题来进行详解 总结 1.常用技巧 画图: 用笔是肯定比只用脑子强的,画图会更加清晰 引入虚拟头节点: 便于处理边界: 如果没有头节点,也就是第一个节点就有有效数据,就需要考虑边界问题…...
CSS的列表属性
列表相关属性,可以用在ul,ol,li元素上. CSS属性名功能属性值 list-style-type 设置列表符号 常用值如下: none:不显示前面的标识(很常用!) square:实心方块 disc:圆形 decimal:数字 lower-roma:小写罗马字 upper-roman:大写罗马字 lower-alph:小写字母 upper-alpha:大写字母 …...
Django 5实用指南(十三)安全性与防护
随着Web应用的普及,安全性问题越来越成为开发者关注的重点。Django5为Web开发者提供了强大的安全防护功能,可以帮助开发者防范常见的Web攻击,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)…...

cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼
一、基础使用:Cesium.js基础使用(vue)-CSDN博客 1、基础路径 为 Cesium 库设置一个全局变量 CESIUM_BASE_URL,用于指定 Cesium 的资源文件(如 WebGL shaders、纹理、字体等)的 示例场景:假设你…...

Go红队开发—编解码工具
文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容,可忽略直接看下面的编解码: 一开始用就按照下面的步骤即可 1.创建一个文件夹,你自己定义名字(建议只用…...

计算机毕业设计SpringBoot+Vue.js常规应急物资管理系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
thinkphp5对接阿里云ocr试卷切题
thinkphp5对接阿里云ocr试卷切题 提示:切题使用的是api:RecognizeEduPaperCut 以下是基于 ThinkPHP5.14 框架调用阿里云 RecognizeEduPaperCut 接口的详细实现步骤和代码示例。 文章目录 thinkphp5对接阿里云ocr试卷切题前言1、前置准备2、 配置文件3、控制器直接引…...

AI数据分析:用DeepSeek做数据清洗
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础,其目的是…...

免费轻巧多功能 PDF 处理工具:转换、压缩、提取一应俱全
软件技术 今天要给大家分享一款超实用的 PDF 处理工具,它免费又轻巧,如同随时待命的得力小帮手,功能之强大超乎想象,真的值得大家收藏。 这款工具是绿色版软件,解压后开启,满满的 PDF 处理功能便映入眼帘…...

基于JavaWeb开发的Java+SpringBoot+vue+element实现物流管理系统
基于JavaWeb开发的JavaSpringBootvueelement实现物流管理系统 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定…...

计算机毕业设计SpringBoot+Vue.js华强北商城二手手机管理系统 (源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

实验:k8s+keepalived+nginx+iptables
1、创建两个nginx的pod,app都是nginx nginx1 nginx2 2、创建两个的pod的service 3、配置两台keepalived的调度器和nginx七层反向代理,VIP设置192.168.254.110 keepalived调度器master keepalived调度器backup 两台调度器都配置nginx七层反向代理&#…...

DeepSeek入门学习
参考文档:DeepSeek(人工智能企业)_百度百科 DeepSeek-R1 凭借创新的强化学习技术实现重大突破。在极少量标注数据的基础上,通过深度优化的后训练阶段,显著提升了模型的推理能力。在数学运算、代码生成、自然语言推理等…...
几道考研数学题求解
函数性质问题 【题目】 已知函数 f ( x , y ) x 3 y 3 − ( x y ) 2 3 f(x, y) x^3 y^3 - (xy)^2 3 f(x,y)x3y3−(xy)23。设 T T T 为曲面 z f ( x , y ) z f(x, y) zf(x,y) 在点 ( 1 , 1 , 1 ) (1,1,1) (1,1,1) 处的切平面, D D D 为 T T T 与坐标…...
Highcharts 配置语法详解
Highcharts 配置语法详解 引言 Highcharts 是一个功能强大的图表库,广泛应用于数据可视化领域。本文将详细介绍 Highcharts 的配置语法,帮助您快速上手并制作出精美、实用的图表。 高级配置结构 Highcharts 的配置对象通常包含以下几部分:…...

OpenEuler学习笔记(三十五):搭建代码托管服务器
以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择: 一、自托管代码托管平台(可私有部署) 1. GitLab 简介: 功能全面的 DevOps 平台,支持代码托管、C…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...