我们有原始数据存储在S3中作为拼图。我要把这些数据的一个子集加载到Redshift。明确地说,Redshift数据将是原始数据的查询(连接、过滤器、聚合)的结果。
我原本以为我可以在雅典娜中构建视图,并将结果加载到Redshift中-但似乎没有那么简单!
Glue ETL作业需要S3或RDS源-不接受来自雅典娜的视图。(也无法爬网视图)。
下一个解决方案是使用Athena CTAS功能,将视图的结果写入S3,然后加载到RedShift中。但是,CTAS没有'overwrite‘选项。
所以问题..。有没有更简单的方法来解决这个问题呢?(似乎是一个简单的要求)有没有简单的变通方法来执行带有“覆盖”行为的CTAS?有了这一点,就必须有一个可以捆绑到计划作业中的解决方案--而且我认为已经引入了一个自定义脚本。
当一项简单的工作变得如此困难时,我不禁认为我错过了一些简单的东西!?
谢谢
发布于 2019-07-11 14:37:56
Ol‘reliable:使用lambda!Lambda函数可以通过编程方式连接到s3和redshift来执行SQL语句,并且您有许多选项来触发lambda (如果它只是一次性的,那么您可以让它成为一个调度的lambda)。您还可以使用cloudwatch日志来检查该过程。
但请注意:我注意到您将数据存储为拼花地板...普通红移不支持拼图格式化的数据。所以,如果你想存储结构等类型,你需要使用红移频谱。
https://stackoverflow.com/questions/56984948
复制相似问题