すべてのプロダクト
Search
ドキュメントセンター

:多値データモデルが使用されている時系列から最新のデータポイントをクエリする

最終更新日:Jan 14, 2025

多値データモデルが使用されている時系列から最新のデータポイントをクエリする

リクエストパスとメソッド

リクエストパス

リクエストメソッド

説明

/api/query/mlast

POST

多値モデル時系列から最新のデータポイントをクエリします。返される各データポイントには、指定されたメトリックの指定されたフィールドの最新値が含まれています。

リクエストパラメータ

パラメータ

タイプ

必須

説明

デフォルト値

queries

配列

はい

サブクエリ配列。

該当なし

詳細については、「JSON 形式のサブクエリのパラメータ」セクションをご参照ください。

timestamp

Long

いいえ

UNIX タイムスタンプ。単位:秒またはミリ秒。タイムスタンプを指定すると、API 操作は、指定されたタイムスタンプ以前のタイムスタンプに関連付けられた最新のデータポイントを返します。このパラメータを空のままにすると、API 操作は、現在のタイムスタンプ以前のタイムスタンプに関連付けられた最新のデータポイントを返します。このパラメータは、リクエストの queries パラメータと同じレベルです。詳細については、以下のサンプルリクエストをご参照ください。

該当なし

1539763573

tupleFormat

Boolean

いいえ

クエリ対象フィールドの最新データポイントのタプル構造を返すかどうかを指定します。詳細については、以下のサンプルリクエストとレスポンスをご参照ください。

false

false

tupleOffset

Long

いいえ

タプルのオフセット。このパラメータは、tupleFormat パラメータが true に設定されている場合にのみ有効になります。

0

5

tupleLimit

Long

いいえ

タプルの最大数。このパラメータは、tupleFormat パラメータが true に設定されている場合にのみ有効になります。

0

100

hint

マップ

いいえ

クエリヒント。

該当なし

詳細については、「クエリヒントの説明」セクションをご参照ください。

limit

マップ

いいえ

クエリする最新のデータポイントの制限。

該当なし

詳細については、「クエリ制限の説明」セクションをご参照ください。

重要

/api/query/mlast を使用して、多値データモデルが使用されている時系列から最新のデータポイントのみをクエリできます。単一値データモデルが使用されている時系列から最新のデータポイントをクエリする場合は、/api/query/last を使用します。

JSON 形式のサブクエリのパラメータ

パラメータ

タイプ

必須

説明

デフォルト値

metric

String

はい

クエリする最新のデータポイントに関連付けられたメトリック。

該当なし

wind

fields

リスト

はい

クエリするメトリックフィールド。このパラメータをアスタリスク (*) に設定すると、指定されたメトリックのすべてのフィールドの値が返されます。

該当なし

{speed, level, description}

tags

String

いいえ

クエリする最新のデータポイントに関連付けられたタグ。

該当なし

sensor = IOTE_1988_0001

hint | マップ | いいえ | クエリヒント。 | なし | 詳細については、「クエリヒントの説明」セクションをご参照ください。

JSON 形式のサンプルリクエスト

目的: 時系列の usage_system フィールドと usage_idle フィールドに書き込まれた最新のデータポイントをクエリします。これら 2 つのフィールドは cpu メトリックを記述するために使用され、関連付けられたタグのキーと値のペアは "host_name": "host1" です。リクエスト行: POST/api/query/mlast リクエスト本文:

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

レスポンスの説明

HTTP ステータスコード 200 が返された場合、クエリは成功です。この場合、指定されたクエリ条件を満たす時系列の最新のデータポイントが JSON 形式で返されます。クエリ条件を満たす時系列がない場合は、空のセットが返されます。次の表は、レスポンスパラメータについて説明しています。

パラメータ

説明

metric

メトリックの名前。

columns

返された結果セットの列の名前。このパラメータの値には、timestamp フィールド名とクエリするメトリックフィールドの名前が含まれます。

tags

データポイントに関連付けられたタグのキーと値のペアのセット。

values

メトリックフィールドの値。値の順序は、列の順序と同じです。

重要

リクエストで tupleFormat パラメータを false に設定した場合、レスポンスの形式は単一値データモデルのレスポンス形式と同じです。詳細については、「時系列の最新のデータポイントをクエリする」トピックの /api/query/last の紹介をご参照ください。

JSON 形式のサンプルレスポンス

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

クエリヒントの説明

シナリオ

ほとんどの場合、クエリヒントはクエリのレスポンスタイムを短縮するために使用されます。たとえば、タグ A とタグ B が指定されており、タグ B にヒットする時系列が明らかにタグ A にヒットする時系列に含まれているとします。この場合、タグ A にヒットする時系列からはデータは読み取られません。タグ A にヒットする時系列のセットとタグ B にヒットする時系列のセットの共通部分は、タグ B にヒットする時系列のセットと等しくなります。

形式の説明

  • 現在の TSDB バージョンでは、ヒントで tagk パラメータのみを使用してクエリインデックスを制限できます。

  • tagk パラメータで指定されたタグのキーと値のペアでは、タグキーのタグ値は同じである必要があります。有効な値:0 と 1。タグ値が 0 の場合、タグキーに対応するインデックスは使用されません。タグ値が 1 の場合、タグキーに対応するインデックスが使用されます。

バージョンの説明

クエリヒント機能は、TSDB V2.6.1 以降でサポートされています。

サンプルリクエスト

サブクエリに適用されるヒント

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

クエリ全体に適用されるヒント

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

例外

tagk パラメータで指定されたキーと値のペアのタグ値に 0 と 1 の両方が含まれている場合、エラーが返されます。

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

次のエラーメッセージが返されます。

{
    "error": {
        "code": 400,
        "message": "ヒントの値は 0 または 1 のみである必要があり、0 と 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=[])"
    }
}

tagk パラメータで指定されたキーと値のペアのタグ値が 0 または 1 でない場合、エラーが返されます。

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

次のエラーメッセージが返されます。

{
    "error": {
        "code": 400,
        "message": "ヒントの値は 0 または 1 のみ可能です。'100' が渡されました。", // 翻訳修正
        "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=[])"
    }
}

クエリ制限の説明

制限:クエリする最新のデータポイントに制限を設定できます。制限を指定しない場合、クエリ結果には各時系列の最新のデータポイントのみが含まれます。

JSON 形式のリクエストのパラメータ

パラメータ

タイプ

必須

説明

デフォルト値

size

Integer

はい

時系列の最新のデータポイントの最大数。

該当なし

5

from

Long

はい

データがクエリされる時間範囲の開始。

該当なし

1346846400

1551850000 から 1551851846 までのタイムスタンプに関連付けられた最新の 300 個のデータポイントをクエリします。

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

詳細については、「単一値モデルを使用する時系列の最新のデータポイントをクエリする」トピックの「クエリ制限の説明」セクションをご参照ください。