本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Query
Query
是一項同步操作,可讓您針對 Amazon Timestream 資料執行查詢。
如果您啟用 QueryInsights
,這API也會傳回與您執行的查詢相關的洞察和指標。 QueryInsights
可協助您調校查詢的效能。如需 的詳細資訊QueryInsights
,請參閱使用查詢洞察來最佳化 Amazon Timestream 中的查詢。
注意
您允許在QueryInsights
啟用的情況下執行的Query
API請求數目上限為每秒 1 個查詢 (QPS)。如果您超過此查詢速率,可能會導致限流。
Query
會在 60 秒後逾時。您必須更新 中的預設逾時SDK,才能支援 60 秒的逾時。如需詳細資訊,請參閱程式碼範例。
在下列情況下,您的查詢請求將會失敗:
-
如果您在 5 分鐘緊急性時段之外使用相同的用戶端權杖提交
Query
請求。 -
如果您使用相同的用戶端權杖提交
Query
請求,但變更其他參數,請在 5 分鐘的無效時段內。 -
如果資料列的大小 (包括查詢中繼資料) 超過 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
"
}
請求參數
如需所有動作的一般參數資訊,請參閱《Common Parameters》。
請求接受下列JSON格式的資料。
- ClientToken
-
發出
Query
請求時,最多指定 64 ASCII 個字元的唯一區分大小寫字串。提供 會ClientToken
呼叫Query
具意向性 。這表示重複執行相同的查詢會產生相同的結果。換句話說,發出多個相同的Query
請求與發出單一請求具有相同的效果。在查詢ClientToken
中使用 時,請注意下列事項:-
如果查詢API是在沒有 的情況下現化
ClientToken
,則查詢ClientToken
會代表您SDK產生 。 -
如果
Query
調用僅包含ClientToken
但不包含NextToken
,則 的調用Query
會被視為新的查詢執行。 -
如果調用包含
NextToken
,該特定調用會假設是先前呼叫查詢 的後續調用API,並傳回結果集。 -
4 小時後,任何具有相同 的請求
ClientToken
都會視為新的請求。
類型:字串
長度限制:長度下限為 32。長度上限為 128。
必要:否
-
- MaxRows
-
Query
輸出中要傳回的資料列總數。Query
具有指定MaxRows
值的 初始執行會在兩個情況下傳回查詢的結果集:-
結果的大小小於
1MB
。 -
結果集中的資料列數小於 的值
maxRows
。
否則, 的初始調用
Query
只會傳回NextToken
,然後可用於後續呼叫,以擷取結果集。若要繼續分頁,請在後續命令中提供NextToken
值。如果資料列大小較大 (例如資料列包含許多資料欄),Timestream 可能會傳回較少的資料列,以避免回應大小超過 1 MB 的限制。如果
MaxRows
未提供,Timestream 將傳送必要的資料列數目,以符合 1 MB 的限制。類型:整數
有效範圍:最小值為 1。最大值為 1000。
必要:否
-
- NextToken
-
用於傳回一組結果的分頁權杖。使用
Query
API叫用 時NextToken
,會假設該特定叫用是先前呼叫 的後續叫用Query
,並傳回結果集。不過,如果Query
調用僅包含ClientToken
,則 的調用Query
會被視為新的查詢執行。在查詢 NextToken 中使用 時,請注意下列事項:
-
分頁權杖最多可用於五個
Query
調用,或最長 1 小時的持續時間 – 以先發生者為準。 -
使用相同的
NextToken
會傳回相同的記錄集。若要繼續瀏覽結果集,您必須使用最新的nextToken
。 -
假設
Query
調用會傳回兩個NextToken
值,TokenA
以及TokenB
。如果TokenB
用於後續Query
調用,則TokenA
會失效,且無法重複使用。 -
若要在分頁開始後,從查詢請求上一個結果集,您必須重新叫用查詢 API。
-
在
null
傳回前,NextToken
應使用最新的分頁,此時NextToken
應使用新的分頁。 -
如果查詢起始者和結果讀取器的IAM主體不同和/或查詢起始者,且結果讀取器在查詢請求中沒有相同的查詢字串,則查詢會失敗並發生錯誤
Invalid pagination token
。
類型:字串
長度限制:長度下限為 1。長度上限為 2048。
必要:否
-
- QueryInsights
-
封裝啟用 的設定
QueryInsights
。啟用除了您執行查詢的查詢結果之外,還
QueryInsights
傳回洞察和指標。您可以使用QueryInsights
來調整查詢效能。類型:QueryInsights 物件
必要:否
- QueryString
-
Timestream 要執行的查詢。
類型:字串
長度限制:長度下限為 1。長度上限為 262144。
必要:是
回應語法
{
"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"
}
]
}
]
}
]
}
回應元素
如果動作成功,服務會傳回 200 HTTP 個回應。
服務會以 JSON 格式傳回下列資料。
- ColumnInfo
-
傳回結果集的資料欄資料類型。
類型:ColumnInfo 物件陣列
- NextToken
-
分頁權杖,可在
Query
通話中再次使用,以取得下一組結果。類型:字串
長度限制:長度下限為 1。長度上限為 2048。
- 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
另請參閱
如需在其中一種語言特定的 API中使用此功能的詳細資訊 AWS SDKs,請參閱下列內容: