持续将AWS Aurora MySQL复制到Redshift

0

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

profile picture
EXPERTE
gefragt vor 6 Monaten4 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen