查询 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

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

查询

以下是使用适用于 LiveAnalytics 的 Amazon Timestream 进行查询的建议最佳实践。

  • 仅包含查询所必需的度量和维度名称。添加额外的列会增加数据扫描次数,从而影响查询的性能。

  • 将查询部署到生产环境之前,建议您查看查询见解,以确保空间和时间修剪达到最佳效果。有关更多信息,请参阅 使用查询见解优化 Amazon Timestream 中的查询

  • 在可能的情况下,使用 SELECT 子句和 WHERE 子句中适用的内置聚合和标量函数,将数据计算推送到适用于 LiveAnalytics 的 Timestream,以提升查询性能并降低成本。请参阅 SELECT聚合函数

  • 如有可能,请使用近似函数。例如,使用 APPROX_DISTINCT 而非 COUNT(DISTINCT column_name),以优化查询性能并降低查询成本。请参阅 聚合函数

  • 使用 CASE 表达式执行复杂聚合,而不是从同一表多次选择。请参阅 CASE 语句

  • 如有可能,请在查询的 WHERE 子句中包含时间范围。这可以优化查询性能并降低成本。例如,如果仅需数据集中最后一小时的数据,请添加时间谓词,例如 time > ago(1h)。请参阅 SELECT间隔和持续时间

  • 当查询访问表中度量的子集时,请务必在查询的 WHERE 子句中包含度量名称。

  • 在查询的 WHERE 子句中比较维度和度量时,尽可能使用等号运算符。维度和度量名称上的相等谓词可提升查询性能并降低查询成本。

  • 尽可能避免使用 WHERE 子句中的函数,以优化成本。

  • 避免多次使用 LIKE 子句。相反,在需要筛选字符串列上的多个值时,请使用正则表达式。请参阅 正则表达式函数

  • 在查询的 GROUP BY 子句中,仅使用必要的列。

  • 如果查询结果需按特定顺序排列,请在最外层查询的 ORDER BY 子句中明确指定该顺序。如果查询结果不需要排序,请避免使用 ORDER BY 子句,以提升查询性能。

  • 如果查询仅需前 N 行,请使用 LIMIT 子句。

  • 如果使用 ORDER BY 子句查看前 N 个值或后 N 个值,请使用 LIMIT 子句以降低查询成本。

  • 使用返回响应中的分页令牌,以检索查询结果。有关更多信息,请参阅查询

  • 如果已开始运行查询,但发现该查询无法返回您要查找的结果,请取消查询以节省成本。有关更多信息,请参阅 CancelQuery

  • 如果应用程序遇到节流,请继续以相同的速率向适用于 LiveAnalytics 的 Amazon Timestream 发送数据,使适用于 LiveAnalytics 的 Amazon Timestream 能够自动扩缩,以满足应用程序的查询吞吐量需求。

  • 如果应用程序的查询并发要求超过适用于 LiveAnalytics 的 Timestream 默认限制,请联系 Amazon Web Services 支持 以提高限制。