添加“触发”后数据加载

Posted

技术标签:

【中文标题】添加“触发”后数据加载【英文标题】:Adding "trigger" post-data load 【发布时间】:2018-02-26 15:09:42 【问题描述】:

我们有一个 API 将数据实时输入我们的数据仓库。 到目前为止,我们排除了带有 PII 的字段,但我们希望开始将 emailname 作为提要的一部分。

请注意,添加这两个字段后,如果另一个名为 partner 的字段不为空,我们只能填充 emailname(这不是我们可以通过 API 设置的,所以必须由于合同义务,在数据加载后执行。

所以如果partner 为空:emailname 应该被覆盖为空。 如果partner 不为空:emailname 应保持原样(由 API 提供)。

您能否提供一种为此 Redshift 表设置适当“触发器”的方法? IE。让 API 按原样加载,并在每行加载后 - 如果 partner 为空 - 使 emailaddress 也为空。谢谢!

【问题讨论】:

请解释“我们有一个 API 将数据实时输入我们的数据仓库”的性质和方法 @JonScott 如果您需要了解详细信息,这就是我所指的:stitchdata.com/docs/integrations/webhooks/…。但是,我提到它只是为了解释我们有一个 ETL,它可以在持续复制的基础上将数据带入 Redshift,并且在它带入数据之后 - 我们希望按照上述清理数据。 【参考方案1】:

不幸的是,redshift 内部没有触发系统。

如果您无法在发送端或缝合内进行转换,并且数据安全很重要,这就是我会做的。

    设置缝合以将数据写入红移“暂存”模式,该模式 已锁定安全性,因此普通用户无法看到数据。 设置一组 redshift etl 脚本以定期运行(使用 crontab、airflow 或类似来管理调度), 它在新数据到达“暂存”模式时采用它,并且 填充“报告”模式。这个时间应该是一致的 到针迹运行的时间。此 sql 将使更改为 您需要基于“合作伙伴”。

还有另一种选择,将 postgres 实例上的缝合点作为目标,使用 postgres 触发器,然后使用 AWS DMS 将该数据连续复制到 redshift。这会很好,但可能会花费更多。

【讨论】:

谢谢你,我只是想确保我没有错过任何选项。 我想知道您是否可以使用视图来执行此操作。创建一个实现此逻辑的视图,然后授予对该视图的访问权限,而不是原始表。

以上是关于添加“触发”后数据加载的主要内容,如果未能解决你的问题,请参考以下文章

ajax调用后Jquery事件不会触发

在 Spring Boot 中从文件加载 SQL 触发器

RestKit/RKObjectMapping:从服务器加载数据后如何添加其他属性?

怎么给wpf添加一个窗体加载事件

如何在一个页面中触发一个事件后就刷新这个页面的另一部分呢?

go语言使用go-sciter创建桌面应用 窗口显示时,自动加载后端数据。