添加“触发器”后数据加载

问题描述 投票:4回答:1

我们有一个API实时向我们的数据仓库提供数据。到目前为止,我们用PII排除了字段 - 但是我们想开始将emailname作为Feed的一部分。

请注意,添加这两个字段后,如果一个名为email的不同字段不为空(我们无法通过API设置,因此必须在数据加载后执行此操作),我们只能填充namepartner由于契约义务。

因此,如果partner为null:emailname应该被覆盖为null。如果partner不为null:emailname应保持原样(由API提供)。

你能帮忙设法为这个Redshift表设置一个合适的“触发器”吗?即。让API按原样加载,并在每行加载后 - 如果partner为null-使emailaddress为null。谢谢!

sql amazon-redshift
1个回答
1
投票

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

如果您不能在发送方或针脚内进行转换,并且数据是安全的很重要,我会这样做。

  1. 设置针脚以将数据写入红移“暂存”模式,该模式已锁定安全性,以便普通用户无法查看数据。
  2. 设置一组redshift etl脚本以定期运行(使用crontab,airflow或类似程序来管理调度),该数据在新数据到达“staging”模式时生成并填充“报告”模式。这个时间应该与针脚运行的时间一致。此sql将根据您的需要根据“合作伙伴”进行更改。

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

© www.soinside.com 2019 - 2024. All rights reserved.