Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Query
Query は、Amazon Timestream データに対してクエリを実行できる同期オペレーションです。
QueryInsights を有効にした場合、この API は実行したクエリに関連するインサイトとメトリクスも返します。QueryInsights はクエリのパフォーマンスチューニングに役立ちます。QueryInsights の詳細については、「クエリインサイトを使用して Amazon Timestream のクエリを最適化する」を参照してください。
注記
QueryInsights が有効な状態で実行できる Query API リクエストの最大数は、1 クエリ/秒 (QPS) です。このクエリレートを超えると、スロットリングが発生する可能性があります。
Query は 60 秒後にタイムアウトします。60 秒のタイムアウトをサポートするには、SDK のデフォルトタイムアウトを更新する必要があります。詳細については、コードサンプルを参照してください。
以下のケースでは、クエリリクエストが失敗します。
-
5 分間のべき等性期間外に同じクライアントトークンを使用して
Queryリクエストを送信する場合。 -
5 分間のべき等性期間内に同じクライアントトークンを使用し、その他のパラメータは変更して
Queryリクエストを送信する場合。 -
行のサイズ (クエリメタデータを含む) が 1 MB を超える場合、クエリは失敗し、次のエラーメッセージが表示されます。
Query aborted as max page response size has been exceeded by the output result row -
クエリ発行元と結果読み取り先の IAM プリンシパルが同じでない場合や、クエリ発行元と結果読み取り先のクエリリクエストに同じクエリ文字列がない場合、クエリは
Invalid pagination tokenエラーで失敗します。
リクエストの構文
{
"ClientToken": "string",
"MaxRows": number,
"NextToken": "string",
"QueryInsights": {
"Mode": "string"
},
"QueryString": "string"
}
リクエストパラメータ
すべてのアクションに共通のパラメータの詳細については、「共通パラメータ」を参照してください。
リクエストは以下のデータを JSON 形式で受け入れます。
- ClientToken
-
Queryリクエストの実行時に指定される、最大 64 ASCII 文字の、大文字と小文字を区別する一意の文字列。ClientTokenを指定すると、Queryへの呼び出しがべき等になります。これは、同じクエリを繰り返し実行すると、同じ結果が生成されることを意味します。つまり、同じQueryリクエストを複数作成しても、効果は 1 つのリクエストを作成する場合と同じです。クエリでClientTokenを使用する場合は、次の点に注意してください。-
Query API が
ClientTokenなしでインスタンス化される場合、Query SDK がユーザーに代わってClientTokenを生成します。 -
Query呼び出しにClientTokenのみが含まれ、NextTokenが含まれていない場合、Queryの呼び出しは新しいクエリ実行とみなされます。 -
呼び出しに
NextTokenが含まれている場合、その呼び出しは Query API に対する以前の呼び出しの後続呼び出しとみなされ、結果セットが返されます。 -
4 時間後、同じ
ClientTokenを持つリクエストは新しいリクエストとして処理されます。
タイプ: 文字列
長さの制限: 最小長 32。最大長は 128 です。
必須: いいえ
-
- MaxRows
-
Query出力で返される行の総数。MaxRows値が指定されたQueryの最初の実行では、次の 2 つのケースでクエリの結果セットが返されます。-
結果のサイズが
1MB未満である。 -
結果セットの行数が
maxRowsの値未満である。
上記に該当しない場合、
Queryの最初の呼び出しはNextTokenのみを返します。これは、結果セットを取得するために後続の呼び出しで使用できます。ページ分割を再開するには、後続コマンドでNextToken値を指定します。行サイズが大きい場合 (例: 行に列が多数ある場合)、Timestream はレスポンスサイズが 1 MB の上限を超えないように、返す行数を減らすことがあります。
MaxRowsが指定されていない場合、Timestream は 1 MB の上限を満たす必要な行数を送信します。タイプ: 整数
有効範囲: 最小値 は 1 です。最大値は 1000 です。
必須: いいえ
-
- NextToken
-
結果セットを返すために使用されるページ分割トークン。
QueryAPI がNextTokenを使用して呼び出されると、その呼び出しはQueryに対する以前の呼び出しの後続呼び出しとみなされ、結果セットが返されます。ただし、Query呼び出しにClientTokenのみが含まれる場合、Queryの呼び出しは新しいクエリ実行とみなされます。クエリで NextToken を使用する場合は、次の点に注意してください。
-
ページ分割トークンは、最大 5 回の
Query呼び出しと、最大 1 時間のどちらか早い方に使用できます。 -
同じ
NextTokenを使用すると、同じレコードセットが返されます。結果セットをページ分割し続けるには、最新のnextTokenを使用する必要があります。 -
Query呼び出しがTokenAとTokenBの 2 つのNextToken値を返すとします。TokenBが後続のQuery呼び出しで使用される場合、TokenAは無効になり、再利用できません。 -
ページ分割の開始後にクエリから以前の結果セットをリクエストするには、Query API を再度呼び出す必要があります。
-
nullが返されるまでは最新のNextTokenを使用してページ分割し、これが返された時点で新しいNextTokenを使用する必要があります。 -
クエリ発行元と結果読み取り先の IAM プリンシパルが同じでない場合や、クエリ発行元と結果読み取り先のクエリリクエストに同じクエリ文字列がない場合、クエリは
Invalid pagination tokenエラーで失敗します。
タイプ: 文字列
長さの制約: 最小長は 1 です。最大長は 2,048 です。
必須: いいえ
-
- QueryInsights
-
QueryInsightsを有効にするための設定をカプセル化します。QueryInsightsを有効にすると、実行したクエリのクエリ結果に加えて、インサイトとメトリクスが返されます。QueryInsightsを使用して、クエリのパフォーマンスをチューニングできます。型: QueryInsights オブジェクト
必須: いいえ
- QueryString
-
Timestream によって実行されるクエリ。
タイプ: 文字列
長さの制約: 最小長は 1 です。最大長は 262,144 です。
必須: はい
レスポンスの構文
{
"ColumnInfo": [
{
"Name": "string",
"Type": {
"ArrayColumnInfo": "ColumnInfo",
"RowColumnInfo": [
"ColumnInfo"
],
"ScalarType": "string",
"TimeSeriesMeasureValueColumnInfo": "ColumnInfo"
}
}
],
"NextToken": "string",
"QueryId": "string",
"QueryInsightsResponse": {
"OutputBytes": number,
"OutputRows": number,
"QuerySpatialCoverage": {
"Max": {
"PartitionKey": [ "string" ],
"TableArn": "string",
"Value": number
}
},
"QueryTableCount": number,
"QueryTemporalRange": {
"Max": {
"TableArn": "string",
"Value": number
}
},
"UnloadPartitionCount": number,
"UnloadWrittenBytes": number,
"UnloadWrittenRows": number
},
"QueryStatus": {
"CumulativeBytesMetered": number,
"CumulativeBytesScanned": number,
"ProgressPercentage": number
},
"Rows": [
{
"Data": [
{
"ArrayValue": [
"Datum"
],
"NullValue": boolean,
"RowValue": "Row",
"ScalarValue": "string",
"TimeSeriesValue": [
{
"Time": "string",
"Value": "Datum"
}
]
}
]
}
]
}
レスポンス要素
アクションが成功すると、サービスは HTTP 200 レスポンスを返します。
サービスから以下のデータが JSON 形式で返されます。
- ColumnInfo
-
返された結果セットの列データ型。
タイプ: ColumnInfo オブジェクトの配列
- NextToken
-
Query呼び出しで再度使用して次の結果セットを取得できるページ分割トークン。タイプ: 文字列
長さの制約: 最小長は 1 です。最大長は 2,048 です。
- QueryId
-
指定されたクエリの一意の ID。
タイプ: 文字列
長さの制約: 最小長は 1 です。最大長 64
パターン:
[a-zA-Z0-9]+ - QueryInsightsResponse
-
実行したクエリに関連するインサイトとメトリクスを含む
QueryInsightsをカプセル化します。型: QueryInsightsResponse オブジェクト
- QueryStatus
-
進行状況やスキャンされたバイト数など、クエリのステータスに関する情報。
型: QueryStatus オブジェクト
- Rows
-
クエリによって返される結果セット行。
タイプ: Row オブジェクトの配列
エラー
すべてのアクションに共通のエラーについては、「共通エラー」を参照してください。
- AccessDeniedException
-
アカウント設定にアクセスするために必要なアクセス許可がありません。
HTTP ステータスコード: 400
- ConflictException
-
キャンセルされたクエリの結果をポーリングできません。
HTTP ステータスコード: 400
- InternalServerException
-
リクエストの処理中に内部サーバーエラーが発生しました。
HTTP ステータスコード: 400
- InvalidEndpointException
-
リクエストされたエンドポイントが無効です。
HTTP ステータスコード: 400
- QueryExecutionException
-
Timestream がクエリを正常に実行できませんでした。
HTTP ステータスコード: 400
- ThrottlingException
-
リクエストが多すぎるため、リクエストがスロットリングされました。
HTTP ステータスコード: 400
- ValidationException
-
リクエストが無効であるか、形式が正しくありません。
HTTP ステータスコード: 400
以下の資料も参照してください。
言語固有の AWS SDK のいずれかでこの API を使用する方法の詳細については、以下を参照してください。