全部产品
Search
文档中心

Elasticsearch:Ikhtisar API yang didukung oleh aliyun-timestream

更新时间:Jun 24, 2025

Alibaba Cloud Elasticsearch menyediakan plugin bernama aliyun-timestream untuk meningkatkan penyimpanan dan penggunaan data deret waktu. Plugin ini memungkinkan Anda menggunakan API untuk membuat, menghapus, memodifikasi, dan menanyakan indeks deret waktu, serta menulis data ke dalam dan menanyakan data di indeks deret waktu. Topik ini menjelaskan cara menggunakan API yang didukung oleh aliyun-timestream untuk melakukan operasi tersebut.

Informasi latar belakang

aliyun-timestream adalah plugin yang dikembangkan oleh tim Alibaba Cloud Elasticsearch berdasarkan fitur produk deret waktu dari komunitas Elastic. Plugin ini digunakan untuk meningkatkan kinerja penyimpanan dan penggunaan data deret waktu. aliyun-timestream menggunakan pernyataan Prometheus Querying Language (PromQL) sebagai pengganti pernyataan bahasa domain-spesifik (DSL) untuk menanyakan data metrik yang tersimpan. Hal ini membantu menyederhanakan operasi query dan meningkatkan efisiensi query. aliyun-timestream juga mengurangi biaya penyimpanan. Untuk informasi lebih lanjut, lihat Ikhtisar aliyun-timestream.

Prasyarat

Kluster Elasticsearch yang memenuhi persyaratan versi berikut telah dibuat: Versi kluster adalah V7.10 dan versi kernel kluster adalah V1.8.0 atau lebih baru, atau versi kluster adalah V7.16 atau lebih baru dan versi kernel kluster adalah V1.7.0 atau lebih baru. Untuk informasi tentang cara membuat kluster Elasticsearch, lihat Buat Kluster Alibaba Cloud Elasticsearch.

Buat indeks deret waktu

Sintaks permintaan

  • Tidak ada konten yang ditentukan dalam badan permintaan.

    PUT _time_stream/{name}
  • Template kustom diunggah ke badan permintaan.

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

Catatan penggunaan

Saat membuat indeks deret waktu, Anda tidak perlu mengonfigurasi pola indeks. Namun, Anda harus menentukan nama spesifik untuk indeks. Karakter wildcard tidak didukung untuk nama.

Anda dapat membiarkan badan permintaan kosong atau mengunggah template kustom ke badan permintaan. Untuk informasi tentang format badan permintaan, lihat Template Indeks dalam dokumentasi Elasticsearch sumber terbuka.

Contoh

  • Permintaan Contoh

    PUT _time_stream/test_stream
    {
      "template": {
        "settings": {
          "index.number_of_shards": "10"
        }
      }
    }
  • Respon Contoh

    {
      "acknowledged" : true
    }

Perbarui konfigurasi indeks deret waktu

Sintaks permintaan

  • Tidak ada konten yang ditentukan dalam badan permintaan.

    POST _time_stream/{name}/_update
  • Template kustom diunggah ke badan permintaan.

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

Catatan penggunaan

Badan permintaan yang dilewatkan untuk API yang digunakan untuk memperbarui konfigurasi indeks deret waktu sama dengan badan permintaan yang dilewatkan untuk API yang digunakan untuk membuat indeks deret waktu. Untuk informasi lebih lanjut, lihat bagian Membuat Indeks Deret Waktu dalam topik ini.

Setelah memperbarui konfigurasi indeks deret waktu, konfigurasi baru tidak langsung diterapkan pada indeks. Anda harus melakukan rollover indeks deret waktu agar konfigurasi baru diterapkan.

Contoh

  • Permintaan Contoh

    POST _time_stream/test_stream/_update
    {
      "template": {
        "settings": {
          "index.number_of_shards": "10"
        }
      }
    }
  • Respon Contoh

    {
      "acknowledged" : true
    }

Hapus indeks deret waktu

Sintaks permintaan

Delete _time_stream/{name}

Catatan penggunaan

Anda dapat melakukan pencocokan fuzzy untuk mencari beberapa indeks deret waktu dan menghapus indeks tersebut sekaligus. Anda juga dapat menentukan nama indeks deret waktu yang ingin dihapus dan memisahkan nama-nama tersebut dengan koma (,) untuk menghapus indeks sekaligus.

null

Setelah menghapus indeks deret waktu, data yang disimpan dalam indeks juga akan dihapus. Sebelum melakukan operasi penghapusan, pastikan bahwa operasi tersebut tidak memengaruhi bisnis Anda.

