我们将原始数据存储为实木复合地板。 我希望将一部分数据加载到Redshift中。 需要明确的是,Redshift数据将是原始数据查询(联接,过滤器,聚合)的结果。
我本来以为我可以在Athena中建立视图,然后将结果加载到Redshift中-但似乎并不是那么简单!
胶水ETL作业需要S3或RDS源-不会接受Athena的视图。 (也无法抓取视图)。
下一个解决方案是使用Athena CTAS功能,将视图结果写入S3,然后加载到RedShift中。 但是,CTAS没有“覆盖”选项。
所以问题... 有没有更简单的方法来解决这个问题? (似乎是一个简单的要求) 是否有简单的解决方法来执行具有“覆盖”行为的CTAS? 有了它,就必须是一个可以捆绑到预定作业中的解决方案-而且我认为已经可以引入自定义脚本了。
当一件简单的工作变得如此困难时-我不禁要以为我缺少简单的东西!?
谢谢
答案 0 :(得分:1)
Ol'可靠:使用lambda! Lambda函数可以通过编程方式连接到s3和redshift来执行SQL语句,并且对于触发lambda的原因,您有很多选择(如果只是一次性的,则可以将其作为计划的lambda)。您也可以使用cloudwatch日志来检查该过程。
但是请注意:我注意到您将数据存储为实木复合地板...普通Redshift不支持实木复合地板格式化的数据。因此,如果您要存储结构等类型,则需要使用Redshift Spectrum。