使用Step Functions编排Glue DataBrew

在本实验中,我们将了解如何使用 AWS Step Functions 编排Glue DataBrew作业以清洗和标准化数据,以及聚合两个数据集以供Athena 使用。

我们使用两个数据集 - sales, marketing , 这些文件由销售和市场营销团队维护,并且每月都会生成新文件。 为了充分利用这些数据,需要经过一系列准备步骤,然后汇总在一起,以便业务团队可以使用这些数据来创建报告。

Sales数据集包含企业的 20,000 多个销售机会记录的列表。 每条记录都有指定以下内容的字段:

  • 日期
  • 销售人员姓名
  • 机会所属的细分市场
  • 预计每月收入

Marketing数据集包含按天汇总的营销指标记录。 这些指标描述了各种渠道(例如网站、移动设备和社交媒体)的用户参与度,以及其他营销指标。

架构如下:

Solution

  • 步骤 1 – Marketing团队每月将完整的 CSV 文件上传到 S3 输入存储桶。
  • 步骤 2 – 每月运行的 EventBridge 规则会触发 Step Functions 状态机。
  • 步骤 3、4 – 我们收到两个单独的数据集(Sales和Marketing数据),因此 Step Functions 触发两个并行的 DataBrew 作业,这两个作业从现有日期字段创建额外的年、月和日列,并使用这三列进行分区。 这些作业将最终输出写入我们的 S3 输出存储桶。
  • 步骤 5、6、7、8 – 写入输出数据后,我们可以使用 Athena create table 语句在S3上创建外部表,然后使用 MCSK REPAIR 命令加载分区。 创建用于Sales和Marketing的Glue Data Catalog后,我们通过 Athena 运行额外的查询,该查询按年份和月份合并这两个表,以创建另一个具有聚合输出的表。
  • 步骤 9、10 – 作为 Step Functions 工作流程的最后一步,我们通过SNS 向用户发送通知,通知他们数据刷新作业已成功完成。
  • 步骤11、12 – 聚合表数据刷新后,业务用户可以通过Athena获取数据。 数据分析师还可以使用 Athena 分析完整刷新的数据集。