amazon-s3 - 将 Aurora 数据迁移到 Redshift DWH 的好方法是什么?
问题描述
我们需要将各种 Aurora 数据库中的数据移动和整合到 Redshift 数据库中。
由于我们的端点是 AWS 服务,我们正在学习 Glue、Pipeline 和 Matillion。
Glue 是否打算用于像这样的“传统 ETL”?可以使用 Glue 来创建和填充“正在运行”的事实和维度表吗?
我读到一个常见的模式是使用 Glue 运行的 apache spark 引擎转换数据 → 将数据移动到 S3 → 将数据移动到 Redshift。
为什么在应用昏暗/事实逻辑后需要将数据移动到存储桶中?
使用 Python/Scala 创建这些暗淡/事实转换是否可行(因为 Glue 没有 UI 转换)?
我还了解到,在某些情况下,将数据存储在 Redshift 中并保持与原点相同的结构(没有事实/暗淡)会更有效。是否有规则可以尝试查看何时会出现这种情况?
Matillion 看起来是一个不错的选择(类似于 SSIS),但似乎有点贵。
谢谢你的帮助。
解决方案
如果您的 Aurora 数据库是基于 Postgres 的,那么我建议从Redshift 的 Federated Query开始。FQ 允许您直接从 Redshift 查询您的 Aurora Postgres 表。使用 FQ,您可以设置一个简单的同步过程,将数据从 Aurora 导入 Redshift(请参阅这些示例 SP)。
如果您的 Aurora 数据库基于 MySQL,或者您的数据量非常大,您可能希望首先将数据从 Aurora 导出到 S3,然后将数据提取加载到 Redshift。
随着您熟悉 Redshift,您可以将分配键和排序键添加到表中以提高性能。Redshift Advisor 将根据您运行的查询建议有效的分布键和排序键。
这个过程应该允许您快速开始使用 Redshift,然后您可以在以后需要它们的独特和特定功能时开始使用 Glue 或 Matillion。
推荐阅读
- powershell - 是否有显示实际机器的 AD 锁定脚本
- javascript - Webpack 中的强制代码修剪、C 风格的宏?
- html - “元素”类型上不存在 StencilJs 值
- python - 你可以在 Python Tkinter 中重新缩放 PhotoImage 吗?
- android - Gredlew 任务名 - 命令未运行 Android Studio 终端
- javascript - 如何将道具传递给循环内的样式化组件
- azure - 我可以将 Azure Batch 配置为使用 Nvidia VM 映像吗?
- r - R Shiny:下载预设的 .csv 文件
- ios - 基于接近度在后台对 iBeacons 进行测距
- linux - 如何在 Linux 上重新编译 ACPI 表?