Amazon DEA-C01: 数据存储和数据湖架构 — 学习指南
属于 Amazon Data Engineer Associate DEA-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
本领域涵盖 AWS 存储服务和数据库引擎如何支持现代数据平台中的大规模数据摄取、持久化归档、查询性能和安全治理。数据工程师必须在成本、访问延迟、持久性和精细化访问控制之间取得平衡,同时将 S3、Lake Formation、Redshift 和 DynamoDB 等服务集成到管道中。理解存储类别权衡、生命周期自动化、托管存储与本地存储的对比以及分区模式,可以避免在生产环境中出现性能和成本方面的意外。
Amazon S3 存储类别和生命周期策略
S3 提供多种存储类别和生命周期控制,以优化成本和访问模式。可在上传时配置存储类别(通过控制台或 CLI:aws s3 cp file s3://bucket/key –storage-class INTELLIGENT_TIERING),或使用存储桶生命周期规则(aws s3api put-bucket-lifecycle-configuration –bucket my-bucket –lifecycle-configuration file://lifecycle.json)。Intelligent-Tiering 会在频繁访问层和不频繁访问层之间自动移动对象,并收取少量监控费用;对于未知或变化的访问模式,应启用此功能。使用生命周期规则将对象转换为 GLACIER 或 DEEP_ARCHIVE 以进行长期保留,并使旧版本过期/删除。
决策标准和权衡:
- Intelligent-Tiering:对于可变访问,运营开销低,但每个对象有月度监控费;最适合访问模式不可预测的情况。
- Glacier vs Glacier Deep Archive:Glacier 提供更快的标准和加急检索选项,但存储成本更高;Deep Archive 是长达数年保留期内最便宜的选择,其批量/标准检索时间以小时为单位。
- Standard-IA vs Intelligent-Tiering:Standard-IA 有 30 天的最低收费和检索费用——应避免用于频繁访问的数据或生命周期短的对象。
操作说明:
- 启用版本控制(aws s3api put-bucket-versioning –bucket my-bucket –versioning-configuration Status=Enabled)和对象锁定(aws s3api put-object-lock-configuration –bucket my-bucket –object-lock-configuration file://lock.json)以实现不变性;启用 MFA Delete 需要特殊的 CLI 操作和启用了 MFA 的存储桶所有者账户。
- 生命周期转换适用于对象版本,并可通过前缀/标签限定范围;使用 abort-incomplete-multipart-upload 来避免存储泄漏。
使用 S3 和 Lake Formation 设计数据湖
使用 S3 作为中央对象存储,并使用 Lake Formation 进行集中式访问控制和编目,来设计数据湖。将 S3 位置注册为 Lake Formation 资源,设置 AWS Glue Data Catalog,并对数据库/表使用 Lake Formation 授权(aws lakeformation grant-permissions –principal arn:aws:iam::123456789012:user/analyst –permissions SELECT –resource ‘{…}’)。Lake Formation 可以强制执行精细化控制:通过应用于 Glue/Athena 查询的 LF-tag 和数据筛选器,实现列级别、行级别(筛选表达式)和单元格级别的屏蔽。
关键配置和治理模式:
- 注册位置:使用 Lake Formation 控制台注册 s3://bucket/path,并附加一个允许 Lake Formation 爬取/读取的 IAM 角色。
- 精细化策略:定义 LF-tag 并将其附加到表/列;使用 column-list 授予权限以限制列,并使用行筛选表达式来限制为某个主体返回的行。
- 请记住,对于 Glue/Athena 访问,Lake Formation 权限可以覆盖或阻止 IAM S3 权限——在需要时,应同时授予 Lake Formation 和 S3 级别的访问权限。
决策点:
- 当您需要跨多个分析引擎进行集中式编目、使用 LF-tag 和实施精细化控制时,请使用 Lake Formation。
- 对于简单的访问控制或外部工具访问,可以考虑 S3 存储桶策略和 IAM,但请注意:受 Lake Formation 治理的分析引擎可能会忽略仅限 IAM 的授权。
Amazon Redshift 架构和存储
Redshift 在 RA3 节点上将计算与托管存储分离,而 DS2 节点则使用本地 SSD 支持的存储。RA3 节点使用 Redshift 托管存储 (RMS),数据存储在由集群管理的 Amazon S3 上;选择 RA3 可获得可扩展的存储、一致的查询性能,并能为计算单独付费。DS2 节点将数据存储在实例本地磁盘上,这需要在数据增长时进行仔细的容量规划和大小调整。
配置和操作细节:
- 通过控制台或 CLI 创建 RA3 集群:aws redshift create-cluster –cluster-identifier my-cluster –node-type ra3.xlplus –number-of-nodes 2 –master-username admin –master-user-password Passw0rd。
- COPY 命令:必须在附加了授予 S3 读取权限的 IAM 角色的集群上运行。在创建集群时附加角色,或修改集群以添加 IAM 角色;角色 ARN (arn:aws:iam::acct:role/RedshiftS3Role) 在 COPY 命令中通过 ‘aws_iam_role=arn:…’ 作为凭证被引用。
- 监控 WLM 队列、短查询加速、自动清理 (automatic vacuuming),并使用 SORT/ENCODE 来优化存储和性能。
比较 (RA3 vs DS2):
- RA3:存算分离,自动将数据分层到 S3,存储管理开销更低,最适合不断增长的数据集。
- DS2:本地 SSD 存储,本地数据延迟更低,但容量有限且难以扩展。
DynamoDB 与专用数据库选型
对于需要个位数毫秒级延迟的大规模键值和文档工作负载,应选择 DynamoDB。表设计取决于分区键(以及可选的排序键)的选择:使用高基数、分布均匀的键以避免热分区。对于顺序或基于时间戳的键,应实施随机前缀(分片)或使用 UUID 来分散写入。使用按需容量以避免预置,但对于可预测的工作负载,可考虑使用带自动扩展的预置容量,并利用自适应容量处理热分区。
实用配置说明:
- 创建表的 CLI:
undefined
。
- 使用 GSI 支持备用访问模式,启用 TTL 实现自动过期,并使用 DynamoDB Streams + Lambda 实现变更数据捕获模式。
- 对于缓存读取密集型工作负载,添加 DAX;对于复杂查询或关系型需求,根据查询复杂度和一致性需求选择 Aurora 或 Redshift Spectrum。
引擎选型决策标准:
- 对于可预测的单表访问模式和需要大规模与低延迟的场景,使用 DynamoDB。
- 对于复杂分析和大规模 OLAP,使用 Redshift。
- 对于事务性关系型工作负载,使用 Aurora。
常见陷阱与决策标准
- 对频繁访问的数据使用 S3 Standard-IA — Standard-IA 有至少 30 天的计费;对于生命周期短或频繁访问的对象,应使用 Standard 或 Intelligent-Tiering。
- 忘记 Lake Formation 权限会覆盖 Glue/Athena 的 IAM S3 权限 — 当使用 Glue/Athena 时,需要同时授予 Lake Formation 和 S3 的访问权限,并在 Lake Formation 控制台中验证有效权限。
- Redshift COPY 需要附加到集群的 IAM 角色,而不仅仅是用户权限 — 将一个有 S3 访问权限的 IAM 角色附加到集群,并在 COPY 操作中引用其 ARN。
- 由顺序键导致的 DynamoDB 热分区 — 避免使用单调键;使用哈希键、随机前缀或 UUID,并考虑使用按需容量或带自动扩展的预置容量。
- 不正确地启用 S3 对象锁和 MFA 删除 — 对象锁需要启用版本控制和适当的权限;MFA 删除只能由存储桶所有者使用 MFA 通过 CLI 启用/禁用,且有严格的要求。
- 未测试检索成本和时间就进行不当的生命周期转换 — 应测试 Glacier 存储类的检索工作流,以避免意外的检索延迟和费用。
实践问题:用例场景
Acme Media 公司必须存储 50 TB 的原始视频采集数据,为分析师提供对转换后元数据的查询访问,并为不同业务部门强制实施行级和列级访问控制,同时最小化存储成本。
- 使用分段上传将原始视频采集到 S3,按采集日期和数据集为对象添加标签,对初始的未知访问模式使用 Intelligent-Tiering。
- 配置生命周期规则,在可配置的保留期后将媒体转换到 GLACIER 或 DEEP_ARCHIVE(如果考虑使用 Standard-IA,确保其保留期与 30 天以上的要求对齐)。
- 在 Lake Formation 中注册 S3 位置,构建 Glue 爬网程序以填充数据目录,并向业务部门授予基于 LF 标签的行级和列级权限。
- 将经过整理的元数据存储在 Redshift RA3 中用于分析;将一个 IAM 角色附加到集群以支持从 S3 进行 COPY 操作,并在维护窗口内执行 VACUUM/ANALYZE 操作。
- 使用带有哈希 UUID 键的 DynamoDB 作为视频清单的高吞吐量查找表,并启用按需容量以吸收流量峰值。
基本原理:此方法通过 Glacier 存储类隔离了冷存储成本,使用 Intelligent-Tiering 应对未知访问模式,应用 Lake Formation 在多个分析引擎间实现安全的精细访问控制,并选择 RA3 作为可扩展的分析存储,同时由 DynamoDB 处理低延迟的操作性查找。
← 数据摄取和收集 · 所有领域 · 数据编目和元数据管理 →
练习这些题目 → · 在 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.
通过考试 →