日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

TimeStream API功能介紹

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

阿里云Elasticsearch提供Aliyun-TimeStream時序增強插件,支持通過API接口完成TimeStream索引的增刪改查,以及數據寫入和查詢。本文介紹如何使用TimeStream API。

背景信息

TimeStream是阿里云Elasticsearch團隊自研,并結合Elastic社區時序類產品特性共建的時序引擎。阿里云Elasticsearch提供的TimeStream時序增強功能插件,優化了Elasticsearch在存儲指標數據方面的DSL(Domain-Specific Language)查詢復雜且慢以及存儲成本過高等問題。詳細信息請參見TimeStream時序增強引擎介紹

前提條件

已創建阿里云Elasticsearch實例,且實例版本為7.10(內核版本為1.8.0及以上)或7.16及以上(內核版本為1.7.0及以上)。具體操作請參見創建阿里云Elasticsearch實例

創建TimeStream索引

請求語法

  • Body為空

    PUT _time_stream/{name}
  • Body中傳入自定義模板內容

    PUT _time_stream/{name}
    {
      --- index template ---
    }

使用說明

創建TimeStream索引無需傳入index_patterns,TimeStream使用{name}作為index名稱,不支持模糊匹配。

請求中的Body可為空,也可傳入自定義模板內容,Body格式請參見Elasticsearch的Index templates接口

示例

  • 請求示例

    PUT _time_stream/test_stream
    {
      "template": {
        "settings": {
          "index.number_of_shards": "10"
        }
      }
    }
  • 返回示例

    {
      "acknowledged" : true
    }

更新TimeStream索引配置

請求語法

  • Body為空

    POST _time_stream/{name}/_update
  • Body中傳入自定義模板內容

    POST _time_stream/{name}/_update
    {
      --- index template ---
    }

使用說明

更新接口傳遞的Body內容跟創建接口一致,具體可見創建TimeStream索引的使用說明。

更新TimeStream索引配置后,該配置不會立即應用到索引上,需要進行一次rollover后,配置才生效。

示例

  • 請求示例

    POST _time_stream/test_stream/_update
    {
      "template": {
        "settings": {
          "index.number_of_shards": "10"
        }
      }
    }
  • 返回示例

    {
      "acknowledged" : true
    }

刪除TimeStream索引

請求語法

Delete _time_stream/{name}

使用說明

支持模糊匹配或按逗號分隔索引實現批量刪除。

警告

刪除TimeStream索引后,對應的索引數據會直接清除,請謹慎操作。

示例

  • 請求示例

    DELETE _time_stream/test_stream
  • 返回示例

    {
      "acknowledged" : true
    }

查看TimeStream索引列表

請求語法

  • 查看全部索引列表

    GET _time_stream
  • 查看指定的索引列表

    GET _time_stream/{name}

使用說明

查看TimeStream索引列表,支持模糊查詢,以及按逗號分隔索引。

示例

  • 請求示例

    GET _time_stream
  • 返回示例

    {
      "time_streams" : {
        "test_stream" : {
          "name" : "test_stream",
          "datastream_name" : "test_stream",
          "template_name" : ".timestream_test_stream",
          "template" : {
            "index_patterns" : [
              "test_stream"
            ],
            "template" : {
              "settings" : {
                "index" : {
                  "number_of_shards" : "10"
                }
              }
            },
            "composed_of" : [
              ".system.timestream.template"
            ],
            "data_stream" : {
              "hidden" : true
            }
          }
        }
      }
    }
                        

查看TimeStream指標信息

請求語法

  • 查看全部索引的指標信息

    GET _time_stream/_stats
  • 查看指定索引的指標信息

    GET _time_stream/{name}/_stats

使用說明

查看TimeStream指標接口,可以獲取索引的time_stream_count(時間線數量)等指標。

關于time_stream_count(時間線數量)的說明如下:

  • 計算方式

    1. 獲取索引中每個主shard的時間線數量。由于每個shard的時間線不重復,所以一個索引的時間線數量就是全部主shard時間線數量的總和。

    2. 返回TimeStream索引列表中時間線數量最大的索引。

  • 注意事項

    由于shard上獲取時間線數量是從內部的時間線ID(_tsid)字段的docvalue數據直接獲取,查詢代價過高,所以增加了緩存策略。只讀索引獲取一次后就不再獲取,正常索引緩存默認失效時間是5分鐘,通過設置索引配置index.time_series.stats.refresh_interval可修改緩存更新時間,最小為1分鐘。

示例

  • 請求示例

    GET _time_stream/_stats
  • 返回示例

    {
      "_shards" : {
        "total" : 4,
        "successful" : 4,
        "failed" : 0
      },
      "time_stream_count" : 2,
      "indices_count" : 2,
      "total_store_size_bytes" : 1278822,
      "time_streams" : [
        {
          "time_stream" : "test_stream",
          "indices_count" : 1,
          "store_size_bytes" : 31235,
          "tsidCount" : 1
        },
        {
          "time_stream" : "prom_index",
          "indices_count" : 1,
          "store_size_bytes" : 1247587,
          "tsidCount" : 317
        }
      ]
    }

