自动化 SQL 脚本运行到 AWS redshift 环境(Dev、preprod 和 prod)

Posted

技术标签:

【中文标题】自动化 SQL 脚本运行到 AWS redshift 环境(Dev、preprod 和 prod)【英文标题】:Automating SQL scripts run into AWS redshift environments (Dev, preprod & prod) 【发布时间】:2021-05-24 13:43:29 【问题描述】:

我希望将 SQL(DML 和 DML)自动运行到 AWS redshift 集群中,即一旦有人将 SQL 文件合并到 S3 存储桶中,它就应该在配置的环境中运行,例如 dev、preprod 和 prod。 有什么办法可以做到吗?

我的调查表明 AWS codepipeline 是解决方案之一,但是我不确定如何连接到 Codepipeline 中的 Redshift 数据库?

另一种方法是使用 Lambda 函数,但我猜它有 5 分钟的限制,并且某些 DDL/DML 可能需要超过 5 分钟才能运行。

问候, 谢伊

【问题讨论】:

【参考方案1】:

有很多选择,哪一个最好取决于许多因素,包括您团队的技能和预算。我会让社区权衡所有可能性。

我想建议使用 AWS 无服务器生态系统来执行这些功能。首先,Lambda 限制现在是 15 分钟,但这并不重要。最重要的开发是 Redshift Data API,它允许您在 Lambda 中启动查询,并在稍后完成其他 Lambda 的检查。见:https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html

使用 Redshift 数据 API 对 Redshift 和 Step Functions 进行即时访问以编排 Lambda 函数,您可以创建低成本、轻量级的基础架构来执行各种集成和操作。这些可以包括根据您的需要触发其他工具/服务。这不是所有情况下的最佳方法,但由于运行时间限制,不应排除基于 Lambda 的解决方案。

【讨论】:

以上是关于自动化 SQL 脚本运行到 AWS redshift 环境(Dev、preprod 和 prod)的主要内容,如果未能解决你的问题,请参考以下文章

将文件从 Mac (iCloud) 保存到 S3 存储桶 (AWS) 的脚本

在 AWS RDS 上自动更改 SQL 架构

AWS Glue PySpark 替换 NULL

AWS appium ios 测试总是失败

如何使用 AWS Redshift 执行 Bash 脚本

运行 AWS 胶水工作室 ETL 脚本时出现 ARN 角色授权错误