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

从2025年6月20日起,亚马逊Timestream版 LiveAnalytics 将不再向新客户开放。如果您想使用亚马逊 Timestream LiveAnalytics,请在该日期之前注册。现有客户可以继续照常使用该服务。有关更多信息,请参阅 Amazon Timestream 以了解 LiveAnalytics 可用性变更。

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

查询

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

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

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

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

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

  • 使用 CASE 表达式来执行复杂的聚合,而不必多次从同一个表中进行选择。请参阅 案例陈述

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

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

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

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

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

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

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

  • 如果您只需要查询中的前 N 行,请使用 LIMIT 子句。

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

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

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

  • 如果您的应用程序遇到限制,请继续以相同的速率向亚马逊 Timestream LiveAnalytics 发送数据,以使 Amazon Timestream 能够自动扩展 LiveAnalytics 以满足应用程序的查询吞吐量需求。

  • 如果您的应用程序的查询并发要求超过了 Timestream 的默认限制 LiveAnalytics,请联系以获取 Amazon Web Services 支持 增加限制。