繁体   English   中英

AWS:在红移中自动查询

[英]AWS: Automating queries in redshift

我想自动化每天运行的 redshift 插入查询。

我们实际上使用的是 Aws 环境。 有人告诉我使用 lambda 不是正确的方法。 哪个是在 Redshift 中自动执行查询的最佳 ETL 过程。

要在 Redshift 上自动化 SQL,您有 3 个选项(至少)

简单 - cron使用 EC2 实例并在其上设置一个 cron 作业来运行您的 SQL 代码。

psql -U youruser -p 5439 -h hostname_of_redshift -f your_sql_file

功能丰富 - Airflow(推荐)如果您有一个复杂的计划要运行,那么值得花时间学习和使用 apache 气流。 这也需要在服务器(ec2)上运行,但提供了很多功能。

https://airflow.apache.org/

AWS 无服务器 - AWS 数据管道(不推荐)

https://aws.amazon.com/datapipeline/

Cloudwatch->Lambda->EC2 方法由 John Rotenstein 描述如下,当您希望以 AWS 为中心时,这是一个很好的方法,它比拥有一个专用的 EC2 实例便宜。

一种选择:

  • 按计划使用Amazon CloudWatch Events触发 AWS Lambda 函数
  • Lambda 函数使用用户数据脚本启动 EC2 实例。 关闭行为配置为Terminate
  • EC2 实例执行用户数据脚本
  • 脚本完成后,它应该调用sudo shutdown now -h关闭和终止实例

EC2 实例将仅按每秒计费。

您可以使用 boto3 和 psycopg2 通过创建 python 脚本并将其安排在 cron 中每天执行来运行查询。

您还可以尝试将您的查询转换为 Spark 作业,并安排这些作业每天在 AWS Glue 中运行。 如果你觉得很难,你也可以查看 Spark SQL 并试一试。 如果您要使用 Spark SQL,请记住内存使用量,因为 Spark SQL 是非常占用内存的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM