精品项目

通过 Amazon OpenSearch Service 的零 ETL 集成与 Amazon S3

2026-01-27 14:50:48



通过 Amazon OpenSearch Service 实现现代化数据可观察性

关键要点

在本篇文章中,我们将讨论 Amazon OpenSearch Service 最近推出的零ETL 与 Amazon S3 的集成,如何帮助用户直接查询位于 Amazon S3 的操作日志和数据湖,从而简化数据分析流程,降低成本并提高效率。

我们非常高兴地宣布 Amazon OpenSearch Service 的零ETL 与 Amazon Simple Storage Service (Amazon S3) 的集成现已全面上线,适用于运行 213 版本及以上的域。这一集成为客户提供了新的方式,可以在不需要切换工具的情况下查询 Amazon S3 中的操作日志和基于 Amazon S3 的数据湖。通过跨 OpenSearch Service 和 S3 数据集进行查询,您可以评估多个数据源,以便对操作和安全事件进行取证分析。与 OpenSearch Service 的新集成支持 AWS 的零ETL 目标,减少了重复数据和管理多个分析工具的操作复杂性,让您能够直接查询操作数据,从而降低成本和响应时间。

OpenSearch 是一个开放源代码的分布式搜索和分析套件,衍生自 Elasticsearch 710。目前,OpenSearch Service 拥有成千上万的活跃客户,管理着数十万个集群,每月处理数万亿的请求。

Amazon S3 是一种对象存储服务,具有行业领先的可扩展性、数据可用性、安全性和性能。各类组织和行业可以存储和保护任意数量的数据,用于几乎任何使用场景,例如数据湖、以云为中心的应用程序,以及移动应用程序。凭借经济高效的存储类别和用户友好的管理功能,您可以优化成本、组织数据,并配置精细的访问控制,以满足特定的商业、组织和合规要求。接下来,让我们深入了解 OpenSearch Service 的这一激动人心的新功能。

使用 OpenSearch Service 零ETL 集成 Amazon S3 的好处

OpenSearch Service 的零ETL 集成 Amazon S3 使您能够直接在 Amazon S3 中存储的不常查询的数据上使用 OpenSearch Service SQL 和 PPL 的丰富分析功能。它还与其他 OpenSearch 集成相结合,您可以安装预打包的查询和可视化以分析数据,从而使您能够快速入门。

下图展示了 OpenSearch Service 如何解锁存储在不常查询日志中的价值,这些日志来自流行的 AWS 日志类型。

您可以使用 OpenSearch Service 的 直接查询 来查询 Amazon S3 中的数据。OpenSearch Service 提供 Amazon S3 的直接查询集成,使您能够分析 Amazon S3 中的操作日志和基于 Amazon S3 的数据湖,而无需在服务之间切换。现在,您可以在云对象存储中分析数据,同时使用 OpenSearch Service 的操作分析和可视化功能。

许多客户目前使用 Amazon S3 存储其解决方案的事件数据。对于操作分析,Amazon S3 通常被用作 VPC 流日志、Amazon S3 访问日志、AWS 负载均衡器日志 和其他 AWS 服务的事件源的目的地。客户还直接将应用程序事件存储在 Amazon S3 中,以满足合规和审计需求。由于 Amazon S3 的 耐久性 和可扩展性,使其成为许多希望实现长期存储或归档的客户的明显数据目的地,以具备经济实惠的价格方案。

将来自这些来源的数据引入存储在热存储和温存储级别的 OpenSearch Service 中,可能由于生成的事件的大小和数量而面临障碍。对于存储在 OpenSearch Service 索引中的某些事件源,针对数据运行的查询数量不足以证明继续在其集群中存储它们的成本。之前,您只能根据为集群配置的存储来选择需要引入的事件源。访问其他数据就意味着使用不同的工具,例如 Amazon Athena 来查看 Amazon S3 上的数据。

通过一个实际的例子,让我们看看新集成如何使 Arcesium 受益。

“Arcesium 为金融服务行业提供先进的云原生数据、操作和分析能力。我们的软件平台每天处理数百万笔交易,伴随出现大量的日志和审计记录。由于我们的保留和合规需求,我们需要处理、存储和分析的日志数据量正在呈指数级增长。Amazon OpenSearch Service 的零ETL 集成与 Amazon S3 的新功能帮助我们的业务扩展,让我们能够分析已经存储在 Amazon S3 中的不常查询的日志,而不需要承担维持大型和昂贵的在线 OpenSearch 集群或构建临时引入管道的操作费用。”

