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

时间:2018-02-26 15:09:42

标签: sql amazon-redshift

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

请注意,添加这两个字段后,如果名为email的其他字段不为空,我们只能填充namepartner(这不是我们可以设置的内容由于合同义务,通过API因此必须在数据加载后执行此操作。

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

请帮助您设置一个为此Redshift表设置适当“触发器”的方法吗?即。让API按原样加载,并在每行加载后 - 如果partner为null,则使emailaddress为空。谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

  1. 设置针迹以将数据写入红移"分段"架构,哪个 已锁定安全性,以便普通用户无法查看数据。
  2. 设置一组redshift etl脚本以定期运行(使用crontab,airflow或类似程序来管理调度), 当新数据到达" staging"架构和 填写"报告"架构。这个时间应该是一致的 到针脚运行的时间。这个sql将进行更改 您需要基于"合作伙伴"。
  3. 还有另一种选择,即将postgres实例的针迹指向目标,使用postgres触发器,然后使用AWS DMS将该数据连续复制到redshift。这样会很好但可能会花费更多。