簡體   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