2013-11-28 18 views
12

私はAWSとPostgreSQLの新機能です。s3からpostgresql rdsにデータファイルをインポートする方法

  1. 私は、複数のS3バケット
  2. 私はEC2(AmazonでのLinux 64ビット)実行しているにいくつかのドキュメントをアップロードした
  3. (た上でRDSを使用)PostgreSQLのDBを作成している

私はデータパイプラインを使用しようとしましたが、Postgres用のものは何もありません(テンプレート)。自分のRDSインスタンスに接続し、ポストグルからデータをインポート/エクスポートする方法を理解できません。

S3バケットからEC2を取得し、データパイプラインテンプレートが利用可能でなく、Postgresにインポートできると仮定しました。

:それは可能であるならば、私は、可能な場合はお知らせくださいどのように..

+1

理想的にはAmazonがファイルパスのS3のURLをサポートするために、 'COPY'コマンドを拡張したいだろうが、今のあなたは、クライアント経由でS3からデータをフェッチする必要がある場合、私は驚かないだろうそれを 'COPY'を介してPostgreSQLに送ります。 –

+0

はい、RDSでは、通常、EC2インスタンスからロードする必要があります。 Redshiftのようなカスタムデータベースシステムだけがs3からの直接ロードを許可する傾向があります。 – datasage

+0

ありがとうございます。どのようにこれを達成するための例を提供することができますか?私はEC2をS3に、EC2をRDSに接続することができます。私はS3からEC2にファイルを引き出す方法について考えていますが、その時点で、EC2からPostgresql DBにファイルをロードする方法がわかりません。助けてください、または私に指示を教えてください。私は数日間オンラインで検索しています.. – user3044239

答えて

2

を使用すると、PSQLクライアントを起動し、EC2インスタンス上のRDSに接続できる場合は、次のコマンドを使用することができるはず見当がつかない\ copy customer_orders from 'myfile.csv' from DELIMITER '、'

9

AWSは、Redshiftで行ったように、RDS PostgresqlでCOPYコマンドを拡張します。しかし、今のところ、彼らは持っていないし、私たちはそれを自分で行う必要があります。

  1. ローカルディレクトリ
  2. 使用はpsqlにS3からダウンロードする資格情報
  3. 使用aws s3 syncaws s3 cp commmandsであなたのawscliを設定
  4. (それがデフォルトでインストールされている場合があります)あなたのEC2のボックスにawscliをインストールします。コマンドを\COPYに送信してください(クライアントディレクトリからコピーするには\が必要です)

例:

aws s3 cp s3://bucket/file.csv /mydirectory/file.csv 
psql -h your_rds.amazonaws.com -U username -d dbname -c '\COPY table FROM ''file.csv'' CSV HEADER' 
+2

これはまだ実際か、AmazonはRedshiftsの機能を今更新していますか?私はまったく同じ質問ですが、私はこれを自動化し、毎週S3のファイル(.csv)をPostGresql RDSインスタンスにインポートする必要がある –

5

これまでの回答はAWSの最近の出来事に取って代わりました。

データパイプラインサービス(これは他の多くのデータ変換タスクにも使用できますが、これは単なる1つの例です)を使用したS3-to-RDS-データベースのロードが優れています。

このAWSの記事は、S3-to-RDS-MySQL用の記事です。 RDS-Postgresによく似ているはずです。

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html

関連する問題