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的资料请关注脚本之家其它相关文章!

相关文章

  • springMVC获取请求参数的几种方式汇总

    springMVC获取请求参数的几种方式汇总

    在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结,下面这篇文章主要给大家介绍了关于springMVC获取请求参数的几种方式,需要的朋友可以参考下
    2022-04-04
  • Java8 如何正确高效的使用并行流

    Java8 如何正确高效的使用并行流

    这篇文章主要介绍了Java8 如何正确高效的使用并行流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • SpringSecurity Oauth2访问令牌续期问题

    SpringSecurity Oauth2访问令牌续期问题

    这篇文章主要介绍了SpringSecurity Oauth2访问令牌续期问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java 批量获取地址间距离工具(支持中转站)

    Java 批量获取地址间距离工具(支持中转站)

    本文主要介绍了Java批量获取地址间距离,获取两个地址间距离,实现方式比较多,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java中闭包简单代码示例

    Java中闭包简单代码示例

    这篇文章主要介绍了Java中闭包简单代码示例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 使用Post方式提交数据到Tomcat服务器的方法

    使用Post方式提交数据到Tomcat服务器的方法

    这篇将介绍使用Post方式提交数据到服务器,由于Post的方式和Get方式创建Web工程是一模一样的,只用几个地方的代码不同,这篇文章主要介绍了使用Post方式提交数据到Tomcat服务器的方法,感兴趣的朋友一起学习吧
    2016-04-04
  • idea离线使用jrebel的超详细教程

    idea离线使用jrebel的超详细教程

    IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,下面通过本文给大家分享idea离线使用jrebel的超详细教程(亲测有效),感兴趣的朋友一起看看吧
    2020-12-12
  • java编译命令和启动命令的使用方式

    java编译命令和启动命令的使用方式

    Java开发中,编译源文件需使用javac命令,该命令能将.java文件编译成.class字节码文件,后者可在JVM上运行,常用编译选项包括-d指定输出目录,-classpath设置类搜索路径等,启动Java程序使用java命令,它加载并运行包含main方法的类
    2024-10-10
  • SpringBoot Admin集成诊断利器Arthas示例实现

    SpringBoot Admin集成诊断利器Arthas示例实现

    这篇文章主要为大家介绍了SpringBoot Admin集成诊断利器Arthas示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • SpringBoot 启动方法run()源码解析

    SpringBoot 启动方法run()源码解析

    这篇文章主要介绍了SpringBoot 启动方法run()源码赏析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论