全部产品
Search
文档中心

:Kueri titik data terbaru dari deret waktu di mana model data multi-nilai digunakan

更新时间:Jun 28, 2025

Kueri titik data terbaru dari deret waktu di mana model data multi-nilai digunakan

Jalur permintaan dan metode

Jalur permintaan

Metode permintaan

Deskripsi

/api/query/mlast

POST

Mengkueri titik data terbaru dari model multi-nilai deret waktu. Setiap titik data yang dikembalikan berisi nilai terbaru dari bidang yang ditentukan untuk metrik yang ditentukan.

Parameter permintaan

Parameter

Tipe

Diperlukan

Deskripsi

Nilai default

Contoh

queries

Array

Ya

Array subkueri.

Tidak tersedia

Untuk informasi lebih lanjut, lihat bagian "Parameter untuk subkueri dalam format JSON".

timestamp

Long

Tidak

Timestamp UNIX. Satuan: detik atau milidetik. Jika Anda menentukan timestamp, operasi API mengembalikan titik data terbaru yang terkait dengan timestamp yang ditentukan dan timestamp sebelumnya. Jika Anda tidak mengisi parameter ini, operasi API mengembalikan titik data terbaru yang terkait dengan timestamp saat ini dan timestamp sebelumnya. Parameter ini berada pada level yang sama dengan parameter queries dalam permintaan. Untuk informasi lebih lanjut, lihat contoh permintaan berikut.

Tidak tersedia

1539763573

tupleFormat

Boolean

Tidak

Menentukan apakah akan mengembalikan struktur tuple dari titik data terbaru dari bidang yang dikueri. Untuk informasi lebih lanjut, lihat contoh permintaan dan respons berikut.

false

false

tupleOffset

Long

Tidak

Ofset dari tuple. Parameter ini hanya berlaku ketika parameter tupleFormat disetel ke true.

0

5

tupleLimit

Long

Tidak

Jumlah maksimum tuple. Parameter ini hanya berlaku ketika parameter tupleFormat disetel ke true.

0

100

hint

Map

Tidak

Petunjuk kueri.

Tidak tersedia

Untuk informasi lebih lanjut, lihat bagian "Deskripsi petunjuk kueri".

limit

Map

Tidak

Batas pada titik data terbaru yang ingin Anda kueri.

Tidak tersedia

Untuk informasi lebih lanjut, lihat bagian "Deskripsi batas kueri".

Penting

Gunakan /api/query/mlast hanya untuk mengkueri titik data terbaru dari deret waktu yang menggunakan model data multi-nilai. Untuk mengkueri titik data terbaru dari deret waktu dengan model data single-nilai, gunakan /api/query/last.

Parameter Subkueri dalam Format JSON

Parameter

Tipe

Diperlukan

Deskripsi

Nilai default

Contoh

metric

String

Ya

Metrik yang terkait dengan titik data terbaru yang ingin Anda kueri.

Tidak tersedia

wind

fields

List

Ya

Bidang metrik yang ingin Anda kueri. Jika Anda menyetel parameter ini ke asterisk (*), nilai semua bidang dalam metrik yang ditentukan akan dikembalikan.

Tidak tersedia

{speed, level, description}

tags

String

Tidak

Tag yang terkait dengan titik data terbaru yang ingin Anda kueri.

Tidak tersedia

sensor = IOTE_1988_0001

hint | Map | Tidak | Petunjuk kueri. | Tidak ada | Lihat bagian "Deskripsi Petunjuk Kueri" untuk informasi lebih lanjut.

Contoh Permintaan dalam Format JSON

Tujuan: Mengkueri titik data terbaru yang ditulis untuk bidang usage_system dan usage_idle dalam deret waktu. Kedua bidang ini mendeskripsikan metrik CPU, dengan pasangan kunci-nilai tag "host_name": "host1". Baris Permintaan:POST /api/query/mlast Badan Permintaan:

    {
        "tupleFormat": true,
        "tupleOffset":5,
        "tupleLimit":100,
        "timestamp" : 1551851846,
        "queries": [
            {
                "metric": "cpu",
                "fields": ["usage_system", "usage_idle"],
                "tags": {
                    "host_name": "host1"
                }
            }
        ]
    }

Deskripsi respons

Jika kode status HTTP 200 dikembalikan, kueri berhasil. Dalam hal ini, titik data terbaru dari deret waktu yang memenuhi kondisi kueri akan dikembalikan dalam format JSON. Jika tidak ada deret waktu yang memenuhi kondisi kueri, set kosong akan dikembalikan. Parameter respons dijelaskan dalam tabel berikut.

Parameter

Deskripsi

metric

Nama metrik.

columns

Nama kolom dalam set hasil yang dikembalikan. Nilai parameter ini mencakup nama bidang timestamp dan nama bidang metrik yang ingin Anda kueri.

tags

Himpunan pasangan kunci-nilai tag yang terkait dengan titik data.

values

Nilai bidang metrik. Urutan nilai sama dengan urutan kolom.