通过 Amazon OpenSearch Service 的零 ETL 集成与 Amazon S3

Kyle George,Arcesium 基础设施全球高级副总裁

通过 Amazon S3 的直接查询,您不再需要建立复杂的提取、转换和加载 (ETL) 管道,也不必承担在 OpenSearch Service 和 Amazon S3 存储中复制数据的费用。

基本概念

配置直接查询连接后,您需要使用 OpenSearch Service 查询工作台在 AWS Glue 数据目录中创建表。直接查询连接依赖于 Glue 数据目录表中的元数据来查询存储在 Amazon S3 中的数据。请注意,AWS Glue 爬虫或 Athena 创建的表当前不受支持。

通过将数据目录表的结构、SQL 索引技术与 OpenSearch Service 索引相结合,您可以加速查询性能,解锁高级分析能力,并控制查询成本。以下是加速数据的一些示例:

加速器跳过索引 您仅引入和索引存储在 Amazon S3 中数据的元数据。当您查询带有跳过索引的表时,查询规划器会引用索引并重写查询,以有效地定位数据,而不是扫描所有分区和文件。这允许跳过索引快速缩小与您的分析相关的存储数据的特定位置。物化视图 通过物化视图,您可以利用复杂查询例如聚合来支持仪表板可视化。物化视图将一小部分数据引入 OpenSearch Service 存储。覆盖索引 使用覆盖索引,您可以从表中的指定列引入数据。这是三种索引类型中性能最优的。由于 OpenSearch Service 引入了来自所需列的所有数据,您可以获得更好的性能并进行高级分析。OpenSearch Service 从覆盖索引数据中创建一个新索引。您可以使用这个新索引进行仪表板可视化和其他 OpenSearch Service 功能,例如异常检测或地理空间能力。

当新数据进入您的 S3 存储桶时,您可以配置物化视图和覆盖索引的刷新间隔,以便为您提供对 Amazon S3 上最新数据的本地访问。

解决方案概述

让我们使用 VPC 流日志作为数据源进行测试!如前所述,许多 AWS 服务将日志发送到 Amazon S3。VPC 流日志是 Amazon Virtual Private Cloud (Amazon VPC) 的一个功能,能够捕获有关 IP 流量的信息,这些流量进出您 VPC 中的网络接口。在此演练中,您将执行以下步骤:

如果您还没有可用的 S3 存储桶,请创建一个 S3 存储桶。使用能产生流量的现有 VPC 启用 VPC 流日志,并将日志存储为 Parquet 格式在 Amazon S3 中。验证日志是否存在于您的 S3 存储桶中。设置与数据目录和包含您数据的 S3 存储桶的直接查询连接。安装 VPC 流日志的集成。

创建 S3 存储桶

如果您有现有的 S3 存储桶,可以通过在存储桶中创建新文件夹来重用该存储桶。如果您需要创建一个存储桶,请导航到 Amazon S3 控制台,并创建一个符合您组织需求的 Amazon S3 存储桶。

启用 VPC 流日志

完成以下步骤以启用 VPC 流日志:

在 Amazon VPC 控制台上,选择一个可以生成日志的 VPC。在 流日志 标签下,选择 创建流日志。在 过滤器 中,选择 全部。将 最大聚合间隔 设置为 1 分钟。对于 目标,选择 发送到 Amazon S3 存储桶 并提供您之前创建的 S3 存储桶 ARN。对于 日志记录格式,选择 自定义格式,并选择 标准属性。

在本篇文章中,我们未选择任何 Amazon Elastic Container Service (Amazon ECS) 属性,因为目前与 OpenSearch 集成尚未实现。

对于 日志文件格式,选择 Parquet。对于 Hive 兼容 S3 前缀,选择 启用。将 按时间分区日志 设置为每 1 小时60 分钟。

验证您的 S3 存储桶中是否收到日志

导航到您之前创建的 S3 存储桶,以查看数据是否正在流入您的 S3 存储桶。如果你深入导航目录结构,您会发现日志以每小时的文件夹递送,并且每分钟就会发出一次。

现在,您已经将 VPC 流日志流入 S3 存储桶,您需要在 Amazon S3 中的数据与 OpenSearch Service 域之间建立连接。

设置直接查询数据源

在此步骤中,您将创建一个直接查询数据源,该数据源使用 Glue 数据目录表和您的 Amazon S3 数据。该操作将创建所需的基础设施,以便访问 Hive metastoreGlue 数据目录中的数据库和表以及您希望数据源能够访问的 Amazon S3 中的数据。它还会将所需的权限通过安全插件的 细粒度访问控制 进行连接,以便您无需担心访问权限问题。

