繁体   English   中英

将 AWS Postgres RDS 表导出到 AWS S3

[英]Exporting a AWS Postgres RDS Table to AWS S3

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

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

任何其他建议也将起作用。

您可以在 Data Pipeline 接口中定义复制活动,以将数据从 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 )。 该过程可以自动化,您可以每周运行一次。

我使用 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": [
  ]
}

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

暂无
暂无

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

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