【问题标题】:AWS S3 to RDS Serverless Aurora (PostgreSQL) programatically以编程方式从 AWS S3 到 RDS 无服务器 Aurora (PostgreSQL)
【发布时间】:2020-05-27 13:17:36
【问题描述】:

我正在寻找一种可以每天将 6 到 8 个表引入 RDS 的解决方案。有问题的表具有特定的键关系,因此应将其合并到数据库中。

目前,我很难找到一个最佳解决方案,以编程方式为 RDS 中的 6-8 个表加载数据。目前哪种服务最适合这样做?

拉姆达

对于 Lambda 的内存占用来说,数据有点太大了。

数据管道

不清楚这将如何与无服务器 Aurora 一起使用,并且这还需要计划的 ec2 实例(与无服务器模式相冲突)。

Load S3 Data into Amazon RDS MySQL Table - AWS Data Pipeline

胶水?

Glue 似乎更适合 Redshift。

所以我有点不知道最好的解决方案设计是什么。帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services integration amazon-rds aws-glue


    【解决方案1】:

    您应该尝试 AWS Date Pipeline。简而言之,这些是步骤:

    • 创建角色并附加 S3 存储桶策略
    • 设置集群参数组
    • 编辑参数组以使用角色
    • 重启 Aurora 实例

    这是Loading Data into an Amazon Aurora MySQL,用于 MySQL。

    用 PostgreSQL 加载数据应该很相似。

    【讨论】:

      【解决方案2】:

      您当然可以使用 AWS Glue。 Glue 确实对 Redshift 有一些偏见,但它同时提供 Pyspark 和 Python 作业,几乎可以用来做任何事情。把它想象成一个没有 15 分钟时间限制的 Lambda,并在 python 中写下你想要的任何数据移动逻辑。

      由于 aurora serverless 托管在 VPC 中,一旦您在同一 VPC 中托管胶水作业,您可能必须创建一些 VPC 网关端点才能访问某些内容,但这只是一次性的事情。

      我实际上有一个非常相似的用例,并使用 Glue 以编程方式将数据从 S3 加载到 Aurora Serverless (MySQL):

      • 从 Glue 控制台创建到 Aurora 无服务的 JDBC 连接
      • 编写了一个 Python 粘合作业以从 S3 读取数据并使用 pymysql 将其加载到 Aurora DB 中。 (这使用了第 1 步中建立的连接,这意味着作业将托管在与数据库相同的 VPC 中。因此,要访问 S3,必须创建一个网关端点)
      • 通过添加启动触发器和失败扩展来使用此作业创建工作流
      • 编写了一个 S3->SQS 触发器和一个 Lambda,只要队列中有新消息,就会触发粘合工作流。

      您可以参考此post 了解更多详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-16
        • 2019-06-15
        • 1970-01-01
        • 2016-05-17
        • 1970-01-01
        • 1970-01-01
        • 2020-05-24
        • 2021-12-28
        相关资源
        最近更新 更多