Aurora(PostgreSQL)へのデータ導入方法


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

前提

・RDS(Aurora PostgreSQL)が作成済みであること
・DB接続用OS:RedhatLinux 8.4

※RDS(Aurora PostgreSQL)作成したい場合、下記のブログを参照
CloudFormationでRDS(Aurora PostgreSQL リージョン別クラスター)を構築する

※DB接続について、下記のブログを参照
EC2(Red Hat Linux)からpsqlでAurora(PostgreSQL)に接続する手順

Aurora(PostgreSQL)へのデータ導入方法

テーブルの作成

基本構文

CREATE TABLE テーブル名 (列名 データ型 制約 [, 列名 データ型 制約 …] );
   :
[表制約]
※[]内の数は不定

サンプル

CREATE TABLE Staff
(id    CHAR(4)    NOT NULL,
name   TEXT       NOT NULL,
age    INTEGER    ,
PRIMARY KEY (id));

データの挿入(INSERT)

基本構文

INSERT INTO テーブル名 [(列名1 [, 列名2 …] )] VALUES (値1 [, 値2 …] );

サンプル

insert into staff values (1, 'Test1', '20');


実行例:

test_db=> insert into staff values (1, 'Test1', '20');
INSERT 0 1
test_db=>
test_db=>
test_db=> select * from staff;
  id  | name  | age
------+-------+-----
 1    | Test1 |  20
(1 row)

test_db=>

CSVファイルをインポート

基本構文

\COPY <table name> FROM ‘location + file_name’ DELIMITER ‘,’ CSV HEADER;

テスト用データ(CSV)
test_data_staff.csv

101,Test101,30
102,Test102,31
103,Test103,32
104,Test104,33
105,Test105,34
106,Test106,35
107,Test107,36
108,Test108,37
109,Test109,38
110,Test110,39

実行例:

test_db=> \copy staff from '/home/ec2-user/test_data_staff.csv' delimiter ',' csv;
COPY 10
test_db=> select * from staff;
  id  |  name   | age
------+---------+-----
 1    | Test1   |  20
 101  | Test101 |  30
 102  | Test102 |  31
 103  | Test103 |  32
 104  | Test104 |  33
 105  | Test105 |  34
 106  | Test106 |  35
 107  | Test107 |  36
 108  | Test108 |  37
 109  | Test109 |  38
 110 | Test110 |  39
(11 rows)

test_db=>

まとめ

今回は、EC2からAurora(PostgreSQL)へのデータ導入方法を紹介しました。次回、大量データ導入のサンプルスクリプトを紹介します。

以上です。
少しでもお役に立てれば幸いです。

参考

https://qiita.com/hiroyuki_mrp/items/10322eeb29bb8e35987f

https://www.ashisuto.co.jp/db_blog/article/how-import-and-export-data-using-csv-files-postgresql.html

Last modified: 2022-08-22

Author