

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

# CloudWatch 日志见解语言查询语法
<a name="CWL_QuerySyntax"></a>

 本节详细介绍 Logs Insights QL。查询语法支持不同的函数和运算，包括但不限于常规函数、算术和比较运算以及正则表达式。

**重要**  
为了避免因运行大型查询而产生过高的费用，请牢记以下最佳实践：  
仅为每个查询选择必要的日志组。
始终为查询指定尽可能窄的时间范围。
使用控制台运行查询时，请在关闭 L CloudWatch ogs Insights 控制台页面之前取消所有查询。否则，查询将继续运行直至完成。
向仪表板添加 CloudWatch Logs Insights 小组件时，请确保仪表板刷新频率不高，因为每次刷新都会启动一个新的查询。

要创建包含多个命令的查询，请使用竖线字符（**\|**）分隔命令。

要创建包含注释的查询，请使用哈希字符（**\#**）对注释进行分隔。

**注意**  
 CloudWatch Logs Insights 会自动发现不同日志类型的字段，并生成以 **@** 字符开头的字段。有关这些字段的更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[支持的日志和发现的字段](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html)。

下表简要介绍了每个命令。下表对每条命令进行了更全面的描述，并附有示例。

**注意**  
标准日志类中的日志组支持所有 Logs Insights QL 查询命令。不频繁访问日志类中的日志组支持除 `pattern`、`diff` 和 `unmask` 之外的所有 Logs Insights QL 查询命令。


|  |  | 
| --- |--- |
| **` anomaly`** | 使用机器学习识别日志数据中的异常模式。 | 
| **` display`** |  在查询结果中显示一个或多个特定字段。 | 
| **` fields`** |  在查询结果中显示多个特定字段，并支持函数和操作，可用于修改字段值和创建用于查询的新字段。 | 
| **` filter`** |  筛选查询，以仅返回与一个或多个条件匹配的日志事件。 | 
| **` filterIndex`** |  强制查询尝试仅扫描在字段索引中提及的字段上编入索引且包含该字段索引值的日志组。这样可以减少扫描量，因为它只尝试扫描这些日志组中包含此字段索引的查询中指定的值的日志事件。<br />不频繁访问日志类中的日志组不支持此命令。 | 
| **` pattern`** | 自动将您的日志数据划分为不同模式。模式是在日志字段中重复出现的共享文本结构。 CloudWatch Logs Insights 为您提供了分析日志事件中发现的模式的方法。有关更多信息，请参阅 [模式分析](CWL_AnalyzeLogData_Patterns.md)。 | 
| **` diff`** | 将在您请求的时间段内找到的日志事件与之前相同长度的时间段内的日志事件进行比较，以便您可以查找趋势并确定某些日志事件是否是新的。 | 
| **` parse`** |  从日志字段中提取数据，以创建可以在查询中处理的提取字段。**`parse`** 同时支持使用通配符和正则表达式的 glob 模式。 | 
| **` sort`** | 按升序（`asc`）或降序（`desc`）顺序显示返回的日志事件。 | 
| **` SOURCE`** | 在查询中包含 `SOURCE` 参数是一种根据日志组名称前缀、账户标识符和日志组类指定要包含在查询中的大量日志组的有用方法。只有在 AWS CLI 或中以编程方式创建查询时，才支持此命令，而不是在 CloudWatch 控制台中创建查询。 | 
| **` stats`** |  使用日志字段值计算聚合统计数据。 | 
| **` limit`** | 指定您希望查询返回的最大日志事件数。对于 **`sort`** 返回“前 20 个”或“最近 20 个”结果很有用。 | 
| **` dedup`** |  根据您指定的字段中的特定值删除重复的结果。 | 
| **` unmask`** |  显示由于数据保护策略而屏蔽部分内容的日志事件的所有内容。有关日志组中数据保护的更多信息，请参阅 [通过屏蔽帮助保护敏感的日志数据](mask-sensitive-log-data.md)。 | 
|  **`[unnest](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-Unnest.html)`**  |  对输入列表进行扁平化以生成多条记录，列表中的每个元素都有一条记录。 | 
| **` lookup`** | 通过匹配字段值，使用查找表中的数据丰富日志事件。使用查找表将用户详细信息、应用程序名称或产品信息等参考数据添加到查询结果中。 | 
| **` join`** | 根据匹配的字段，将来自源日志组的日志事件与来自另一个日志组的事件或查询结果相结合。使用 join 命令使用不同来源的通用密钥（例如匹配的请求标识符或事务 IDs）关联不同来源的相关日志事件。 | 
| **` subqueries`** | 子查询是一种嵌套的 Logs Insights 查询，可用作其他查询的输入。子查询可用于派生中间结果集，然后由后续命令使用。 | 
| **[其他操作和函数](CWL_QuerySyntax-operations-functions.md)** | CloudWatch Logs Insights 还支持许多比较、算术、日期时间、数字、字符串、IP 地址以及常规函数和操作。 | 

以下各节提供了有关 L CloudWatch ogs Insights 查询命令的更多详细信息。

**Topics**
+ [日志类中支持的 Logs Insights QL 命令](CWL_AnalyzeLogData_Classes.md)
+ [异常](CWL_QuerySyntax-Anomaly.md)
+ [**display**](CWL_QuerySyntax-Display.md)
+ [fields](CWL_QuerySyntax-Fields.md)
+ [筛选](CWL_QuerySyntax-Filter.md)
+ [filterIndex](CWL_QuerySyntax-FilterIndex.md)
+ [SOURCE](CWL_QuerySyntax-Source.md)
+ [模式](CWL_QuerySyntax-Pattern.md)
+ [diff](CWL_QuerySyntax-Diff.md)
+ [parse](CWL_QuerySyntax-Parse.md)
+ [排序](CWL_QuerySyntax-Sort.md)
+ [stats](CWL_QuerySyntax-Stats.md)
+ [limit](CWL_QuerySyntax-Limit.md)
+ [dedup](CWL_QuerySyntax-Dedup.md)
+ [unmask](CWL_QuerySyntax-Unmask.md)
+ [unnest](CWL_QuerySyntax-Unnest.md)
+ [lookup](CWL_QuerySyntax-Lookup.md)
+ [join](CWL_QuerySyntax-Join.md)
+ [subqueries](CWL_QuerySyntax-Subqueries.md)
+ [布尔值、比较、数值、日期时间和其他函数](CWL_QuerySyntax-operations-functions.md)
+ [包含特殊字符的字段](CWL_QuerySyntax-Guidelines.md)
+ [在查询中使用别名和注释](CWL_QuerySyntax-alias.md)