本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
关于在 Amazon OpenSearch 服务中使用直接查询的建议
本页提供了使用亚马逊 OpenSearch 服务直接查询来分析来自 CloudWatch 日志、Amazon S3 和亚马逊安全湖的数据的建议。这些最佳实践可帮助您优化性能并确保高效查询,而无需摄取或复制数据。
一般建议
在使用直接查询功能时,建议执行以下操作:
-
使用该
COALESCE SQL
函数来处理缺失的列并确保返回结果。
-
使用查询限制来确保不会提取太多数据。
-
如果您计划多次分析同一个数据集,请创建一个索引视图,以便在完成分析后将数据完全摄取 OpenSearch 和索引,然后将其丢弃。
-
不再需要加速作业和索引时将其丢弃。
-
不支持包含相同但仅在大小写上有所不同(例如
field1
和FIELD1
)的字段名称的查询。例如,不支持以下查询:
Select AWSAccountId, AwsAccountId from LogGroup Select a.@LogStream, b.@logStream from Table A INNER Join Table B ona.id = b.id
但是,由于两个日志组中的字段名 (@logStream) 相同,因此支持以下查询:
Select a.@logStream, b.@logStream from Table A INNER Join Table B on a.id = b.id
-
函数和表达式必须对字段名进行操作,并且是
SELECT
语句的一部分,该语FROM
句中指定了日志组。例如,不支持此查询:
SELECT cos(10) FROM LogGroup
支持此查询:
SELECT cos(field1) FROM LogGroup
Amazon S3 建议
如果您使用 Amazon Ser OpenSearch vice 来指导对 Amazon S3 中的数据进行查询,则我们还建议您采用以下各项:
-
使用年、月、日、小时的分区格式将数据摄取到 Amazon S3 中,以加快查询速度。
-
构建跳过索引时,使用 Bloom 筛选器来实现高基数特性的字段,使用最小/最大索引来表示具有大值范围的字段。对于高基数字段,可以考虑使用基于值的方法来提高查询效率。
-
使用索引状态管理来维持实体化视图和覆盖索引所需的存储。
CloudWatch 日志推荐
如果您使用 Amazon Ser OpenSearch vice 在 CloudWatch 日志中引导查询数据,我们还建议您采取以下措施:
-
在一个查询中搜索多个日志组时,请使用适当的语法。有关更多信息,请参阅 多日志组函数。
-
使用 SQL 或 PPL 命令时,请将某些字段用反引号括起来,以便成功查询它们。带有特殊字符(非字母和非数字)的字段需要使用反引号。例如,用反引号
@message
括Operation.Export,
起来、和Test::Field
。您无需用反引号将纯字母名称的列括起来。包含简单字段的查询示例:
SELECT SessionToken, Operation, StartTime FROM `LogGroup-A` LIMIT 1000;
附加了反引号的类似查询:
SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A` LIMIT 1000;
Security La
如果您使用亚马逊 OpenSearch 服务在安全湖中直接查询数据,我们还建议您采取以下措施:
-
检查您的 Security Lake 状态,确保其平稳运行,没有任何问题。有关详细的故障排除步骤,请参阅《Amazon Security Lake 用户指南》中的数据湖状态故障排除。
-
验证您的查询访问权限:
-
如果您使用与 Security Lake 委托管理员账户不同的账户查询 Security Lake,请在 S ecurity Lake 中设置具有查询权限的订阅者。
-
如果您使用同一个账户查询 Security Lake,请查看 Security Lake 中是否有任何关于向其注册托管 S3 存储桶的 LakeFormation消息。
-
-
浏览查询模板和预建仪表板,快速开始分析。
-
熟悉开放式网络安全架构框架(OCSF)和 Security Lake:
-
查看 OCSF GitHub
存储库中 Amazon 源的架构映射示例 -
通过访问Amazon 源版本 2 的 Security Lake 查询 (OCSF 1.1.0),了解如何有效地查询 Security L ake
-
通过使用分区:
accountid
、和region
,提高查询性能time_dt
-
-
熟悉 SQL 语法,Security Lake 支持使用该语法进行查询。有关更多信息,请参阅 支持 OpenSearch 的 SQL 命令和函数。