elasticsearch开发中data-streams使用解析

 更新时间:2023年08月07日 14:46:28   作者:codecraft  
这篇文章主要为大家介绍了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

以上就是elasticsearch开发中data-streams使用解析的详细内容,更多关于elasticsearch data-streams的资料请关注脚本之家其它相关文章!

相关文章

  • 在非spring环境中调用service中的方法

    在非spring环境中调用service中的方法

    非Spring环境指的是不使用Spring框架来管理和配置应用程序的运行时环境,本文将给大家介绍如何在非spring环境中调用service中的方法,文中有详细实现步骤,需要的朋友可以参考下
    2024-03-03
  • Spring Boot与React集成的示例代码

    Spring Boot与React集成的示例代码

    这篇文章主要介绍了Spring Boot与React集成的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • IntelliJ IDEA使用maven实现tomcat的热部署

    IntelliJ IDEA使用maven实现tomcat的热部署

    这篇文章主要介绍了IntelliJ IDEA使用maven实现tomcat的热部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Java中List使用stream流转成map的几种方式详解

    Java中List使用stream流转成map的几种方式详解

    Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作,下面这篇文章主要给大家介绍了关于Java中List使用stream流转成map的几种方式,需要的朋友可以参考下
    2023-04-04
  • 详谈Java8新特性泛型的类型推导

    详谈Java8新特性泛型的类型推导

    这篇文章我们来看一篇关于Java8新特性之泛型的类型推导,希望这篇文章能够让各位深入到了解到关于Java8新特性之泛型的类型用法,有需要的朋友们下面来一起看看吧。
    2016-09-09
  • 实时计算知多少?

    实时计算知多少?

    这篇文章对滑动窗口计数的概念和关键代码做了较为详细解释,让我们对实时计算这一概念有了更深的了解,需要的朋友可以参考下
    2015-07-07
  • java图片添加水印实例代码分享

    java图片添加水印实例代码分享

    这篇文章主要为大家详细介绍了java图片添加水印实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Spring XML Schema扩展机制的使用示例

    Spring XML Schema扩展机制的使用示例

    所谓整合,即在Spring的框架下进行扩展,让框架能无缝的与Spring工程配合使用。Spring设计了良好的扩展的机制,本文将对Spring的扩展方法及原理进行简单介绍。
    2021-05-05
  • Springcloud Bus消息总线原理是实现详解

    Springcloud Bus消息总线原理是实现详解

    Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令,本文将对其用法进行详细介绍
    2022-09-09
  • SpringBoot + vue2.0查询所用功能详解

    SpringBoot + vue2.0查询所用功能详解

    这篇文章主要介绍了SpringBoot + vue2.0查询所用功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11

最新评论