完成以下步骤以设置您的直接查询数据源:

在 OpenSearch Service 域上,选择导航窗格中的 域名。选择您的域名。在 连接 标签下,选择 创建新连接。在 名称 中,输入不带破折号的名称,如 zeroetlwalkthrough。在 描述 中,输入描述性名称。在 数据源类型 中,选择 带 AWS Glue 数据目录的 Amazon S3。在 IAM 角色 中,如果这是您第一次使用,选择 创建新角色 让直接查询的设置自动处理权限。您可以稍后根据组织的合规和安全需求进行编辑。在本文中,我们将角色命名为 zeroetlwalkthrough。在 S3 存储桶 中,选择您创建的那个。不要勾选为所有新旧存储桶授予访问权限的复选框。在 检查点 S3 存储桶 中,使用您创建的同一存储桶。检查点文件夹会自动为您创建。在 AWS Glue 表 中,由于您尚未在数据目录中创建任何表,因此启用 授予所有现有和新表访问。

VPC 流日志 OpenSearch 集成将会在数据目录中创建资源,您需要访问这些资源。

选择 创建。

现在,初步设置完成,您可以安装 VPC 流日志的 OpenSearch 集成。

安装 VPC 流日志的 OpenSearch 集成

集成插件包含多种预构建的仪表板、可视化、映射模板和其他资源,使可视化和处理源生成的数据变得更简单。Amazon VPC 的集成安装了一系列资源,以便您查看存储在 Amazon S3 中的 VPC 流日志数据。

在本节中,我们将向您展示如何确保您拥有最新的集成包进行安装。接着,我们展示如何安装 OpenSearch 集成。在大多数情况下,您将在小版本或大版本发布时拥有最新的集成,例如 VPC 流日志、NGINX、HA Proxy 或 Amazon S3访问日志。然而,OpenSearch 是一个开放源代码的社区主导项目,您可以预期会有版本更改和新的集成尚未包含在您当前的部署中。

验证 Amazon VPC 的 OpenSearch 集成的最新版本

您可能已经将 OpenSearch Service 从早期版本升级到 213 版本。让我们确认一下您的部署是否与本文中存在的版本匹配。

在 OpenSearch Dashboards 中,导航到 集成 标签并选择 Amazon VPC。您将看到集成的版本信息。

确认您拥有 110 或更高版本。如果您的部署没有该版本,可以从 OpenSearch 目录安装最新版本。完成以下步骤:

转到 OpenSearch 目录。选择 Amazon VPC 流日志。从名为 amazonvpcflow110 的存储库文件夹中下载 110 Amazon VPC 集成 文件。在 OpenSearch Dashboard 的 仪表板管理 插件中,选择 已保存的对象。选择 导入,并浏览您的本地文件夹。导入下载的文件。

该文件包含创建集成所需的所有对象。安装后,您可以继续设置 Amazon VPC OpenSearch 集成的步骤。

设置 Amazon VPC 的 OpenSearch 集成

让我们开始安装集成:

在 OpenSearch Dashboards 中,导航到 集成 标签。选择 Amazon VPC 集成。确认版本为 110 或更高,然后选择 设置。在 显示名称 中,保留默认设置。在 连接类型 中,选择 S3 连接。在 数据源 中,选择您在先前步骤创建的直接查询连接别名。在本文中,我们使用 zeroetlwalkthrough。在 Spark 表名称 中,保留预填充的值 amazonvpcflow。在 S3 数据位置 中,输入您在之前步骤中创建的 VPC 流日志所设定的日志文件夹的 S3 URI。在本文中,我们使用 s3//zeroetlwalkthrough/AWSLogs/。

S3 存储桶名称是全局唯一的,您可能需要考虑使用符合公司合规指导的存储桶名称。UUID 加上描述性名称是确保唯一性的不错选择。

在 S3 检查点位置 中,输入您定义的检查点文件夹的 S3 URI。检查点存储直接查询功能的元数据。确保选择存储桶中任何空的或未使用的路径。在本文中,我们使用 s3//zeroetlwalkthrough/CP/,它位于我们之前创建的同一个存储桶中。选择 查询推荐 和 使用实时查询的 Flint 集成的仪表板和可视化。

![](https//d2908q01vomqb2cloudfrontnet/artifacts/DBSBlogs/BDB3840/BDB384