2017-03-21 9 views
-2

複数のローカルcsvファイルをAWS RDSにアップロードする最も速い方法は何ですか? 私は数千のCSVファイルに100Gbsのデータをローカルマシンに置いています。複数のローカルcsvファイルをAWS RDSにアップロード

1)ローカルPostgresデータベースを作成し、ローカルPostgresデータベースにデータを挿入するために、あなたのCSVファイルをparce:

+0

? MySQL? Postgres? – talentedmrjones

+0

ポストグルです。ありがとう! – Stella

答えて

0

@spgの答えを拡張するには:彼はEC2 to RDSがMUCHよりもRDSの方が速いという点で正しいです。

  1. EC2インスタンスを起動し、Postgresクライアントpsqlをインストールします。
  2. scpを使用して、CSVファイルをEC2インスタンスに直接コピーします。
  3. はCSVからアイテムをインポートするためにはpsql/copyコマンドを使用します。RDS実行されているどのようなDBエンジン

    $psql target-db^ -U <admin user>^ -p <port>^ -h <DB instance name>^ -c "\copy source-table from '/path/to/source-table.csv' with DELIMITER ','"

See AWS Documentation

0

は、私はそれを達成するための2つの方法を参照してください。次に、pg_dumpデータベースのコンテンツをローカルの.sqlファイルに追加します。この.sqlファイルをS3にアップロードできます。ダンプファイルがS3に入ったら、ダンプファイルpsqlをpostgres RDSインスタンスに丸めたEC2インスタンスをスピンアップします。

2)s3 syncを使用して、CSVファイルをS3バケットにコピーします。次に、CSV行を1つずつ解析してRDSインスタンスにデータを挿入するEC2インスタンスをスピンアップします。

いずれの場合も、EC2インスタンスからRDSインスタンスにデータを挿入して、待ち時間。ローカルマシンからRDSインスタンスにデータを挿入する場合、これには非常に時間がかかります。 EC2インスタンスとRDSインスタンス間の通信は、AWSデータセンター内のネットワークが近接するため、はるかに高速になります。

関連する問題