Amazon DEA-C01: 数据摄取和收集 — 学习指南

属于 Amazon Data Engineer Associate DEA-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.

该领域涵盖了可靠且大规模地将原始数据引入数据平台的模式、AWS 服务和操作细节。数据工程师必须在批量和流式入口点之间做出选择,确保数据的编目和可发现性,并针对吞吐量、可重放性和故障模式进行设计。关键的 AWS 构建模块是用于批量的 S3 和 Glue,用于流式处理的 Kinesis 和 Firehose,用于数据库迁移和 CDC 的 DMS,以及用于临时和基于推送的摄取的 API/事件驱动组件(API Gateway、Lambda、SNS、SQS、S3 事件)。

使用 AWS Glue 和 S3 进行批量摄取

Glue 是将数据批量摄取到 S3 和您的数据目录中的主要托管式 ETL 和元数据解决方案。典型模式:将原始文件存放到 S3(使用不同的 raw/zone 前缀),运行 Glue 爬网程序(crawler)以推断 schema 并填充 Glue Data Catalog,然后运行 Glue ETL 作业(Spark)进行转换、分区、转换为列式格式(Parquet/ORC),并将优化后的数据写回 S3。使用适当的分类器(内置的 CSV/JSON/Parquet 或自定义的 grok/regex)配置爬网程序,并为爬网程序提供一个具有 s3:GetObject/s3:ListBucket 和 glue:catalog 权限的 IAM 角色——缺少这些权限是一个常见的操作故障。

在配置 Glue 作业和爬网程序时,请使用以下控制台/CLI 模式和开关:

undefined

,并使用

undefined

启动。

undefined

;启用作业书签以避免重复处理。 Glue 与替代方案的决策标准:

使用 Kinesis Data Streams 和 Firehose 进行流式摄取

Kinesis Data Streams (KDS) 用于支持重放、消费者控制和精细扩展的实时摄取。一个 Kinesis 分片提供 1 MB/秒或 1,000 条记录/秒的写入容量和 2 MB/秒的读取容量;使用

undefined

创建流,并使用

undefined

推送数据。分区键决定了分片的分配;分区键基数过低会导致热分片——通过增加键的熵或添加哈希后缀来避免。使用

undefined

扩展分片或启用 On-Demand 模式以实现自动扩展。

Firehose 是一种交付流服务,专为近实时交付到目的地(S3、Redshift、OpenSearch、Splunk)而优化,具有内置的缓冲、压缩和可选的 Lambda 转换功能。使用 BufferingHints 配置缓冲:通过 buffer_size (MB) 和 buffer_interval (秒) 来调整交付延迟与成本;启用压缩(GZIP、Snappy)并设置一个处理 Lambda 以进行记录级别的转换。主要区别:

当您需要重放、强大的消费者控制或多个下游消费者时选择 KDS;当您需要以最小的运维开销将数据简单地交付和转换到 S3/Redshift/OpenSearch 时选择 Firehose。

使用 DMS 进行数据库迁移和 CDC

AWS DMS 用于同构/异构迁移和持续复制(CDC)。部署一个复制实例(

undefined

),其大小应根据吞吐量来确定,大小决策取决于变更率、全量加载的数据量和任务并行度。DMS 任务类型:

full-load 和 CDC 之间的决策标准:当您需要最小停机时间迁移时,使用 full-load+CDC;在通过其他机制完成初始加载后,使用仅 CDC 模式进行持续复制。务必验证 schema 映射,并使用有代表性的数据量运行测试迁移。

基于 API 和事件驱动的摄取模式

API 和事件用于基于推送的摄取和编排。常见模式:

undefined

配置存储桶通知,以将对象创建事件发送到 Lambda、SQS 或 SNS;使用前缀/后缀过滤器来限制触发。对于扇出(fan-out)场景,将 S3 事件路由到 SNS 主题,再分发给多个 SQS 队列/Lambda 订阅者,从而在不产生耦合的情况下将同一事件交付给多个消费者。

运维考量和 CLI 模式:

常见陷阱和决策标准

实践问题:用例场景

RetailCo 公司收集移动端点击流(高容量、实时)和夜间的产品目录文件;他们需要实时仪表板和一个统一的分析湖。

  1. 将点击流摄取到 Kinesis Data Streams,分区键由用户会话 + 哈希化的分片后缀派生;使用 Kinesis Data Analytics 或 Lambda/Kinesis Client Library 创建消费者进行实时处理。
  2. 使用 Kinesis Data Firehose 和一个转换 Lambda,将经过丰富的流式输出持久化到 S3(Parquet 格式),使用 Snappy 压缩,并可选择性地加载到 Redshift Spectrum 进行分析。
  3. 将夜间目录文件放置在 S3 的 raw/ 目录中,并运行一个计划的 Glue 爬网程序来更新 Glue Data Catalog,然后运行 Glue ETL 作业将其转换为分区化的 Parquet 格式并存放在 curated(精选)区域。
  4. 使用 S3 事件通知 -> SNS -> Lambda 来触发轻量级的元数据更新或缓存失效;将交付路由到 SQS 以进行持久的下游处理。
  5. 监控 Kinesis 分片指标(IncomingBytesIncomingRecordsPutRecords.Success),并使用 UpdateShardCount 或 On-Demand 模式的流来应对增长;启用 CloudWatch 警报。

AWS 最佳实践原理:分离实时和批处理路径,当需要重放和消费者隔离时使用 Kinesis Data Streams,使用 Firehose 进行到 S3/目标的托管交付,并维护一个 Glue Data Catalog 以便与 Athena/Redshift 进行发现和查询集成。


所有领域 · 数据存储和数据湖架构

练习这些题目 → · 在 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.

通过考试 →

浏览 Amazon →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品