gpt4 book ai didi

amazon-web-services - 安排从 AWS Redshift 到 S3 的数据提取

转载 作者:行者123 更新时间:2023-12-04 08:14:57 25 4
gpt4 key购买 nike

我正在尝试构建一个从 Redshift 中提取数据并将相同数据写入 S3 存储桶的作业。
到目前为止,我已经探索了 AWS Glue,但 Glue 无法在 redshift 上运行自定义 sql。我知道我们可以运行卸载命令并且可以直接存储到 S3。我正在寻找一种可以在 AWS 中进行参数化和调度的解决方案。

最佳答案

考虑为此使用 AWS Data Pipeline。

AWS Data Pipeline 是一种 AWS 服务,可让您定义和安排常规作业。这些作业称为管道。管道包含所需工作的业务逻辑,例如,将数据从 Redshift 提取到 S3。您可以安排管道以任何需要的频率运行,例如日常的。

管道由您定义,您甚至可以对其进行版本控制。您可以使用 Data Pipeline Architect 在浏览器中准备管道定义,或在您的计算机上使用本地 JSON 文件编写管道定义。管道定义由组件组成,例如 Redshift 数据库、S3 节点、SQL 事件以及参数,例如指定用于提取数据的 S3 路径。

AWS Data Pipeline 服务处理计划、管道中组件之间的依赖关系、监控和错误处理。

对于您的特定用例,我会考虑以下选项:

选项 1

使用以下组件定义管道:SQLDataNode 和 S3DataNode。 SQLDataNode 将引用您的 Redshift 数据库和 SELECT 查询以用于提取您的数据。 S3DataNode 将指向用于存储数据的 S3 路径。您添加 CopyActivity 事件以将数据从 SQLDataNode 复制到 S3DataNode。当此类管道运行时,它将使用 SQLDataNode 从 Redshift 检索数据,并使用 CopyActivity 将该数据复制到 S3DataNode。 S3DataNode 中的 S3 路径可以参数化,因此每次运行管道时它都不同。

选项 2

首先,使用 UNLOAD 语句定义 SQL 查询,用于将数据卸载到 S3。或者,您可以将其保存在文件中并上传到 S3。使用 SQLActivity 组件指定要在 Redshift 数据库中执行的 SQL 查询。 SQLActivity 中的 SQL 查询可以是对存储查询的 S3 路径的引用(可选),也可以只是查询本身。每当管道运行时,它将连接到 Redshift 并执行将数据存储在 S3 中的 SQL 查询。
选项 2 的限制:在 UNLOAD 语句中,S3 路径是静态的。如果您计划将每个数据提取存储在单独的 S3 路径中,您将必须修改 UNLOAD 语句以在每次运行它时使用另一个 S3 路径,这不是开箱即用的功能。

这些管道在哪里运行?

在带有 TaskRunner 的 EC2 实例上,这是 AWS 提供的用于运行数据管道的工具。您可以在管道运行时自动启动该实例,或者您可以引用已安装在其上的 TaskRunner 的运行实例。您必须确保允许 EC2 实例连接到您的 Redshift 数据库。

相关文档:

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/what-is-datapipeline.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-redshiftdatabase.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqldatanode.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqlactivity.html

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-using-task-runner.html

关于amazon-web-services - 安排从 AWS Redshift 到 S3 的数据提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com