本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
查询
以下是使用 Amazon Timestream 进行查询的建议最佳实践。 LiveAnalytics
-
仅包括查询所必需的度量和维度名称。添加多余的列会增加数据扫描量,从而影响查询的性能。
-
在生产环境中部署查询之前,我们建议您查看查询见解,以确保时空修剪效果最佳。有关更多信息,请参阅 使用查询见解来优化 Amazon Timestream 中的查询。
-
在可能的情况下,将数据计算推送到 Timestream,以便在子句和SELECT子句中 LiveAnalytics 使用内置的聚合和标量函数(如果适用),以提高查询性能并WHERE降低成本。请参阅SELECT和聚合函数。
-
如果可能,请使用近似函数。例如,使用 APPROX _ DISTINCT 而不是 COUNT (DISTINCTcolumn_name) 来优化查询性能并降低查询成本。请参阅 聚合函数。
-
使用CASE表达式来执行复杂的聚合,而不必多次从同一个表中进行选择。请参阅 该CASE声明。
-
如果可能,请在查询的WHERE子句中包含一个时间范围。这可以优化查询性能和成本。例如,如果您只需要数据集中最后一小时的数据,则需要添加时间谓词,例如 time > ago (1h)。请参阅SELECT和间隔和持续时间。
-
当查询访问表中的度量子集时,请务必在查询的WHERE子句中包含度量名称。
-
在比较查询WHERE子句中的维度和度量时,请尽可能使用相等运算符。维度和度量名称上的相等谓词可以提高查询性能并降低查询成本。
-
尽可能避免使用WHERE子句中的函数来优化成本。
-
避免多次使用LIKE子句。而是在筛选字符串列上的多个值时使用正则表达式。请参阅 正则表达式函数。
-
仅在查询的 B GROUP Y 子句中使用必要的列。
-
如果查询结果需要ORDER按特定顺序排列,请在最外层查询的 BY 子句中明确指定该顺序。如果您的查询结果不需要排序,请避免使用 BY 子句ORDER来提高查询性能。
-
如果您只需要查询中的前 N 行,请使用LIMIT子句。
-
如果您使用 BY 子句ORDER来查看前或后 N 个值,请使用子LIMIT句来降低查询成本。
-
使用返回的响应中的分页令牌来检索查询结果。有关更多信息,请参阅查询。
-
如果您已开始运行查询,但意识到该查询不会返回您要查找的结果,请取消该查询以节省成本。有关更多信息,请参阅CancelQuery。
-
如果您的应用程序遇到限制,请继续以相同的速率向亚马逊 Timestream LiveAnalytics 发送数据,以使 Amazon Timestream 能够自动扩展 LiveAnalytics 以满足应用程序的查询吞吐量需求。
-
如果您的应用程序的查询并发要求超过了 Timestream 的默认限制 LiveAnalytics,请联系以获取 AWS Support 增加限制。