今回は、前回作成したAWS上のRDSにCSVデータのインポートを行った際の手順を以下に記載します。
前提
・前回作成したEC2インスタンスとRDSが起動されていること
・RDBにインポートしたいCSVファイルを作成されていること(※文字コードはUTF8であること)
CSVファイルをEC2に転送
① 前回作成したEC2インスタンスのパブリックIPアドレスをコピーしておきます。
② 次に、rLoginで接続情報の設定を行い、EC2に接続します。(ここでは、rLoginを使用していますが、Tera Term等の他のターミナルソフトでも構いません。)
③ EC2インスタンスに接続できたら、CSVファイルを格納するディレクトリを作成します。また、作成したディレクトリに移動します。
$ pwd
/home/ubuntu
$ mkdir csv
$ cd csv
/home/ubuntu/csv
④ rLoginのツールバーにある「転送」
ボタンを押下します。
⑤ 転送ダイアログが表示されますので、対象ファイルをドラッグして転送します。
⑥ EC2インスタンスにCSVファイルが転送されたことを確認します。
以上で、EC2インスタンスへのCSVファイルの転送は終了です。
EC2インスタンスにMySQLクライアントをインストールし、RDSのMySQLデータベースに接続
① 以下のコマンドでMySQLクライアントをEC2インスタンスにインストールします。
$ sudo apt install mysql-client-core-5.7
インストール時に、"E:Unable to correct problems, you have held broken packages. "というエラーメッセージが表示された場合は、以下のコマンドを実行後、再度インストールを実行してください。
$ sudo apt-get autoclean
$ sudo apt-get clean all
$ sudo apt-get update
② RDSに作成したMySQL DBインスタンスのエンドポイントをコピーします。
③ 以下のコマンドでMySQLデータベースに接続します。
$ mysql -h RDSエンドポイント -P 3306 -u admin -p
Enter password: RDS作成時のパスワード
データベース、テーブルを作成し、CSVを取り込む
① 以下のコマンドでデータベースを作成し、使用するデータベースを選択します。
mysql> CREATE DATABASE データベース名 DEFAULT CHARACTER SET utf8mb4;
mysql> use データベース名;
② 続いて、テーブルを作成します。
③ テーブルを作成したら、EC2のCSVフォルダに転送したCSVファイルをMySQLデータベースに取り込みます。
$ load data local infile "/home/ubuntu/csv/ファイル名" into table テーブル名 fields terminated by ',';
以上で、RDSのMySQL DBインスタンスへのデータインポートが終了です。
株式会社メソドロジック
赤尾 一優 @Kaz_akao