【问题标题】:How to implement Oracle trigger kind of functionality in Redshift?如何在 Redshift 中实现 Oracle 触发器类型的功能?
【发布时间】:2018-07-08 02:56:45
【问题描述】:

我在 Oracle 中有一个触发器。任何人都可以帮助我如何将它复制到 Redshift 吗? DynamoDB 托管流类型的功能也可以使用。

【问题讨论】:

  • 红移中没有触发器。
  • Redshift 用于为真正的大数据(TB 级)构建数据仓库。您不会在基于 RAC 的 Oracle 数据仓库中使用触发器
  • 如果您尝试使用 Redshift 复制 Oracle 等事务性数据库的功能,那么您应该重新考虑 Redshift 是否适合在 AWS 上使用。它是一种与 Oracle 或 SQL Server 截然不同的数据库。使用 Aurora 实例会更好地为您服务。

标签: aws-lambda amazon-redshift


【解决方案1】:

Redshift 不支持触​​发器,因为它是一个数据仓库系统,旨在能够在有限的时间内导入大量数据。因此,如果每行插入都能够触发触发器,那么批量插入的性能就会受到影响。这可能是 Redshift 开发人员不费心支持这一点的原因,我同意他们的看法。触发类型的行为应该是在 OLTP 环境中运行的业务应用程序逻辑的一部分,而不是数据仓库逻辑的一部分。如果您想在插入或更新数据后在 DW 中运行一些代码,您必须将其作为数据管道的另一个步骤。

【讨论】:

  • 您知道如何在 Redshift 中以很少的性能成本实现此功能吗?
  • @SurajitKundu 这个问题太笼统了......正如我所说,在将数据加载到 Redshift 之后,您可以使用应该在触发器中运行的逻辑对新数据运行 SQL 脚本。如果您追加到某个大表并希望仅在新行上运行此逻辑,您可以先为新数据创建一个临时表,在 SQL 中进行所有后处理,然后将结果追加到目标表
猜你喜欢
  • 2019-09-19
  • 1970-01-01
  • 2020-12-23
  • 2018-10-21
  • 2017-07-05
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 2015-12-15
相关资源
最近更新 更多