在本练习中,您将学习如何使用 Amazon EMR(Spark)和 AWS Glue(ETL)构建批量数据分析处理程序。为了使本实验的练习更加贴近实际的业务场景,我们模拟了完整的从数据产生(模拟历史数据和流数据)、数据存储、数据处理、到数据分析和数据可视化的完整过程(数据可视化在 Lab3/Lab4 中完成)。
具体可参考如下架构图:
组件说明如下:
• RDS 作为 Lab2 次实验的历史数据源,RMDBS 格式,包含人员信息表 tbl_customer、产品信息表 tbl_product、地址信息表 tbl_address、交易历史流水表 tbl_transaction,等 4 张表,参与批处理计算;
• Lab1 实验中 Kinesis 的输出(存放在 Lab1 指定的 S3 文件夹中,Json 格式),为近实时当日交易流水,也可以作为 Lab2 批处理的输入,参与批处理计算(注意:学员可以考虑使用 Lab1 的输出数据或者使用我们提前准备好的数据);
• S3 桶作为数据湖的存储基础,包含 input 文件夹(用于 EMR Spark 批处理的输入),存放通过 Glue ETL 加载进来的 RDS 历史数据源和 Kinesis 当日近实时数据,以 Parquet 格式存放。output 文件夹,存放 EMR Spark 批处理的结果数据(Parquet 格式);
详细的数据流步骤说明如下:
具体说明如下:
1.1 通过 Glue Crawler 功能爬取 RDS 库中 4 张表的元数据和 Kinesis 输出的数据的元数据;
1.2 Glue Crawler 将爬取 RDS和 Kinesis 的元数据,存入到 Glue 的 Data Catalog 数据库;
1.3 Glue ETL 通过 Data Catalog 识别 RDS 表元数据和 Kinesis 元数据,以便 ETL 作业引用;
1.4 Glue ETL 加载 4 张表数据和 Kinesis 输出的数据,到指定的 S3 存储桶的 input 文件夹中,作为 Spark 批处理的数据源输入;
1.5 通过 Glue Crawler 功能爬取 S3 桶中 input 文件夹中数据的元数据;
1.6 Glue Crawler 将爬取 input 文件夹中数据的元数据,存入 Glue 的 Data Catalog 数据库;
1.7 EMR Spark 环境通过 Data Catalog 获取 input 文件夹的元数据,进而开展批处理作业;
1.8 将 EMR Spark 批处理作业的结果输出至指定的 S3 存储桶的 output 文件夹中;
1.9 通过 Glue Crawler 功能爬取 S3 桶中 output 文件夹中数据的元数据;
2.0 Glue Crawler 将爬取 output 文件夹中数据的元数据,存入 Glue 的 Data Catalog 数据库;
2.1 利用 Athena 服务,查询 input、output 数据;
其中步骤 1.9/2.0/2.1 和 Lab3 有重叠,所以在此处不做演示或说明。
数据处理(ETL)
本实验演示数据处理的过程(ETL过程,此处我们使用AWS Glue服务),数据分析在下个章节。
连接到RDS
登录并打开AWS Glue控制台,选择添加数据库连接:
设置连接名称(Lab2-Glue-RDS-connection)和类型
选择对应配置(请输入之前部署 rds 时admin的密码,此处为wzlinux2021)

本教程介绍了如何利用Amazon EMR with Spark和AWS Glue构建批量数据分析流程。涉及步骤包括:通过Glue Crawler获取RDS和Kinesis数据的元数据,使用Glue ETL加载数据到S3,使用EMR Spark进行批处理,并将结果存储回S3。此外,还展示了如何设置RDS连接,创建ETL作业,以及在EMR上运行Spark任务进行数据分析。
最低0.47元/天 解锁文章
1841

被折叠的 条评论
为什么被折叠?



