动手实验 | 使用 AWS Glue 创建爬虫并生成数据目录


  实验目标

使用 AWS Glue 的爬虫功能自动发现和分类存储在 Amazon S3 中的数据。熟悉如何通过配置爬虫,扫描指定 S3 路径中的数据文件,自动推断出数据结构(包括文件格式、列名、数据类型等),并在 Glue 数据目录中生成可直接查询的数据表。通过完成此实验,您将理解数据目录作为元数据中心的角色,为后续使用 Amazon Athena、Redshift Spectrum 或 ETL 作业进行数据分析奠定基础。

  技术要点

AWS Glue 是一项完全托管的数据提取、转换和加载(ETL)服务,其核心组件之一是数据目录。数据目录是一个持久化的元数据存储库,其结构与 Apache Hive 元存储兼容。爬虫(Crawler) 是连接数据源与数据目录的自动化工具,它可以连接到 S3、关系数据库、DynamoDB等多种数据源,可以适配 CSV、JSON、Parquet 等常见数据格式,能自动处理数据分区和格式变化,大幅减少手动维护元数据的工作量。

  作业步骤

本次采用AWS Console界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。

步骤一:准备数据源。
在 Amazon S3 中创建指定文件夹并上传测试数据(如 CSV 文件),记录数据源路径。

步骤二:创建并配置 IAM 角色。
在 IAM 控制台中,创建一个新角色,例如命名为 AWSGlueServiceRole-Lab。为该角色附加两个托管策略:AWSGlueServiceRole 和 AmazonS3ReadOnlyAccess。此角色将授予 Glue 访问 S3 数据和执行其他必要操作的权限。

步骤三:配置 AWS Glue 数据库与爬虫。
在 AWS Glue 控制台的数据目录”下,选择“数据库”,创建一个数据库(如 lab-db)。然后,在左侧导航栏选择“爬虫”,点击“添加爬虫”。在配置向导中,为爬虫命名(如 my-s3-crawler),选择刚刚创建的 IAM 角色。在“数据存储”步骤,添加 S3 数据路径。在“输出”步骤,选择目标数据库为 lab-db。其余设置可保持默认,最后审查并创建爬虫。

步骤四:运行爬虫并查看结果。
在爬虫列表中,选中新建的爬虫,点击“运行爬虫”。爬虫运行状态将显示为“正在运行”,完成后变为“已停止”。

  结果验证

1. 在 Glue 控制台的“表”列表中,筛选数据库为 lab-db,应该能看到至少一个由爬虫创建的新表。
2. 点击表名,在“架构”选项卡中,检查自动推断出的列名和数据类型是否与原始 CSV 文件匹配。
3. 通过使用 Athena 尝试查询表数据,若能正常读取数据,说明爬虫已成功生成可用的数据目录。