S3からAuroraへのデータインポート

S3からAuroraへのデータインポート:


背景

Athenaで処理していたデータをAuroraで管理するような仕様ができたので、S3からAuroraへのデータインポートを考え始めた。


データインポート

Auraoの公式ドキュメントを参照すれば大体いけます。

Amazon S3 バケットのテキストファイルから Amazon Aurora MySQL DB クラスターへのデータのロード - Amazon Relational Database Service

↑のドキュメントを簡単にまとめると、以下のことです。


ハマったところ

Amazon Aurora MySQL から AWS の他のサービスへのネットワーク通信の有効化 - Amazon Relational Database Service

↑はわかりませんでしたので、無視した。そしたら、全然S3とつながらなかった。それはそうですね。Auroraはprivate vpcに置いてあるため、そのまま外のS3へのアクセスは不可能です。


対策

endpointを作成

VPC -> エンドポイント -> エンドポイント作成



Screen Shot 2018-10-25 at 18.20.04.png



結果

以下のようにテストしました。


テストデータ

  • テーブルの作成
mysql> create table users_01( 
    -> userid integer not null primary key, 
    -> username char(8), 
    -> firstname varchar(30), 
    -> lastname varchar(30), 
    -> city varchar(30), 
    -> state char(2), 
    -> email varchar(100), 
    -> phone char(14), 
    -> likesports varchar(100), 
    -> liketheatre varchar(100), 
    -> likeconcerts varchar(100), 
    -> likejazz varchar(100), 
    -> likeclassical varchar(100), 
    -> likeopera varchar(100), 
    -> likerock varchar(100), 
    -> likevegas varchar(100), 
    -> likebroadway varchar(100), 
    -> likemusicals varchar(100)); 
Query OK, 0 rows affected (3.44 sec) 
  • txtファイルの用意
aws s3 cp allusers_pipe.txt s3://fout-fox-development/allusers_pipe.txt 
  • データインポート
mysql> LOAD DATA FROM S3 's3://fout-fox-development/allusers_pipe.txt' 
    -> INTO TABLE users_01 
    -> FIELDS TERMINATED BY '|' 
    -> LINES TERMINATED BY '\n' 
    -> (@var1, @var2, @var3, @var4, @var5, @var6, @var7, @var8, @var9, @var10, @var11, @var12, @var13, @var14, @var15, @var16, @var17, @var18) 
    -> SET 
    -> userid = @var1, 
    -> username = @var2, 
    -> firstname = @var3, 
    -> lastname = @var4, 
    -> city=@var5, 
    -> state=@var6, 
    -> email=@var7, 
    -> phone=@var8, 
    -> likesports=@var9, 
    -> liketheatre=@var10, 
    -> likeconcerts=@var11, 
    -> likejazz=@var12, 
    -> likeclassical=@var13, 
    -> likeopera=@var14, 
    -> likerock=@var15, 
    -> likevegas=@var16, 
    -> likebroadway=@var17, 
    -> likemusicals=@var18; 
Query OK, 49990 rows affected (8.81 sec) 
Records: 49990  Deleted: 0  Skipped: 0  Warnings: 0 


パフォーマンス


参照

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2024-02-12 22:08:06 RSSフィード2024-02-12 22:00分まとめ(7件)