Q45 — AWS SAA-C03 第12章
第 45/100 题 | ← 返回第12章
Q845.一家公司的应用程序正在从多个数据源接收数据.数据的大小各不相同,并且预计会随着时间的推移而增加.当前最大大小为 700 KB.随着更多数据源的添加,数据量和数据规模不断增长.该公司决定使用 Amazon DynamoDB 作为应用程序的主数据库.解决方案架构师需要确定一个能够处理大数据的解决方案.哪种解决方案能够以最高效的方式满足这些要求?
- A. 创建 AWS Lambda 函数来过滤超出 DynamoDB 项目大小限制的数据.将较大的数据存储在 Amazon DocumentDB(兼容 MongoDB)数据库中.
- B. 将大数据作为对象存储在 Amazon S3 存储桶中.在 DynamoDB 表中,创建一个具有指向数据的 S3 URL 属性的项目. ✓
- C. 将所有传入的大数据拆分为具有相同分区键的项目集合.使用 BatchWriteItem API 操作在单个操作中将数据写入 DynamoDB 表.
- D. 创建一个 AWS Lambda 函数,该函数在将大型对象写入 DynamoDB 表时使用 gzip 压缩来压缩大型对象.
正确答案: B. 将大数据作为对象存储在 Amazon S3 存储桶中.在 DynamoDB 表中,创建一个具有指向数据的 S3 URL 属性的项目.
解析
为了在公司应用程序从多个源接收数据并使用 Amazon DynamoDB 作为主数据库的场景中有效处理大数据量,推荐的解决方案是:B. 将大数据作为对象存储在 Amazon S3 存储桶中.在 DynamoDB 表中,创建一个具有指向数据的 S3 URL 属性的项目.原因如下:选项 B 建议将大数据作为对象存储在 Amazon S3 存储桶中,并在 DynamoDB 表中引用它们.这种方法利用两种服务的优势,以高效的方式处理大数据.Amazon S3 专为存储和检索大型对象而设计,非常适合处理可能超出 DynamoDB 项目大小限制的数据大小.通过将大数据存储在 S3 中并使用 DynamoDB 保存对 S3 URL 的引用,您可以高效地管理和访问数据,而无需担心大小限制.在 DynamoDB 中,您可以创建一个具有属性的项目,该属性包含指向 S3 存储桶中存储的数据的 S3 URL.这允许您在 DynamoDB 中存储和检索与大数据相关的元数据,而实际数据驻留在 S3 中.该解决方案通过将大数据的存储和检索卸载到 Amazon S3 来提高运营效率,Amazon S3 针对处理此类对象进行了优化.然后使用 DynamoDB 来管理元数据并提供快速高效的查询功能.选项 A 建议使用 AWS Lambda 函数来过滤较大的数据并将其存储在 Amazon DocumentDB 数据库中.虽然这种方法可行,但它通过维护两个不同的数据库(DynamoDB 和 DocumentDB)并管理它们之间的数据过滤和同步,引入了额外的复杂性和操作开销.选项 C 建议将传入的大数据拆分为具有相同分区键的多个项目,并使用 BatchWriteItem API 操作将它们写入 DynamoDB.这种方法可能适用于某些场景,但可能会导致管理数据一致性、查询和潜在热分区问题的复杂性增加.选项 D 建议使用具有 gzip 压缩功能的 AWS Lambda 函数来压缩写入 DynamoDB 的大型对象.虽然压缩可以帮助减少存储要求,但它并不能直接解决 DynamoDB 项目大小限制的问题,并且可能会带来额外的处理开销.因此,建议的解决方案是将大数据作为对象存储在 Amazon S3 存储桶中,并使用 DynamoDB 表存储引用 S3 URL 的项目元数据.此方法充分利用了每项服务的优势,并提供了一种在应用程序中处理大数据量的操作高效的解决方案.