添加“触发”后数据加载
Posted
技术标签:
【中文标题】添加“触发”后数据加载【英文标题】:Adding "trigger" post-data load 【发布时间】:2018-02-26 15:09:42 【问题描述】:我们有一个 API 将数据实时输入我们的数据仓库。
到目前为止,我们排除了带有 PII 的字段,但我们希望开始将 email
和 name
作为提要的一部分。
请注意,添加这两个字段后,如果另一个名为 partner
的字段不为空,我们只能填充 email
和 name
(这不是我们可以通过 API 设置的,所以必须由于合同义务,在数据加载后执行。
所以如果partner
为空:email
和name
应该被覆盖为空。
如果partner
不为空:email
和 name
应保持原样(由 API 提供)。
您能否提供一种为此 Redshift 表设置适当“触发器”的方法? IE。让 API 按原样加载,并在每行加载后 - 如果 partner
为空 - 使 email
和 address
也为空。谢谢!
【问题讨论】:
请解释“我们有一个 API 将数据实时输入我们的数据仓库”的性质和方法 @JonScott 如果您需要了解详细信息,这就是我所指的:stitchdata.com/docs/integrations/webhooks/…。但是,我提到它只是为了解释我们有一个 ETL,它可以在持续复制的基础上将数据带入 Redshift,并且在它带入数据之后 - 我们希望按照上述清理数据。 【参考方案1】:不幸的是,redshift 内部没有触发系统。
如果您无法在发送端或缝合内进行转换,并且数据安全很重要,这就是我会做的。
-
设置缝合以将数据写入红移“暂存”模式,该模式
已锁定安全性,因此普通用户无法看到数据。
设置一组 redshift etl 脚本以定期运行(使用 crontab、airflow 或类似来管理调度),
它在新数据到达“暂存”模式时采用它,并且
填充“报告”模式。这个时间应该是一致的
到针迹运行的时间。此 sql 将使更改为
您需要基于“合作伙伴”。
还有另一种选择,将 postgres 实例上的缝合点作为目标,使用 postgres 触发器,然后使用 AWS DMS 将该数据连续复制到 redshift。这会很好,但可能会花费更多。
【讨论】:
谢谢你,我只是想确保我没有错过任何选项。 我想知道您是否可以使用视图来执行此操作。创建一个实现此逻辑的视图,然后授予对该视图的访问权限,而不是原始表。以上是关于添加“触发”后数据加载的主要内容,如果未能解决你的问题,请参考以下文章