定期将查询结果从 Redshift 移动到 S3 存储桶
Posted
技术标签:
【中文标题】定期将查询结果从 Redshift 移动到 S3 存储桶【英文标题】:Periodically moving query results from Redshift to S3 bucket 【发布时间】:2016-03-16 06:58:51 【问题描述】:我的数据在 Redshift 集群的一个表中。我想定期对 Redshift 表运行查询并将结果存储在 S3 存储桶中。
我将对 S3 存储桶中的这些数据运行一些数据转换,以输入另一个系统。根据 AWS 文档,我可以使用 UNLOAD
命令,但是有没有办法定期安排此操作?我搜索了很多,但没有找到任何相关信息。
【问题讨论】:
【参考方案1】:您可以使用Airflow 之类的计划工具来完成此任务。 Airflow 似乎无缝连接到 Redshift 和 S3。您可以有一个 DAG 操作,它定期轮询 Redshift 并将数据从 Redshift 卸载到 S3。
【讨论】:
气流中是否有用于连接红移和执行操作的包?我找不到一个 你可以试试boto。我过去用它来连接到 S3。【参考方案2】:我不相信 Redshift 有能力定期安排查询。您需要为此使用其他服务。您可以使用 Lambda 函数,也可以在 EC2 实例上安排 cron 作业。
【讨论】:
【参考方案3】:我相信您正在寻找 AWS 数据管道服务。
您可以使用 RedshiftCopyActivity (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-redshiftcopyactivity.html) 将数据从 redshift 复制到 s3。
我正在从上述网址复制相关内容以备将来使用:
"您还可以使用 RedshiftCopyActivity 从 Amazon Redshift 复制到 Amazon S3。有关更多信息,请参阅 S3DataNode。 您可以使用 SqlActivity 对已加载到 Amazon Redshift 的数据执行 SQL 查询。"
如果这有帮助,请告诉我。
【讨论】:
【参考方案4】:您应该尝试 AWS Data Pipelines。您可以安排它们定期或按需运行。我相信它会解决您的用例
【讨论】:
以上是关于定期将查询结果从 Redshift 移动到 S3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章