持续将AWS Aurora MySQL复制到Redshift

0

【以下的问题经过翻译处理】 有没有简单的方法告诉Glue将整个Aurora MySQL模式/所有表格仅复制到Redshift?此外,如何告诉它持续运行并更新Redshift?

profile picture
专家
已提问 5 个月前3 查看次数
1 回答
0

【以下的回答经过翻译处理】 1. 可以考虑使用Aurora zero-ETL方式将数据同步到redshift,具体请参考:https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.setting-up.html 2. 也可以考虑使用glue的方式将数据同步到redshift。此答案假设您已经设置了与 Aurora 和 Redshift 的 Glue 连接,并为 Aurora 数据库创建了一个爬虫程序,其包含路径类似于“schema/%”以获取该模式中的所有表。

鉴于此,当您在控制台中创建 Glue 作业时,您会从 Glue 数据目录中选择一个表作为源。作为目标,您选择“在数据目标中创建表”并选择之前创建的 Redshift 连接并指定目标表。创建该 Glue Job 后,您可以创建一个触发器以按计划运行它。

现在你已经为一个表设置好了,但如果你想为该架构中的每个表执行此操作,你将不得不修改 Glue 脚本,或者对要同步和循环的表列表进行硬编码通过代码中的它们,或者如果您使用的是 pyspark,您也可以使用 boto3 客户端从 Glue API 获取表列表。

如果你想连续运行这个,有几件事要提一下:

  1. 对于具有顺序主键的表,您可以启用作业书签,如此处所述,以便仅将新数据插入 Redshift:<https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations .html>
  2. 如果这不是一个选项,您可能需要在每次运行时截断表。您可以通过在编写动态框架时向连接选项添加“preactions”键来做到这一点。
“preactions”:“截断表 target_table;”

如果不执行其中任何一项操作,重复数据将继续加载到 Redshift 中。

对于正在进行的复制,数据库迁移服务可能是这里的一个选项。我意识到要设置更多的基础设施,但它使用二进制日志复制数据,因此效率更高。如果近实时复制对您很重要,它也可以连续执行此操作。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则