1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

S3からDynamo DBにデータを一括インポート

Posted at

はじめに

最近のアップデートで、S3に上げたファイルをDynamoDBテーブルにインポートできるようになりました。

DynamoDBからS3のエクスポートはすでに対応しているようです。

試してみる

まず、S3にデータをアップロードします。
対応しているファイルタイプは「json ,Amazon Ion ,csv」の三種類です。
今回は、DynamoDBドキュメントのサンプルデータを参考に、いくつかjsonファイルを作成しました。
複数Itemを同一のjsonファイルに記載する方法に少しハマりました。カンマで区切らなくて良いようです。

jsonでの記載例
sample01.json
{
	"Item": {
		"Id": {
			"N": "101"
		},
		"Title": {
			"S": "Book 101 Title"
		},
		"ISBN": {
			"S": "111-1111111111"
		},
		"Authors": {
			"L": [
				{
					"S": "Author1"
				}
			]
		},
		"Price": {
			"N": "2"
		},
		"Dimensions": {
			"S": "8.5 x 11.0 x 0.5"
		},
		"PageCount": {
			"N": "500"
		},
		"InPublication": {
			"BOOL": true
		},
		"ProductCategory": {
			"S": "Book"
		}
	}
}
{
	"Item": {
		"Id": {
			"N": "102"
		},
		"Title": {
			"S": "Book 102 Title"
		},
		"ISBN": {
			"S": "222-2222222222"
		},
		"Authors": {
			"L": [
				{
					"S": "Author1"
				},
				{
					"S": "Author2"
				}
			]
		},
		"Price": {
			"N": "20"
		},
		"Dimensions": {
			"S": "8.5 x 11.0 x 0.8"
		},
		"PageCount": {
			"N": "600"
		},
		"InPublication": {
			"BOOL": true
		},
		"ProductCategory": {
			"S": "Book"
		}
	}
}
{
	"Item": {
		"Id": {
			"N": "103"
		},
		"Title": {
			"S": "Book 103 Title"
		},
		"ISBN": {
			"S": "333-3333333333"
		},
		"Authors": {
			"L": [
				{
					"S": "Author1"
				},
				{
					"S": "Author2"
				}
			]
		},
		"Price": {
			"N": "2000"
		},
		"Dimensions": {
			"S": "8.5 x 11.0 x 1.5"
		},
		"PageCount": {
			"N": "600"
		},
		"InPublication": {
			"BOOL": false
		},
		"ProductCategory": {
			"S": "Book"
		}
	}
}

作成後、S3にアップロードします。

image01.png

マネコン上からインポートを行います。
既存のテーブルにインポートすることはできず、新規でテーブルを作成する必要がありそうです。
image02.png

後は、テーブル名とパーティションキー(必要があればソートキーも)を入力し、インポートを実行します。
キャパシティーモード等々の設定はカスタマイズすることもできます。今回はデフォルトで実行しました。
image03.png

インポートジョブ完了後、確認するとテーブルが作成されており、データも入ってきていました。
image04.png

まとめ

(新規テーブルの作成のみですが、)S3からDynamoDBへのインポートがすこぶる簡単になりました。
アカウント間でテーブルの移行を行いたい場合などに使えそうだと思います。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?