OpenSearch 管道处理语言 (PPL)
本节简要介绍如何使用 OpenSearch PPL 查询 CloudWatch Logs。借助 PPL,您可以使用管道连接的命令来检索、查询和分析数据,从而更轻松地理解和编写复杂的查询。其语法基于 Unix 管道,支持通过命令链实现数据的转换与处理。使用 PPL,您可以对数据进行筛选和聚合,并使用一组丰富的数学、字符串、日期、条件和其他函数进行分析。
OpenSearch PPL 只能用于查询标准日志类中的日志组。
注意
有关 CloudWatch Logs 中支持的所有 OpenSearch PPL 查询命令以及语法和限制的详细信息,请参阅《OpenSearch Service 开发人员指南》中的支持的 PPL 命令。
有关您可以使用的其他查询语言的信息,请参阅 CloudWatch Logs Insights、OpenSearch Service SQL 和 CloudWatch Metrics Insights
| 命令或函数 | 示例查询 | 描述 |
|---|---|---|
|
fields |
|
显示一组需要投影的字段。 |
|
join |
|
将两个数据集联接在一起。 |
|
其中 |
|
根据指定的条件筛选数据。 |
|
stats |
|
执行聚合和计算 |
|
parse |
|
从字符串中提取正则表达式 (regex) 模式,并显示提取出的模式。提取出的模式可进一步用于创建新字段或筛选数据。 |
|
排序 |
|
按字段名称对显示的结果进行排序。使用 sort -FieldName 按降序排序。 |
|
eval |
|
修改或处理字段的值,并将其存储在不同的字段中。这有助于对列进行数学修改、对列应用字符串函数或对列应用日期函数。 |
|
rename |
|
重命名搜索结果中的一个或多个字段。 |
|
head |
|
将显示的查询结果限制为前 N 行。 |
|
top |
|
查找字段中最频繁出现的值。 |
|
dedup |
|
根据指定的字段删除重复的条目。 |
|
rare |
|
查找字段列表中所有字段中出现频率最低的值。 |
|
subquery |
|
在 PPL 语句中执行复杂的嵌套查询。 |
|
trendline |
|
计算字段的移动平均值。 |
|
eventStats |
|
使用计算得出的汇总统计数据丰富事件数据。它会分析您事件中的指定字段,计算各种统计指标,然后将这些结果作为新字段附加到每个原始事件上。 |
|
扩展 |
|
将包含多个值的字段拆分为单独的行,为指定字段中的每个值创建新行。 |
|
fillnull |
|
使用您提供的值填充 null 字段。可在一个或多个字段中使用。 |
|
flatten |
|
扁平化一个字段。该字段必须是以下类型: |
|
cidrmatch |
|
检查指定的 IP 地址是否在给定的 CIDR 范围内。 |
|
fieldsummary |
|
计算每个字段的基本统计数据(计数、非重复计数、最小值、最大值、平均值、标准差和平均值)。 |
|
grok |
|
使用 grok 模式解析文本字段,并将结果附加到搜索结果中。 |
|
字符串函数 |
|
PPL 中的内置函数,可在 PPL 查询中操作和转换字符串及文本数据。例如,转换大小写、合并字符串、提取部分内容以及清理文本。 |
|
日期和时间函数 |
|
内置函数,用于处理和转换 PPL 查询中的日期和时间戳数据。例如,date_add、date_format、datediff、date-sub、timestampadd、timestampdiff、current_timezone、utc_timestamp 和 current_date。 |
|
条件函数 |
|
内置函数,用于检查特定字段条件并有条件地计算表达式。例如,如果 field1 为空值,则返回 field2。 |
|
数学函数 |
|
内置函数,用于在 PPL 查询中执行数学计算和转换。例如:abs(绝对值)、round(四舍五入)、sqrt(平方根)、pow(乘方计算)和 ceil(向上取整到最接近的整数)。 |
|
CryptoGraphic 函数 |
|
计算给定字段的哈希值 |
|
JSON 函数 |
|
用于处理 JSON 的内置函数,包括数组、提取及验证。例如,json_object、json_array、to_json_string、json_array_length、json_extract、json_keys 和 json_valid。 |