Contoh

  • Permintaan Contoh

    DELETE _time_stream/test_stream
  • Respon Contoh

    {
      "acknowledged" : true
    }

Menanyakan indeks deret waktu

Sintaks permintaan

  • Menanyakan semua indeks deret waktu.

    GET _time_stream
  • Menanyakan indeks deret waktu tertentu.

    GET _time_stream/{name}

Catatan penggunaan

Anda dapat melakukan pencocokan fuzzy untuk mencari indeks deret waktu yang ingin Anda tanyakan. Anda juga dapat menentukan nama indeks deret waktu yang ingin Anda tanyakan dan memisahkan nama-nama tersebut dengan koma (,) untuk mencari indeks.

Contoh

  • Permintaan Contoh

    GET _time_stream
  • Respon Contoh

    {
      "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
            }
          }
        }
      }
    }
                        

Menanyakan metrik indeks deret waktu

Sintaks permintaan

  • Menanyakan metrik semua indeks deret waktu.

    GET _time_stream/_stats
  • Menanyakan metrik indeks deret waktu tertentu.

    GET _time_stream/{name}/_stats

Catatan penggunaan

Anda dapat memanggil API yang digunakan untuk menanyakan metrik indeks deret waktu untuk mendapatkan informasi tentang metrik seperti time_stream_count. Nilai metrik time_stream_count menunjukkan jumlah deret waktu.

Deskripsi metrik time_stream_count:

  • Metode Perhitungan

    1. Metrik time_stream_count mengumpulkan jumlah deret waktu setiap shard utama untuk sebuah indeks. Setiap shard utama memiliki deret waktu yang berbeda. Jumlah total deret waktu sebuah indeks adalah jumlah dari jumlah deret waktu semua shard utama untuk indeks tersebut.

    2. Metrik time_stream_count mengembalikan nama indeks yang memiliki jumlah deret waktu terbesar.

  • Perhatian

    Metrik time_stream_count mengumpulkan jumlah deret waktu setiap shard utama dari doc values bidang _tsid yang menentukan ID deret waktu. Proses ini menghasilkan biaya query yang sangat tinggi. Untuk mengurangi biaya tersebut, Elasticsearch memungkinkan Anda mengonfigurasi kebijakan caching. Setelah Anda mengonfigurasi kebijakan tersebut untuk indeks yang hanya-baca, metrik time_stream_count hanya mengumpulkan jumlah deret waktu setiap shard utama untuk indeks tersebut sekali. Secara default, sistem memperbarui cache setiap interval 5 menit untuk jenis indeks lainnya. Anda dapat mengonfigurasi parameter index.timeSeries.stats.refresh_interval untuk indeks-indeks tersebut untuk mengubah interval. Interval minimum adalah 1 menit.

Contoh

  • Permintaan Contoh

    GET _time_stream/_stats
  • Respon Contoh

    {
      "_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
        }
      ]
    }

Tulis data deret waktu ke indeks deret waktu

Sintaks permintaan

Plugin aliyun-timestream menggunakan API yang disediakan oleh Elasticsearch sumber terbuka, seperti bulk API dan index API, untuk menulis data ke indeks deret waktu.

null

Saat plugin aliyun-timestream menggunakan API untuk menulis data ke indeks deret waktu, plugin tersebut hanya dapat menambahkan data. Plugin tidak dapat mengindeks, memperbarui, atau menghapus data yang sudah ada.

Model penulisan data

Saat menggunakan plugin aliyun-timestream untuk menulis data ke indeks deret waktu, Anda harus memastikan bahwa data memenuhi persyaratan model data deret waktu. Model data deret waktu berisi bidang default yang dijelaskan dalam tabel berikut.

Bidang

Deskripsi

labels

Properti yang terkait dengan metrik. Bidang ini secara unik menandai metadata rekaman data yang ditulis. ID deret waktu dapat dihasilkan oleh pengaturan bidang ini.

metrics

Metrik. Nilai bidang ini harus bertipe data LONG atau DOUBLE.

@timestamp

Waktu saat data metrik dikumpulkan. Nilai default bidang ini adalah timestamp dalam milidetik.

Kode Contoh:

{
  "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
}

Contoh

  • Permintaan Contoh

    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
    }
  • Respon Contoh

    {
      "_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
    }

Konfigurasikan bidang untuk model data deret waktu

