【问题标题】:Is there a way to sync table data from DynamoDB to Redshift?有没有办法将表数据从 DynamoDB 同步到 Redshift?
【发布时间】:2019-10-02 06:45:31
【问题描述】:

我们目前正在将 Amazon RDS 用于我们的数据库,并计划迁移到 DynamoDB 以扩展我们的消息传递数据库。但是已经在我们想要继续使用的 MySQL 表上设置了很多分析。

将数据从 DynamoDB 同步到 Redshift 的最佳方式是什么?

【问题讨论】:

  • 无法同步,但可以使用redshift COPY命令。
  • @JonScott 我们可以定期将数据复制到 redshift COPY 命令,包括创建、更新和删除更改吗?
  • 我很困惑。您说您希望从 Redshift 迁移到 DynamoDB,然后您提到 MySQL 表,然后您询问如何从 DynamoDB 同步到 Redshift。您能否澄清一下您实际询问的是什么转移?
  • @JohnRotenstein 再次阅读 - OP 说“我们目前正在将 Amazon RDS 用于我们的数据库,我们正计划迁移到 DynamoDB”我假设 RDS mysql 是最新的。
  • 糟糕!我的错,谢谢。所以我认为这意味着 OP 想要从 RDS 迁移到 DynamoDB,并且他们有一种将数据从 RDS 传输到 Redshift 的现有方法,他们希望将其更改为从 DynamoDB 传输到 Redshift。这是正确的阅读方式吗?

标签: amazon-dynamodb amazon-redshift database-replication tungsten-replicator


【解决方案1】:

对于这类问题(源数据库同步到 Redshift)你基本上有两种常见的解决方案:

  • (A) 创建定期轮询输入数据库、检测增量并将检测到的增量数据提取到 Redshift 的应用程序
  • (B) 使用 AWS Kinesis Firehose

选项 B 更容易实施,因为您基本上为此目的使用专用 AWS 服务。但是,它仅适用于 Firehose 支持的源数据库。幸运的是,支持 DynamoDB 作为 Firehose 的输入源。此外,您需要计算与 Kinesis 本身、用于记录转换的 Lambda 等相关的额外成本,以确保从经济角度来看此选项对您有效。请参阅 this 文章,了解如何使用 Firehose 将 DynamoDB 流与 Kinesis 连接。

选项 A 通常是 Firehose 不支持的源数据库的有效解决方案。

【讨论】:

  • 这并不像将 DynamoDB 实例连接到 Kinesis Firehose 那样简单。您首先需要启用和配置 DynamoDB 流,然后创建一个 Lambda 函数来读取 DynamoDB 流并将其推送到 Firehose,然后 Firehose 会将数据写入 Redshift。
  • 如果您想将数据直接从 DynamoDB 移动到 Redshift,您可以使用 COPY 语句 (docs.aws.amazon.com/redshift/latest/dg/…) - 但是这种方法只能复制整个 DynamoDB表,而不是增量更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 2021-06-16
  • 2013-10-24
  • 2017-11-19
  • 1970-01-01
相关资源
最近更新 更多