本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢
以下是使用 Amazon Timestream for LiveAnalytics 進行查詢的建議最佳實務。
-
僅包含查詢所需的量值和維度名稱。新增外部資料欄會增加資料掃描,這會影響查詢的效能。
-
在生產環境中部署查詢之前,建議您檢閱查詢洞察,以確保空間和時間修剪處於最佳狀態。如需詳細資訊,請參閱使用查詢洞見來最佳化 Amazon Timestream 中的查詢。
-
盡可能使用 LiveAnalytics 子句和 WHERE 子句中的內建彙總和純量函數,將資料運算推送至 Timestream forSELECT,以改善查詢效能並降低成本。請參閱 SELECT 和 彙總函數。
-
盡可能使用近似函數。例如,使用 APPROX_DISTINCT 而非 COUNT(DISTINCT column_name) 來最佳化查詢效能並降低查詢成本。請參閱 彙總函數。
-
使用 CASE 表達式執行複雜的彙總,而不是多次從相同的資料表中選取 。請參閱 CASE 陳述式。
-
如果可能,請在查詢的 WHERE 子句中包含時間範圍。這可最佳化查詢效能和成本。例如,如果您只需要資料集的最後一小時資料,請包含時間述詞,例如 > 前 (1h)。請參閱 SELECT 和 間隔和持續時間。
-
當查詢存取資料表中的量值子集時,請務必在查詢的 WHERE 子句中包含量值名稱。
-
盡可能在比較查詢的 WHERE 子句中的維度和量值時,使用等式運算子。維度和量值名稱的平等原則可改善查詢效能並降低查詢成本。
-
盡可能避免在 WHERE 子句中使用函數來最佳化成本。
-
避免多次使用 LIKE 子句。相反地,當您篩選字串欄上的多個值時,請使用規則運算式。請參閱 規則運算式函數。
-
查詢的 GROUP BY 子句中僅使用必要的資料欄。
-
如果查詢結果需要以特定順序排列,請在最外部查詢的 ORDER BY 子句中明確指定該順序。如果您的查詢結果不需要排序,請避免使用 ORDER BY 子句來改善查詢效能。
-
如果您只需要查詢中的前 N 列,請使用 LIMIT 子句。
-
如果您使用 ORDER BY 子句來查看最上方或最下方的 N 值,請使用 LIMIT 子句來降低查詢成本。
-
使用傳回回應中的分頁權杖來擷取查詢結果。如需詳細資訊,請參閱查詢。
-
如果您已開始執行查詢,並發現查詢不會傳回您要尋找的結果,請取消查詢以節省成本。如需詳細資訊,請參閱 CancelQuery。
-
如果您的應用程式遇到限流,請繼續以相同的速率將資料傳送至 Amazon Timestream for LiveAnalytics,讓 Amazon Timestream for LiveAnalytics 能夠自動擴展,以滿足應用程式的查詢輸送量需求。
-
如果應用程式的查詢並行要求超過 Timestream for LiveAnalytics 的預設限制,請聯絡 AWS Support 以取得限制增加。