AWS Glue 是一项完全托管的 ETL(提取、转换和加载)服务,可以轻松高效地对数据进行分类、清理和扩充,并在各种数据存储和数据流之间可靠地移动数据。
本文将讨论一种RDS数据迁移方案,即借助Glue将Aurora for MySQL中的表进行全量以及定时执行增量的方式迁移到AWS RedShift数据仓库中进行数据分析。
在开始之前,我们先来了解以下Glue中的常用组件都有哪些。
Crawler:连接到数据存储(源或目标),通过分类器不断更新数据架构,然后在 AWS Glue Data Catalog 中创建元数据表。
AWS Glue Data Catalog:AWS Glue 中的持久元数据存储。它包含表定义、作业定义以及其他用于管理您的 AWS Glue 环境的控制信息。
Data Stores、 Data Source、 Data Target:数据存储是持久存储数据的存储库。数据源是用作进程或转换输入的数据存储。数据目标是进程或转换写入的数据存储。
Job:执行 ETL 工作所需的业务逻辑。
Trigger:启动 ETL 任务。可以根据计划时间或事件来定义触发器。
接下来我们将动手演示如何通过Glue实现数据从Aurora迁移到Redshift。
Step 1.
创建Aurora for MySQL数据库。
登录数据库,并插入几条示例数据。
Step 2.
创建爬网程序
数据存储选择“JDBC” , 然后添加连接
填写数据库连接的JDBC URL,以及数据库所在的VPC,子网以及安全组。
添加用于存放爬网程序所创建的表的数据目录,其余选项可以不填写
运行爬网程序,可以看到爬取到的数据库表
添加作业
选择默认的脚本存放路径
启用作业书签,当多次运行作业的时候,Glue会根据书签记录的上次运行时处理的位置增量加载数据
选择一个表作为数据源
运作作业
登录Redshift,可以看到数据已经同步过来了
Step 3.
创建触发器,用于定时执行Job作业,实现自动增量导入数据
选择执行Job的频率
添加相应Job
启动“作业书签”,启动触发器并观察Redshift 中数据是否实现增量同步