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

聊聊elasticsearch的data-streams

本文主要研究一下elasticsearch的data-streams

data-streams

主要特性

  • 首先data streams是由一个或者多个自动生成的隐藏索引组成的,它的格式为.ds-<data-stream>-<yyyy.MM.dd>-<generation>

示例.ds-web-server-logs-2099.03.07-000034,generation是一个6位的数字,默认从000001开始

  • 必须包含@timestamp字段,映射为date或者date_nanos字段类型,如果index template没有定义类型的话,则elasticsearch默认将其定义为date类型

  • 读请求会自动路由到关联到的所有索引,而写请求的话则是添加到最新的索引,旧的索引不支持添加数据

  • rollover会根据指定条件来创建新索引,一般是推荐使用ILM自动取rollover

使用

创建mappings和settings

# Creates a component template for mappings
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","my-custom-meta-field": "More arbitrary metadata"}
}# Creates a component template for index settings
PUT _component_template/my-settings
{"template": {"settings": {"index.lifecycle.name": "my-lifecycle-policy"}},"_meta": {"description": "Settings for ILM","my-custom-meta-field": "More arbitrary metadata"}
}

主要是利用_component_template创建mappings和settings,方面下面创建index_template使用

创建index template

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","my-custom-meta-field": "More arbitrary metadata"}
}

创建data stream

PUT /_data_stream/my-data-stream-1/

查询data stream

GET /_data_stream/my-data-stream-1
{"data_streams": [{"name": "my-data-stream-1","timestamp_field": {"name": "@timestamp"},"indices": [{"index_name": ".ds-my-data-stream-1-2023.08.06-000001","index_uuid": "ByCb4bPGSEOXfVf3Txpiiw"}],"generation": 1,"_meta": {"my-custom-meta-field": "More arbitrary metadata","description": "Template for my time series data"},"status": "YELLOW","template": "my-data-stream","ilm_policy": "my-lifecycle-policy","hidden": false,"system": false,"allow_custom_routing": false,"replicated": false}]
}

创建数据

POST my-data-stream-1/_doc
{"@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"
}

返回

{"_index": ".ds-my-data-stream-1-2023.08.06-000001","_id": "bHTfyIkBwVE4kI2xm5nL","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1
}

查询索引数据

POST my-data-stream-1/_search
{ "query": { "match_all": {} } }

filebeat

filebeat默认output到elasticsearch创建的就是data streams,如果不想使用其自动加载的模版,则可以设置setup.template.enabled=false,那么创建的则是普通的index。

小结

elasticsearch7.9版本以xpack的形式推出了data streams,主要是针对持续产生的时间序列数据提供了一种更为简单的方式去对索引进行数据切分和统一查询的方式。

doc

  • data-streams
http://www.lryc.cn/news/112386.html

相关文章:

  • unreal engine c++ 创建tcp server, tcp client
  • 24届华东理工大学近5年自动化考研院校分析
  • 初识集合和背后的数据结构
  • 选择适合你的数据可视化工具:提升洞察力的关键决策
  • H5中的draggable
  • 搭建SVN服务器
  • OpenCV之信用卡识别实战
  • Detector定位算法在FPGA中的实现——section1 原理推导
  • 心电信号去噪:方法与应用
  • 睡眠助手/白噪音/助眠夜曲微信小程序源码下载 附教程
  • Spring Cloud常见问题处理和代码分析
  • debian怎么修改man help为中文,wsl怎么修改显示语言为中文
  • k8s概念-亲和力与反亲和力
  • 【数据结构】实现单链表的增删查
  • Vue2 第二十节 vue-router (四)
  • 第三章 图论 No.1单源最短路及其综合应用
  • ❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件
  • 关于Godot游戏引擎制作流水灯
  • C语言 函数指针详解
  • LNMP及论坛搭建
  • 【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)
  • Godot 4 练习 - 制作粒子
  • Java基础继承详解
  • 如何维护你的电脑:打造IT人的重要武器
  • 【雕爷学编程】MicroPython动手做(31)——物联网之Easy IoT 3
  • Elasticsearch 快照和恢复
  • Packet Tracer - 检验 IPv4 和 IPv6 编址
  • PHP8的表达式-PHP8知识详解
  • 亚马逊云科技七项生成式AI新产品生成式AI,为用户解决数据滞后等难题
  • 图片等比例显示全部,兼容不同宽高比例图片