Q74 — AWS SAA-C03 第17章
第 74/89 题 | ← 返回第17章
Q1374. 一家公司在 Amazon S3 中运营一个数据湖,用于存储多种格式的大型数据集。该公司有一个应用程序,可以根据筛选条件从数据湖中的多个对象检索和处理数据子集。目前,对于每个数据查询,该应用程序都会下载整个 S3 对象并执行转换。当前流程需要大量的转换时间。该公司希望找到一种解决方案,使应用程序能够直接查询和筛选 S3 对象,而无需下载这些对象。哪种解决方案能够满足这些要求?
- A. 使用 Amazon Athena 查询和筛选 Amazon S3 中的对象。 ✓
- B. 使用 Amazon EMR 处理和筛选对象。
- C. 使用 Amazon API Gateway 创建 API,从 Amazon S3 中检索筛选后的结果。
- D. 使用 Amazon ElastiCache(Valkey)缓存对象。
正确答案: A. 使用 Amazon Athena 查询和筛选 Amazon S3 中的对象。
解析
让我们分析每个选项,以确定哪个选项满足使应用程序能够直接查询和筛选 S3 对象而无需下载它们的要求:选项 A:使用 Amazon Athena 查询和筛选 Amazon S3 中的对象。Amazon Athena 是一项交互式查询服务,允许您使用标准 SQL 直接分析 Amazon S3 中的数据。它可以查询各种格式的数据,例如 CSV、JSON、Parquet 和 ORC,而无需将数据加载到单独的数据库中。借助 Athena,应用程序可以提交带有筛选条件的 SQL 查询,Athena 将处理 S3 中的数据并仅返回相关结果。这避免了下载整个 S3 对象并在本地执行转换的需要,从而显著缩短了转换时间。因此,此选项正确。选项 B:使用 Amazon EMR 处理和过滤对象。Amazon EMR(Elastic MapReduce)是一种基于云的大数据处理服务,它使用流行的开源框架,例如 Apache Hadoop、Spark 和 Hive。虽然 EMR 可以处理和过滤存储在 S3 中的数据,但这通常需要设置和管理 EC2 实例集群。数据仍然需要从 S3 读取到 EMR 集群中进行处理,然后处理结果可能需要写回 S3 或其他存储位置。与使用 Athena 相比,这种方法更加复杂且资源消耗更大,并且无法像 Athena 那样直接满足在不下载整个对象的情况下进行查询和过滤的需求。因此,此选项不正确。选项 C:使用 Amazon API Gateway 创建 API 以从 Amazon S3 检索筛选后的结果。Amazon API Gateway 是一项完全托管的服务,可轻松创建、发布、维护、监控和保护任何规模的 API。但是,API Gateway 本身不具备查询和筛选存储在 S3 中的数据的功能。它可以用来公开一个用于访问数据的接口,但实际的查询和筛选逻辑需要在其他地方实现,例如在 Lambda 函数中。这仍然可能需要从 S3 下载数据并在 Lambda 函数中执行筛选,这不符合直接查询和筛选 S3 对象的要求。因此,此选项不正确。选项 D:使用 Amazon ElastiCache(Valkey)缓存对象。Amazon ElastiCache 是一项完全托管的内存缓存服务,支持 Redis 和 Memcached。它主要用于通过将频繁访问的数据缓存到内存中来提高应用程序的性能,从而减轻数据库或其他存储系统的负载。ElastiCache 并非设计用于查询和过滤存储在 S3 中的数据。它只能基于预定义的键来存储和检索数据,并且不具备对数据执行复杂查询或过滤的能力。因此,此选项不正确。因此,满足要求的解决方案是使用 Amazon Athena 查询和筛选 Amazon S3 中的对象,答案是 A。