如何配置Glue Job从Aurora抽取数据至S3及相关疑问
Aurora到S3的Glue Job配置方案
下面分两种场景解答你的问题,涵盖直接配置(避开Catalog/Crawler)和标准流程(使用Catalog/Crawler)两种方式:
一、无需Glue Data Catalog和Crawler的直接实现方式
控制台可视化ETL的源下拉列表里确实找不到Aurora,但可以通过自定义Spark脚本直接连接Aurora抽取数据到S3,完全绕开Catalog和Crawler,步骤如下:
- 创建Glue Job时,选择「Spark script editor」(而非可视化ETL选项),选择Python或Scala作为脚本语言。
- 编写脚本实现JDBC读取Aurora、写入S3的逻辑,示例Python代码:
import sys from awsglue.context import GlueContext from awsglue.job import Job from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(sys.argv[0], sys.argv[1]) # 配置Aurora连接参数 aurora_url = "jdbc:mysql://your-aurora-cluster-endpoint:3306/your-database-name" table_name = "your-target-table" db_user = "your-db-username" db_password = "your-db-password" driver_class = "com.mysql.cj.jdbc.Driver" # PostgreSQL兼容版用org.postgresql.Driver # 读取Aurora数据 source_df = spark.read.format("jdbc") \ .option("url", aurora_url) \ .option("dbtable", table_name) \ .option("user", db_user) \ .option("password", db_password) \ .option("driver", driver_class) \ .load() # 写入S3(支持parquet/csv等格式) source_df.write.format("parquet") \ .mode("overwrite") \ .save("s3://your-target-bucket/path/to/output/") job.commit()
- 配置Job的核心依赖:
- 网络:将Glue Job部署到Aurora所在VPC的子网,配置安全组开放Aurora的端口(MySQL默认3306,PostgreSQL默认5432),确保Job能连通数据库。
- IAM权限:给Job执行角色添加S3读写权限、Glue服务权限,以及Aurora的访问权限(如果用IAM数据库认证,需额外配置角色关联)。
二、使用Glue Data Catalog和Crawler的标准流程
如果偏好可视化配置,需要先通过Crawler将Aurora的表结构同步到Catalog,之后就能在可视化ETL里选择Aurora作为数据源,步骤如下:
- 创建Glue JDBC连接:
- 在Glue控制台进入「连接」页面,选择「添加连接」,类型选JDBC。
- 填写Aurora的端点、端口、数据库名、用户名密码,配置VPC、子网、安全组确保网络连通,完成连接创建。
- 创建并运行Glue Crawler:
- 进入「爬虫」页面,新建爬虫,数据源选择刚才创建的JDBC连接,指定要爬取的数据库或表。
- 目标数据库选择Glue Catalog中的现有数据库,或新建一个。
- 启动爬虫,完成后Aurora的表结构会同步到Glue Catalog。
- 创建可视化ETL Job:
- 新建Job时选择「可视化ETL」,源下拉列表就能找到Catalog中同步好的Aurora表。
- 选择S3作为目标,配置输出格式(如Parquet)、存储路径,保存并运行Job即可。
关键疑问解答
- 能否直接将Aurora作为数据源?
控制台可视化ETL的源列表默认不显示Aurora,因为它属于JDBC数据源,需先通过Crawler同步到Catalog才能在可视化界面选择;但脚本模式可直接通过JDBC连接读取,无需依赖Catalog。 - 是否必须使用Glue Data Catalog和Crawler?
不是必须的。脚本模式可完全避开两者,适合需要自定义逻辑、快速实现的场景;使用Catalog和Crawler的优势在于可视化配置更简便,表结构变更后重新爬取即可同步元数据,适合多Job复用表结构、表结构频繁变动的场景。
内容的提问来源于stack exchange,提问作者DK93
相关产品推荐
相关产品推荐

