【问题标题】:How can I schedule Postgres queries to run on Amazon RDS?如何安排 Postgres 查询在 Amazon RDS 上运行?
【发布时间】:2017-07-23 13:01:46
【问题描述】:

我尝试安装 pgAgent,但由于亚马逊不支持它,我不知道如何在不直接使用 Cron 作业和 psql 的情况下安排 postgres 作业。这是我在 Amazon RDS 上得到的:

以下命令给出了相同的结果:

CREATE EXTENSION pg_cron;

【问题讨论】:

标签: postgresql scheduled-tasks amazon-rds


【解决方案1】:

为此,我现在一共有三个选项: 1.)AWS Lambda 2.)AWS 胶水 3.)任何小型 EC2 实例(Linux/Windows)

1.)AWS Lambda: 您可以使用 pg8000 或 psycopg2 等 postgres connectvity python 模块来连接并创建光标到您的目标 RDS。 您可以将您的 sql 作业代码/您的 SQL 语句作为输入传递给 lambda。如果它们很少,您可以在您的 lambda 中编写整个作业,如果没有,您可以使用 DynamoDB 将其作为输入传递给 lambda。 您可以使用 cloudwatch 事件制定 cron 计划,以便在您需要时触发 lambda。 所需工具:DynamoDB、AWS Lambda、Python、Postgres python 连接模块。

2.)AWS Glue AWS Glue 的工作原理也几乎相同。您可以选择直接在那里连接到您的 RDS 数据库,并且可以在那里安排您的作业。

3.)Ec2 实例: 创建任何小型 ec2 实例(Windows 或 linux)并设置您的 cron/bat 作业。

【讨论】:

    【解决方案2】:

    2018 年 10 月 10 日,AWS Lambda 推出了对长时间运行函数的支持。客户现在可以将其 AWS Lambda 函数配置为每次执行最多运行 15 分钟。以前,Lambda 函数的最长执行时间(超时)为 5 分钟。使用运行时间更长的函数,这是一项要求很高的功能,客户可以更高效地执行大数据分析、批量数据转换、批处理事件处理和统计计算。

    【讨论】:

      【解决方案3】:

      您可以使用Amazon CloudWatch Events 按计划触发 Lambda 函数,但它最多只能运行 15 分钟 (https://aws.amazon.com/about-aws/whats-new/2018/10/aws-lambda-supports-functions-that-can-run-up-to-15-minutes/?nc1=h_ls)。

      您还可以运行t2.nano Amazon EC2 实例(按需约 50 美元/年,或 34 美元/年作为预留实例)来运行常规 cron 作业。

      【讨论】:

        猜你喜欢
        • 2010-12-11
        • 2020-09-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 2013-12-05
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多