Amazon web services 过滤加载到红移中的数据

Amazon web services 过滤加载到红移中的数据,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,我们将原始数据存储在S3中作为拼花地板。 我想把数据的一个子集加载到红移中。 明确地说,红移数据将是原始数据的查询连接、筛选和聚合的结果 我原本以为我可以在雅典娜中构建视图,并将结果加载到红移中——但似乎没有那么简单 Glue ETL作业需要S3或RDS源-将不接受来自Athena的视图。 也无法对视图进行爬网 下一个解决方案是使用Athena CTAS功能,将视图的结果写入S3,然后加载到红移。 但是,CTA没有“覆盖”选项 所以问题。。。 有没有更简单的方法?这似乎是一个简单的要求 执行具有

我们将原始数据存储在S3中作为拼花地板。 我想把数据的一个子集加载到红移中。 明确地说,红移数据将是原始数据的查询连接、筛选和聚合的结果

我原本以为我可以在雅典娜中构建视图,并将结果加载到红移中——但似乎没有那么简单

Glue ETL作业需要S3或RDS源-将不接受来自Athena的视图。 也无法对视图进行爬网

下一个解决方案是使用Athena CTAS功能,将视图的结果写入S3,然后加载到红移。 但是,CTA没有“覆盖”选项

所以问题。。。 有没有更简单的方法?这似乎是一个简单的要求 执行具有“覆盖”行为的CTA是否有简单的解决方法? 有了它,就必须有一个可以捆绑到预定作业中的解决方案——我认为它已经引入了一个定制脚本

当一项简单的工作变得如此困难时——我忍不住觉得我错过了一些简单的事情


谢谢

Ol'reliable:使用lambda!Lambda函数可以通过编程方式连接到s3和redshift以执行SQL语句,并且对于触发Lambda的内容,您有许多选项。如果它只是一次性的,您可以将它设置为计划的Lambda。您还可以使用cloudwatch日志来检查流程


但要注意:我注意到您将数据存储为拼花地板。。。普通红移不支持拼花格式的数据。所以,如果你想存储结构等类型,你需要使用红移光谱。

谢谢,我会去看看我是否能把它们组合起来——我的第一个lambda!我会回来报告的,我终于成功了。这看起来相当复杂-删除现有的CTAS表和相关的S3文件,调用SQL创建新的CTA,以便结果进入S3,然后截断S3并将其复制到Redshift。同时,在CTA和红移拷贝运行的所有时间内,lambda都在运行-因此不必要的成本。尽管如此,它仍然有效!我相信我会寻找更精简、更简单的解决方案,但现在这已经填满了基本的概要,所以谢谢。很高兴你让它工作起来了!看起来你可能有多余的一步在那里。。。从您在问题中描述的方式来看,流程应该如下:创建与s3 bucket和redshift的连接,查询s3 bucket以获取压缩数据,然后循环遍历结果集并将其插入redshift。但我可能误解了你的问题。而且Lambda的便宜得令人难以置信。。。除了一些运行时/内存特别小/大的情况外,您描述的缩短流程可以工作,但从维护和组织的角度来看,不希望查询逻辑隐藏在lambda中的代码中,特别是当有几十个或数百个视图时。