2

我是 Redshift 和 AWS 生态系统的新手。我正在寻找将数据更改从本地 Oracle EBS 表流式传输到 Redshift 的选项或最佳实践。

  1. 是否应该将 S3 用作暂存区?因此 Oracle->S3->Redshift?这对将 Oracle 表实时流式传输到 Redshift 有好处吗?
  2. 有什么方法可以绕过 S3 分段并执行 Oracle->AWS Kinesis(Firehose)->Redshift?如果是这样,是否有这样的场景我可以阅读?
  3. 使用 Kafka 而不是 AWS Kinesis 怎么样?
  4. AWS Kinesis 或 Kafka 是否可以直接从本地 Oracle 实例中提取?
  5. 是否有其他替代品/组件、ETL 工具可将近实时或近乎实时的数据加载到 Redshift?

有大量表要从本地 Oracle 流式传输。我是 Redshift 的新手,但熟悉 Oracle、SQL Server、PG。对不起,如果我在这里完全被打败了。

请帮助:)任何想法和/或参考将不胜感激......

4

1 回答 1

3

根据此处的文档,1 和 2 本质上是相同的。您不会通过使用 firehose 绕过 S3,只需将其遮盖即可。如果您在多个集群上拥有大量表,那么 Firehose 目前就毫无用处。当然,除非您计划自动化向 AWS Support 发送支持请求以增加限制的过程(我在考虑,别笑)。

我会使用S3中的 COPY 命令进行加载。

插入目前很慢,我的意思是SLOW。不要使用会在后台生成插入语句的方法。

我的用例:Apache Storm 将事件流式传输到 Redshift,使用 S3 作为暂存区。每天每张表数十万个事件,每个数据库几十个表,每个集群几个数据库,几个集群都可以正常工作。我们使用 API Gateway、AWS Lambda 和 S3 作为第二个流程的暂存区。每天处理数以万计的事件、几个不同的集群、每个集群上的多个数据库、每个数据库中以这种方式加载一个表的情况也同样适用。

理论上,您可以使用 SSH 发出 COPY 命令,但是您必须在(等待它)... S3 上准备清单文件。所以我不知道你为什么不使用 S3 来进行数据存储。

至于从本地 Oracle 流式传输数据到 S3,这完全是一个完全不同的话题,您应该从精通 Oracle 的人那里寻找答案。我会看看 CDC,但我不是 Oracle 专业人士,所以无法判断这是否是一个好方法。

我希望这有帮助。

于 2017-05-12T15:58:40.127 回答