Amazon SAP-C02: 数据库与分析 — 学习指南
属于 AWS Solutions Architect Professional SAP-C02 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
事务型数据库、扩展模式与缓存
在 Amazon RDS (MySQL/PostgreSQL/Oracle/SQL Server)、Amazon Aurora 和 Amazon DynamoDB 之间进行选择时,首先要分析工作负载的特征:严格的关系型模式和复杂的事务处理适合使用 RDS/Aurora;而海量规模、个位数毫秒级的查询和灵活的模式则更适合 DynamoDB。Aurora 通过其分布式存储、副本自动扩展、快速故障转移、用于跨区域读取的 Global Database 以及低延迟的灾难恢复能力,提供了高吞吐量。RDS Multi-AZ 提供同步复制以确保高可用性,但不能用于读取扩展;读取副本 (RDS/Aurora) 则用于处理读取密集型工作负载。对于键值缓存和微秒级延迟的场景,ElastiCache (Redis or Memcached) 可以减轻数据库负载;当数据必须高度可用且可恢复时,MemoryDB for Redis 在提供 Redis 兼容的持久性的同时,增加了数据的持久性。常见的陷阱包括:低估连接数限制(如 MySQL 的最大连接数)、未使用连接池(导致 Lambda/容器产生大量连接)、因糟糕的主键设计导致 DynamoDB 出现热点分区,以及忽略缓存淘汰/设计策略导致数据陈旧。决策权衡通常围绕成本与性能和弹性展开:预置的 Aurora/大型 RDS 实例成本更高,但能降低延迟并简化事务;而采用按需或自动扩展模式的 DynamoDB 可以降低运维成本,但需要仔细进行模式设计和容量规划。加密、自动备份、PITR(时间点恢复)和跨区域复制模式应根据 RPO/RTO 的要求来选择。
数据湖、ETL 与分析查询引擎
S3 是典型的高持久性数据湖;设计时应围绕分区、列式格式 (Parquet/ORC)、压缩和文件合并(compaction)来进行,以实现更具成本效益的查询。AWS Glue 和 AWS Glue Data Catalog 提供无服务器的 ETL、模式发现和元数据目录功能;Lake Formation 则为受管控的数据湖增加了集中式访问控制、精细化权限和跨账户共享能力。对于交互式分析,Amazon Athena 可以直接查询 S3 数据(无服务器,按查询付费),而 Amazon Redshift (支持 RA3/Iceberg) 则为复杂的商业智能 (BI) 和连接 (join) 操作提供了高性能的托管式 MPP 数据仓库。使用 Redshift Spectrum 可以从 Redshift 中直接查询 S3 数据,而无需将所有数据都载入 Redshift。Kinesis Data Firehose 是一个托管的数据摄取路径,可将流式事件数据传输到 S3 或 Redshift。常见的架构陷阱包括:存在过多小文件导致 Athena/Redshift 开销过高、分区键选择不当导致数据倾斜,以及未能对文件进行合并或转换为列式格式。权衡点在于延迟与成本:Athena 对于即席查询而言运维成本低;而 Redshift 以更高的预置成本提供了更强的持续性能。通过 Glue/Lake Formation 实现数据治理和数据血缘对于满足合规性要求和支持多团队所有权至关重要。
流处理、实时处理与搜索
实时数据摄取和处理可使用 Kinesis Data Streams(基于分片的吞吐量和顺序保证)、Kinesis Data Firehose(托管式交付到目标)、Kinesis Data Analytics(SQL/Apache Flink 处理)或 Amazon MSK(满足 Kafka 兼容性需求)。当需要直接的 AWS 原生无服务器集成时,选择 Kinesis;当客户端依赖 Kafka 生态系统工具时,选择 MSK。“至少一次”交付语义、分片限制、消费者的并行度以及未能预置足够的分片是常见的运维陷阱。对于下游的快速搜索和可观测性需求,Amazon OpenSearch Service 提供了索引、近实时搜索和内置的 Kibana 仪表盘功能;索引生命周期管理以及温/冷数据分层可以降低旧数据的存储成本。在将事件持久化到 OpenSearch 或 S3 之前,可以使用 Kinesis + Lambda 或 Kinesis + KDA 来丰富或转换事件。由于重试或重放操作会导致数据重复,因此需要在消费者端设计幂等性和去重逻辑。决策标准需要在吞吐量和延迟之间取得平衡:拥有大量分片的 Kinesis 支持高吞吐量,但会增加成本和管理复杂性;Firehose 减轻了消费者的负担,但提供的转换灵活性较低。
迁移、复制、治理与运营弹性
Database Migration Service (AWS DMS) 和 Schema Conversion Tool (SCT) 是用于同构和异构迁移的主要工具,支持持续的数据变更捕获 (CDC)。迁移模式包括 rehost (直接迁移)、replatform (平台重构,例如迁移到 Aurora),以及在适当情况下重构为 DynamoDB 或无服务器架构。使用 DMS 时应进行迁移前后的验证、并行表复制,并谨慎处理 LOB/LOBLOB。跨账户和跨区域复制需要 KMS 密钥访问权限、VPC 对等连接或 Transit Gateway,以及网络带宽规划;当需要跨区域的低延迟读取时,Global Databases 和只读副本是备选方案。治理和安全必须包括:使用 Lake Formation 进行数据共享、遵循 IAM 最小权限原则、为 S3 和 RDS 快照配置资源策略,以及使用 VPC 端点/PrivateLink 避免公共出口流量。运营陷阱包括监控不足(错过副本延迟告警)、未测试故障切换/运行手册,以及批量传输期间隐藏的出口流量成本。备份、时间点恢复 (PITR) 策略和自动恢复都影响着 RTO/RPO 的权衡;应将用于保障可用性的复制与用于长期保留和合规性的常规备份相结合。
实践问题:用例场景
场景:Acme Retail 公司在一个多账户的 AWS Organization 中运营一个电子商务平台,其生产工作负载位于 us-east-1 和 europe-west-1。他们将点击流和交易事件存储到 S3,并运营一个本地 OLTP 数据库,该数据库必须以最小停机时间迁移到 AWS。
挑战:将 OLTP 数据库迁移到一个高可用、可跨区域读取扩展的目标,同时在 S3 上构建一个具备实时注入和查询能力的、受治理的分析湖。
推荐方法:
- 使用 AWS DMS 和 SCT 进行模式转换,并设置从本地数据库到 us-east-1 中 Amazon Aurora (Global Database) 的持续 CDC,同时在 europe-west-1 中创建一个 Aurora 只读副本。
- 通过 Amazon Kinesis Data Streams 和 Firehose 注入点击流和交易事件;缓冲原始事件并以 Parquet 格式交付到 S3,按日期和区域进行分区。
- 使用 AWS Glue 对 S3 数据进行编目,通过 Lake Formation 实施访问控制,并使用 Glue 作业(或 Glue Studio)执行 ETL 以生成经过整理的数据集;通过 Amazon Athena 和 Redshift Spectrum 将这些数据集提供给分析师使用。
- 添加 ElastiCache (Redis) 以对热门产品和会话数据进行高读取缓存;使用 CloudWatch 实现端到端监控,在 Aurora 上启用增强监控,并通过运行手册验证故障切换。
基本原理:此方法利用 DMS CDC 最大限度地减少了停机时间,通过 Aurora Global Database 提供了低延迟的全局读取,建立了一个受治理的 S3 数据湖以实现分析敏捷性,并通过缓存和解耦的流式注入减轻了 OLTP 系统的负载,符合企业弹性和性能的最佳实践。
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →