【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…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...