Penting

Jika Anda menyetel parameter tupleFormat ke false dalam permintaan, format respons akan sama dengan format respons untuk model data single-nilai. Lihat pengenalan /api/query/last dalam topik "Kueri Titik Data Terbaru dari Deret Waktu" untuk informasi lebih lanjut.

Contoh Respons dalam Format JSON

[
  {
    "metric": "wind",
    "columns": [
      "timestamp",
      "level",
      "speed"
    ],
    "tags": {
      "city": "hangzhou",
      "country": "china",
      "province": "zhejiang",
      "sensor": "IOTE_8859_0001"
    },
    "values": [
      [1346846405000, 5.1, 45.1]
    ]
  }
]

Deskripsi petunjuk kueri

Skenario

Petunjuk kueri sering digunakan untuk mengurangi waktu respons kueri. Sebagai contoh, jika Tag A dan Tag B ditentukan dan deret waktu yang cocok dengan Tag B termasuk dalam deret waktu yang cocok dengan Tag A, data tidak akan dibaca dari deret waktu yang cocok dengan Tag A. Irisan antara himpunan deret waktu yang cocok dengan Tag A dan Tag B sama dengan himpunan deret waktu yang cocok dengan Tag B.

Deskripsi Format

  • Versi TSDB saat ini hanya memungkinkan penggunaan parameter tagk dalam petunjuk untuk membatasi indeks kueri.

  • Dalam pasangan kunci-nilai tag yang ditentukan oleh parameter tagk, nilai tag dari kunci tag harus sama. Nilai valid: 0 dan 1. Jika nilai tag adalah 0, indeks yang sesuai dengan kunci tag tidak digunakan. Jika nilai tag adalah 1, indeks yang sesuai dengan kunci tag digunakan.

Deskripsi Versi

Fitur petunjuk kueri didukung mulai TSDB V2.6.1 dan versi lebih baru.

Contoh Permintaan

Petunjuk yang Berlaku untuk Subkueri

{
  "queries": [
    {
      "metric": "demo.mf",
      "tags": {
        "sensor": "IOTE_8859_0001",
        "city": "hangzhou",
        "province": "zhejiang",
        "country": "china"
      },
      "fields": [
        "speed"
      ],
      "hint": {
        "tagk": {
          "dc": 1
        }
      }
    }
  ]
}

Petunjuk yang Berlaku untuk Seluruh Kueri

{
  "queries": [
    {
      "metric": "demo.mf",
      "tags": {
        "sensor": "IOTE_8859_0001",
        "city": "hangzhou",
        "province": "zhejiang",
        "country": "china"
      },
      "fields": [
        "speed"
      ]
    }
  ],
  "hint": {
    "tagk": {
      "dc": 1
    }
  }
}

Pengecualian

Kesalahan Dikembalikan Ketika Nilai Tag dalam Pasangan Kunci-Nilai yang Ditentukan oleh Parameter tagk Berisi 0 dan 1.

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 1,
      "host": 0
    }
  }
}

Pesan kesalahan berikut dikembalikan:

{
    "error": {
        "code": 400,
        "message": "Nilai dari petunjuk hanya boleh 0 atau 1, dan tidak boleh ada 0 dan 1",
        "details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
    }
}

Kesalahan Dikembalikan Ketika Nilai Tag dalam Pasangan Kunci-Nilai yang Ditentukan oleh Parameter tagk Bukan 0 atau 1.

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 100
    }
  }
}

Pesan kesalahan berikut dikembalikan:

{
    "error": {
        "code": 400,
        "message": "Nilai dari petunjuk hanya bisa 0 atau 1, dan terdeteksi bahwa '100' diteruskan",
        "details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
    }
}

Deskripsi batas kueri

Batas: Memungkinkan Anda mengonfigurasi batas pada jumlah titik data terbaru yang dapat dikueri. Jika tidak menentukan batas, hasil kueri hanya mencakup titik data terbaru dalam setiap deret waktu.

Parameter untuk Permintaan dalam Format JSON

Parameter

Tipe

Diperlukan

Deskripsi

Nilai default

Contoh

size

Integer

Ya

Jumlah maksimum titik data terbaru dari deret waktu.

Tidak tersedia

5

from

Long

Ya

Awal rentang waktu tempat data dikueri.

Tidak tersedia

1346846400

Contoh

Kueri 300 titik data terbaru yang terkait dengan timestamp berkisar dari 1.551.850.000 hingga 1.551.851.846.

{
  "tupleFormat":true,
  "limit":{
    "size":300,
    "from":1551850000
  }, 
  "timestamp":1551851846,
  "queries":[
    {
      "metric":"cpu",
      "fields":["usage_system","usage_idle"],
      "tags":{
        "host_name":"host1"
       }
    }
  ]
}

Lihat bagian "Deskripsi Batas Kueri" dalam topik "Kueri Titik Data Terbaru dalam Deret Waktu yang Menggunakan Model Single-Nilai" untuk informasi lebih lanjut.