我如何基于AWS构建了一个层叠数据管道

基于AWS构建层叠数据管道

自动化、可扩展和强大

今天我要分享一些我一直引以为豪的数据工程项目构建经验。您将了解我使用这些工具和AWS组件的原因,以及我如何设计架构。

Image by Author

免责声明:本文内容受我与一个未具名实体的经验启发。然而,出于保持机密性和隐私的目的,某些关键商业利益和细节已被故意替换为虚构的数据/代码或省略。因此,实际商业利益的全部和准确范围被保留。

先决条件

  1. 熟悉Python
  2. 了解AWS组件,如DynamoDB、Lambda无服务器、SQS和CloudWatch
  3. 具备使用YAML和SAM CLI进行编码的经验

背景

假设您是一名数据工程师,需要不断更新数据仓库中的数据。例如,您负责定期与Dunder Mifflin Paper Co.的销售记录同步。(我知道这不是一个现实的场景,但请享受 :)!)数据通过供应商的API发送给您,您负责确保分支、员工(实际上只考虑销售人员)和销售的信息是最新的。提供的API有以下3个路径:

  1. /branches,接受分支名称作为查询参数,以检索指定分支的元数据;
  2. /employees,接受分支ID作为查询参数,以检索某个分支的所有员工信息,响应中包含一个键值对,指示员工的职业;
  3. /sales,接受员工ID作为查询参数,以检索销售人员的所有销售记录,响应中包含一个键值对,指示交易完成的时间。

一般来说,API的返回结果如下:

/branches路径:

{  "result": [   {     "id": 1,     "branch_name": "Scranton"…