0

Amazon Web Servicesでホストされているリレーショナルデータベース(MySQL)を作成しました。私が次にやりたいことは、ローカルCSVファイルのデータをこのデータベースにインポートすることです。誰かが私にそれについて行く方法の概要を教えてくれたら、本当に感謝します。ありがとう!Amazon Web ServicesにCSVファイルからデータをインポートするRDS MySQLデータベース

答えて

1

これは、MySQLのコマンドラインを使用することで最も簡単で最もハンズオフです。大きな負荷の場合は、新しいEC2インスタンスをスピンアップし、MySQL CLツールをインストールし、そのマシンにファイルを転送することを検討してください。

mysql> LOAD DATA LOCAL INFILE 'C:/upload.csv' INTO TABLE myTable FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' IGNORE 1 LINES; 

あなたの場合、あなたのファイルの詳細と一致し、(ドキュメントにもっとたくさん)ヘッダを無視する

また
mysql> LOAD DATA LOCAL INFILE 'C:/upload.csv' INTO TABLE myTable; 

オプション:次に、CLを経由してデータベースに接続した後、あなたのような何かをしたいですCLを使用することを躊躇して、MySQL Workbenchをダウンロードしてください。それはどんなprobもAWS RDSに接続しません。

考え閉会:コマンドが動作しますので、AWS」オーロラRDSは、MySQL互換性がある

  • MySQL LOAD DATA Docs
  • を過ぎ
  • 『LOCAL』フラグは、実際にあなたがしているクライアントマシンからファイルを(転送しますコマンド実行)をDBサーバーに送信します。 LOCALを使用しない場合、ファイルはDBサーバー上にある必要があります(RDSを使用して事前に転送することはできません)
  • 巨大なファイルでも機能します。この方法(2,600万行)で8.2GBのファイルを送信しました。 t2メディアのEC2からdb.t2にオーロラまでわずか10時間かかりました
  • ユニークなキーを気にしたり、CSV行を読み取り、挿入/更新する前にデータを変更する必要がある場合は解決策ではありません
0

私は、データベースに接続してインポートするために、あなたの言語でスクリプトを開発することをお勧めします。

データベースがインターネットにアクセスできる場合は、そのスクリプトをローカルで実行できます。プライベートサブネット内にある場合は、そのプライベートサブネットにアクセスできるEC2インスタンスまたはVPCに接続されているラムダにスクリプトを実行できます。ランタイムが5分以下になることを期待する場合は、実際にラムダを使用するだけです。

編集:そのラムダのみ

AWSラムダのNode.js(JavaScriptの)、パイソン、ジャワ で書かれたコードをサポートする言語の一握りをサポートします(Javaの8対応)、およびC#(.NETコア)。

0

RDSでホストされているMySQLに任意のソースからデータをインポートする方法については、いくつかの掘り下げを行い、この公式のAWSドキュメントが見つかりました。

これはステップガイドによる非常に詳細な手順であり、CSVファイルのインポート方法についての説明が含まれています。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.AnySource.html

基本的には、各テーブルには、独自のファイルを持っている必要があります。複数のテーブルのデータを同じファイルにまとめることはできません。各ファイルに対応するテーブルと同じ名前を付けます。ファイル拡張子は好きなものにすることができます。たとえば、テーブル名が「sales」の場合、ファイル名は「sales.csv」または「sales.txt」ですが、「sales_01.csv」ではありません。

可能な限り、ロードするテーブルの主キーでデータを並べ替えます。これにより、ロード時間が大幅に短縮され、ディスクストレージ要件が最小限に抑えられます。

import data to MySQL databaseに別のオプションがあります。リアルタイムでデータインポートを行う外部ツールAloomaを使用できます。

関連する問題