Saat membuat indeks deret waktu, Anda dapat mengunggah satu atau lebih bidang dimensi kustom dan bidang metrik. Plugin aliyun-timestream secara otomatis membuat pemetaan dinamis untuk bidang dimensi dan bidang metrik serta mengonfigurasi parameter timeSeriesDimension untuk bidang dimensi. Elasticsearch secara otomatis menghasilkan ID deret waktu berdasarkan bidang dimensi. Secara default, bidang metrik hanya menyimpan doc values. Saat mengonfigurasi bidang dimensi dan bidang metrik, Anda dapat menggunakan wildcard (*) untuk melakukan pencocokan fuzzy. Kode berikut memberikan contoh tentang cara mengonfigurasi bidang dimensi dan bidang metrik:

  • Unggah satu bidang dimensi kustom atau bidang metrik.

    PUT _time_stream/{name}
    {
      --- index template ---
      "time_stream": {
        "labels_fields": "@label.*",
        "metrics_fields": "@metrics.*"
      }
    }
  • Unggah beberapa bidang dimensi kustom atau bidang metrik.

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

Parameter

Deskripsi

labels_fields

Opsional. Nilai default: label.*.

metrics_fields

Opsional. Nilai default: metrics.*.

Menanyakan data dalam indeks deret waktu

Sintaks permintaan

Plugin aliyun-timestream menggunakan API yang disediakan oleh Elasticsearch sumber terbuka, seperti API Pencarian dan get API, untuk menanyakan data dalam indeks deret waktu.

Contoh

  • Permintaan Contoh

    GET test_stream/_search
  • Respon Contoh

    {
      "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
          }
        ]
      }
    }
                        

Catatan penggunaan untuk downsampling

Downsampling adalah fitur yang umum digunakan dalam skenario deret waktu. Saat membuat indeks deret waktu, Anda dapat mengonfigurasi aturan downsampling untuk indeks tersebut. Setelah mengonfigurasi aturan downsampling untuk indeks deret waktu, Anda hanya perlu membaca data dari atau menulis data ke indeks, dan indeks secara otomatis melakukan downsampling pada data dalam indeks. Saat menanyakan data dalam indeks deret waktu, indeks secara otomatis menentukan ruang lingkup data yang telah di-downsample berdasarkan nilai parameter interval yang dikonfigurasi untuk agregasi.

Saat mengonfigurasi aturan downsampling untuk indeks deret waktu, Anda hanya perlu mengonfigurasi parameter interval. Indeks deret waktu secara otomatis melakukan downsampling pada data berdasarkan konfigurasi bidang labels dan metrics. Setelah downsampling, tipe data nilai bidang metrics diubah menjadi aggregate_metric_double, dan sistem menghasilkan sub-bidang berikut untuk bidang metrics: max, min, sum, dan count.

Aturan downsampling dipicu selama tahap rollover. Setelah aturan downsampling dipicu, downsampling dilakukan pada indeks ke mana data tidak lagi ditulis. Sistem menghasilkan indeks downsampling untuk setiap indeks asli berdasarkan aturan downsampling. Secara default, setiap indeks downsampling mewarisi pengaturan indeks asli terkait. Jika Anda ingin menyesuaikan pengaturan indeks downsampling, Anda dapat mengonfigurasi pengaturan dalam aturan downsampling terkait. Misalnya, jika Anda ingin mengurangi kapasitas indeks downsampling, Anda dapat mengurangi jumlah shard utama untuk indeks tersebut. Jika Anda ingin indeks downsampling disimpan untuk jangka waktu yang lebih lama, Anda dapat mengonfigurasi kebijakan manajemen siklus hidup indeks (ILM) untuk indeks tersebut.

Kode berikut memberikan contoh tentang cara mengonfigurasi aturan downsampling:

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"
      }
    ]
  }
}

Anda dapat menambahkan parameter downsample ke konfigurasi parameter time_stream. Kemudian, Anda dapat mengonfigurasi parameter yang diperlukan dalam downsample. Tabel berikut menjelaskan parameter yang dapat dikonfigurasi dalam downsample.

Parameter

Diperlukan

Deskripsi

interval

Ya

Interval di mana downsampling dilakukan. Selama downsampling, data digulung pada interval yang ditentukan oleh parameter ini. Anda dapat menentukan maksimal lima interval. Jika Anda menentukan lebih dari satu interval, Anda harus memastikan bahwa interval tersebut merupakan kelipatan. Misalnya, Anda dapat menentukan 1m, 10m, dan 60m.

settings

Tidak

Pengaturan indeks downsampling, seperti pengaturan terkait siklus hidup dan jumlah shard utama.