【问题标题】:Exporting a AWS Postgres RDS Table to AWS S3将 AWS Postgres RDS 表导出到 AWS S3
【发布时间】:2016-10-06 14:51:51
【问题描述】:

我想使用 AWS Data Pipeline 将数据从 Postgres RDS 传输到 AWS S3。有人知道这是怎么做到的吗?

更准确地说,我想使用数据管道将 Postgres 表导出到 AWS S3。我使用 Data Pipeline 的原因是我想自动化这个过程,并且这个导出每周运行一次。

任何其他建议也可以。

【问题讨论】:

    标签: postgresql amazon-web-services amazon-s3 amazon-rds amazon-data-pipeline


    【解决方案1】:

    【讨论】:

    • 这段代码是给MySQL的,postgres可以用吗?给定管道内的驱动程序jdbc:mysql
    【解决方案2】:

    您可以在数据管道接口中定义复制活动,以将数据从 Postgres RDS 实例提取到 S3。

    1. 创建 SqlDataNode 类型的数据节点。指定表名并选择查询。
    2. 通过指定 RDS 实例 ID(实例 ID 在您的 URL 中,例如 your-instance-id.xxxxx.eu-west-1.rds.amazonaws.com)以及用户名、密码和数据库名称来设置数据库连接.
    3. 创建一个 S3DataNode 类型的数据节点。
    4. 创建一个 Copy 活动并将 SqlDataNode 设置为输入,将 S3DataNode 设置为输出。

    另一种选择是使用 Alooma 等外部工具。 Alooma 可以将表从托管 Amazon RDS 的 PostgreSQL 数据库复制到 Amazon S3 (https://www.alooma.com/integrations/postgresql/s3)。该过程可以自动化,您可以每周运行一次。

    【讨论】:

      【解决方案3】:

      我使用 MySQL 和文档作为参考从头构建了一个管道。

      你需要有适当的角色,DataPipelineDefaultResourceRole && DataPipelineDefaultRole。

      我还没有加载参数,所以,你需要进入架构并放入你的凭据和文件夹。

      希望对你有帮助。

      {
        "objects": [
          {
            "failureAndRerunMode": "CASCADE",
            "resourceRole": "DataPipelineDefaultResourceRole",
            "role": "DataPipelineDefaultRole",
            "pipelineLogUri": "#{myS3LogsPath}",
            "scheduleType": "ONDEMAND",
            "name": "Default",
            "id": "Default"
          },
          {
            "database": {
              "ref": "DatabaseId_WC2j5"
            },
            "name": "DefaultSqlDataNode1",
            "id": "SqlDataNodeId_VevnE",
            "type": "SqlDataNode",
            "selectQuery": "#{myRDSSelectQuery}",
            "table": "#{myRDSTable}"
          },
          {
            "*password": "#{*myRDSPassword}",
            "name": "RDS_database",
            "id": "DatabaseId_WC2j5",
            "type": "RdsDatabase",
            "rdsInstanceId": "#{myRDSId}",
            "username": "#{myRDSUsername}"
          },
          {
            "output": {
              "ref": "S3DataNodeId_iYhHx"
            },
            "input": {
              "ref": "SqlDataNodeId_VevnE"
            },
            "name": "DefaultCopyActivity1",
            "runsOn": {
              "ref": "ResourceId_G9GWz"
            },
            "id": "CopyActivityId_CapKO",
            "type": "CopyActivity"
          },
          {
            "dependsOn": {
              "ref": "CopyActivityId_CapKO"
            },
            "filePath": "#{myS3Container}#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
            "name": "DefaultS3DataNode1",
            "id": "S3DataNodeId_iYhHx",
            "type": "S3DataNode"
          },
          {
            "resourceRole": "DataPipelineDefaultResourceRole",
            "role": "DataPipelineDefaultRole",
            "instanceType": "m1.medium",
            "name": "DefaultResource1",
            "id": "ResourceId_G9GWz",
            "type": "Ec2Resource",
            "terminateAfter": "30 Minutes"
          }
        ],
        "parameters": [
        ]
      }
      

      【讨论】:

        【解决方案4】:

        您现在可以在 postgres 中使用 aws_s3.query_export_to_s3 命令来执行此操作 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html

        【讨论】:

        猜你喜欢
        • 2020-09-07
        • 2022-06-13
        • 2020-06-21
        • 2021-02-06
        • 2014-12-24
        • 2021-04-19
        • 2019-06-04
        • 1970-01-01
        • 2015-01-03
        相关资源
        最近更新 更多