

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查询
<a name="queries-bp"></a>

以下是使用 Amazon Timestream 进行查询的建议最佳实践。 LiveAnalytics
+ 仅包含查询所必需的度量和维度名称。添加额外的列会增加数据扫描次数，从而影响查询的性能。
+ 将查询部署到生产环境之前，建议您查看查询见解，以确保空间和时间修剪达到最佳效果。有关更多信息，请参阅 [使用查询见解优化 Amazon Timestream 中的查询](using-query-insights.md)。
+ 在可能的情况下，将数据计算推送到 Timestream，以便 LiveAnalytics 使用 SELECT 子句和 WHERE 子句中的内置聚合和标量函数（如果适用）来提高查询性能并降低成本。请参阅[SELECTUNLOAD](supported-sql-constructs.SELECT.md)和[聚合函数](aggregate-functions.md)。
+ 如有可能，请使用近似函数。例如，使用 APPROX\$1DISTINCT 而非 COUNT(DISTINCT column\$1name)，以优化查询性能并降低查询成本。请参阅[聚合函数](aggregate-functions.md)。
+ 使用 CASE 表达式执行复杂聚合，而不是从同一表多次选择。请参阅[CASE 语句](conditional-expressions.CASE.md)。
+ 如有可能，请在查询的 WHERE 子句中包含时间范围。这可以优化查询性能并降低成本。例如，如果仅需数据集中最后一小时的数据，请添加时间谓词，例如 time > ago(1h)。请参阅[SELECTUNLOAD](supported-sql-constructs.SELECT.md)和[间隔和持续时间](date-time-functions.md#date-time-functions-interval-duration)。
+ 当查询访问表中度量的子集时，请务必在查询的 WHERE 子句中包含度量名称。
+ 在查询的 WHERE 子句中比较维度和度量时，尽可能使用等号运算符。维度和度量名称上的相等谓词可提升查询性能并降低查询成本。
+ 尽可能避免使用 WHERE 子句中的函数，以优化成本。
+ 避免多次使用 LIKE 子句。相反，在需要筛选字符串列上的多个值时，请使用正则表达式。请参阅[正则表达式函数](regex-functions.md)。
+ 在查询的 GROUP BY 子句中，仅使用必要的列。
+ 如果查询结果需按特定顺序排列，请在最外层查询的 ORDER BY 子句中明确指定该顺序。如果查询结果不需要排序，请避免使用 ORDER BY 子句，以提升查询性能。
+ 如果查询仅需前 N 行，请使用 LIMIT 子句。
+ 如果使用 ORDER BY 子句查看前 N 个值或后 N 个值，请使用 LIMIT 子句以降低查询成本。
+ 使用返回响应中的分页令牌，以检索查询结果。有关更多信息，请参阅[查询](API_query_Query.html)。
+ 如果已开始运行查询，但发现该查询无法返回您要查找的结果，请取消查询以节省成本。有关更多信息，请参阅 [CancelQuery](API_query_CancelQuery.html)。
+ 如果您的应用程序遇到限制，请继续以相同的速率向亚马逊 Timestream LiveAnalytics 发送数据，以使 Amazon Timestream 能够自动扩展 LiveAnalytics 以满足应用程序的查询吞吐量需求。
+ 如果您的应用程序的查询并发要求超过了 Timestream 的默认限制 LiveAnalytics，请联系以获取 支持 增加限制。