首页 文章

AWS Glue:Redshift Upsert

提问于
浏览
1

在做了一些研究之后,我发现由于Redshift不支持merge / upsert,一些人正在使用登台表来更新/插入记录 . 由于Redshift也不支持程序(触发器等),是否有人建议他们如何自动化这个过程(lambda,数据管道等)?

1 回答

  • 1

    我认为没有一个正确的答案 . 从广义上讲,我知道有两种基本方法 .

    • ETL中的一个显式步骤's performed as you'重新加载数据(使用this pattern

    • 定期处理upsert的批处理cronjob

    我相信,选项1可能是最好的方法 . AWS Data Pipeline通过将 insertMode 字段设置为 OVERWRITE_EXISTING 来支持RedshiftCopyActivity .

    在我的工作中,我们通过在同一个sql事务中运行load命令到staging表和upsert,在我们的数据管道中手动完成了这个操作 .

    另一种方法(选项2)是让您的ETL只是将新数据附加到临时表(您可以使用AWS Firehose进行此类操作),然后将其与计划的cronjob一起使用以按计划更新目标表 . 这样做的好处是你的ETL更简单,但是cronjob成为另一个失败点 .

相关问题