寫入數據

請求語法

TimeStream使用Elasticsearch原生寫入接口寫入數據,包括bulkindex

重要

寫入只支持append數據,不支持index存在的數據,也不支持update和delete。

寫入模型

TimeStream寫入的數據要符合時序數據模型,默認模型如下。

字段

描述

labels

指標相關的屬性,唯一標識個體的元數據,時間線ID可由labels生成。

metrics

指標數據集合,指標只能為long或者double類型。

@timestamp

指標記錄對應的時間,默認是毫秒級的時間戳。

數據示例如下。

{
  "labels": {
    "namespce": "cn-hanzhou",
    "clusterId": "cn-xxx-xxxxxx",
    "nodeId": "node-xxx",
    "label": "test-cluster",
    "disk_type": "cloud_ssd",
    "cluster_type": "normal"
  },
  "metrics": {
    "cpu.idle": 10.0,
    "mem.free": 100.1,
    "disk_ioutil": 5.2
  },
  "@timestamp": 1624873606000
}

示例

  • 請求示例

    POST test_stream/_doc
    {
      "labels": {
        "namespce": "cn-hanzhou",
        "clusterId": "cn-xxx-xxxxxx",
        "nodeId": "node-xxx",
        "label": "test-cluster",
        "disk_type": "cloud_ssd",
        "cluster_type": "normal"
      },
      "metrics": {
        "cpu.idle": 10,
        "mem.free": 100.1,
        "disk_ioutil": 5.2
      },
      "@timestamp": 1624873606000
    }
  • 返回示例

    {
      "_index" : ".ds-test_stream-2021.09.03-000001",
      "_id" : "suF_qnsBGKH6s8C_OuFS",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "failed" : 0
      },
      "_seq_no" : 0,
      "_primary_term" : 1
    }

修改模型字段

在創建TimeStream索引時,支持傳入自定義的單個或多個維度和指標字段。TimeStream內部會為維度和指標字段配置dynaimc_mapping,維度字段會設置time_series_dimension,Elasticsearch內部會用維度字段生成時間線ID;指標字段默認只使用doc_value。同時,配置字段時,TimeStream索引支持使用*進行模糊匹配。修改默認維度和指標字段的示例如下:

  • 傳入單個字段

    PUT _time_stream/{name}
    {
      --- index template ---
      "time_stream": {
        "labels_fields": "@label.*",
        "metrics_fields": "@metrics.*"
      }
    }
  • 傳入多個字段

    PUT _time_stream/{name}
    {
      --- index template ---
      "time_stream": {
        "labels_fields": ["label.*", "dim*"],
        "metrics_fields": ["@metrics.*", "metrics.*"]
      }
    }

參數

說明

labels_fields

默認為label.*,可選。

metrics_fields

默認為metrics.*,可選。

查詢數據

請求語法

TimeStream使用Elasticsearch原生查詢接口查詢數據,包括searchget

示例

  • 請求示例

    GET test_stream/_search
  • 返回示例

    {
      "took" : 172,
      "timed_out" : false,
      "_shards" : {
        "total" : 10,
        "successful" : 10,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 1,
          "relation" : "eq"
        },
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : ".ds-test_stream-2021.09.03-000001",
            "_id" : "suF_qnsBGKH6s8C_OuFS",
            "_score" : 1.0
          }
        ]
      }
    }
                        

DownSample使用說明

DownSample(降采樣)是時序場景的常用功能,在創建TimeStream索引時,支持配置DownSample規則。配置了DownSample規則后,您只需正常讀寫數據,TimeStream索引就能在內部完成對原始寫入數據的DownSample處理。同時,在查詢數據時,TimeStream索引會根據aggregation中的interval參數來選擇合適的DownSample數據進行查詢。

DownSample規則只需配置interval,TimeStream索引會結合labels和metrics配置進行DownSample處理。metrics字段經過DownSample處理后變成aggregate_metric_double類型,并生成max、min、sum和count四種數據。

由于DownSample觸發時機是在Rollover階段,對歷史不再寫入的索引進行DownSample處理,因此每個原始索引都會根據DownSample規則生成DownSample索引。DownSample索引默認繼承全部原始索引的settings,如果需要單獨配置DownSample索引的settings,可以在DownSample規則中指定。例如,如果DownSample索引的容量更小,可減少shard數量;保存時間更長,可單獨指定ILM policy。

DownSample規則的配置示例如下。

PUT _time_stream/{name}
{
  "time_stream": {
    "downsample": [
      {
        "interval": "1m",
        "settings": {
           "index.lifecycle.name": "my-rollup-ilm-policy_60m",
           "index.number_of_shards": "1"
        }
      },
      {
        "interval": "10m"
      }
    ]
  }
}

time_stream參數增加downsample參數,用來配置downsample列表。downsample中的參數說明如下。

參數

可選性

說明

interval

必選

配置downsample的時間間隔,downsample將按照該時間間隔Rollup數據。最多支持配置5個interval規則,不同規則需要保持倍數關系,例如1m、10m、60m。

settings

可選

配置downsample索引的setting信息,例如生命周期配置、shard配置等。