web-dev-qa-db-ja.com

AWS PostgresRDSテーブルをAWSS3にエクスポートする

AWS Data Pipelineを使用して、PostgresRDSからAWSS3にデータをパイプしたかったのです。誰かがこれがどのように行われるか知っていますか?

より正確には、データパイプラインを使用してPostgresテーブルをAWSS3にエクスポートしたかったのです。データパイプラインを使用している理由は、このプロセスを自動化したいためです。このエクスポートは毎週1回実行されます。

他の提案も機能します。

8
error2007s
4
Min Zhou

データパイプラインインターフェイスでコピーアクティビティを定義して、PostgresRDSインスタンスからS3にデータを抽出できます。

  1. タイプSqlDataNodeのデータノードを作成します。テーブル名を指定し、クエリを選択します。
  2. ユーザー名、パスワード、データベース名とともにRDSインスタンスID(インスタンスIDはURLにあります。例:your-instance-id.xxxxx.eu-west-1.rds.amazonaws.com)を指定して、データベース接続をセットアップします。
  3. タイプS3DataNodeのデータノードを作成します。
  4. コピーアクティビティを作成し、SqlDataNodeを入力として設定し、S3DataNodeを出力として設定します。

別のオプションは、Aloomaのような外部ツールを使用することです。 Aloomaは、AmazonRDSでホストされているPostgreSQLデータベースからAmazonS3にテーブルを複製できます( https://www.alooma.com/integrations/postgresql/s )。プロセスは自動化でき、週に1回実行できます。

1
Dina Kaiser

MySQLとドキュメントを参照として使用して、パイプラインを最初から作成しました。

DataPipelineDefaultResourceRole && DataPipelineDefaultRoleというロールを配置する必要があります。

パラメータをロードしていないので、architechに入り、資格情報とフォルダを配置する必要があります。

それが役に立てば幸い。

{
  "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": [
  ]
}
1