0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[csv2dynamo] DynamoDB 内の既存テーブルに一括でレコードを追加する

Last updated at Posted at 2025-05-18

はじめに

DynamoDB では既存のテーブルに一括でレコードを追加するにはいくつか制約があります。

  1. 既存のテーブルに対しAWSコンソール上から追加するには、DynamoDB 独自のJSONを生成して使用しなければならない
  2. (1.) のJSONを作成するのもAWSサービスの固有機能では対応していない
    • インポート時はDynamoDB独自のJSON形式にしか対応していないにも関わらず、エクスポートはCSV形式のみである。。。

そこで、CSV形式のレコードを 「DynamoDB 独自のJSON に変換 + CloudShell上でのコマンドとして生成」 してくれるcsv2dynamoを紹介し、インストール~使用方法を解説します。

なお、csv2dynamoを使用して感じた良い点は

  1. CloudShell上でソフトウェアやパッケージをインストールしない
  2. CloudShell上にファイルを置くこともない

点です。

csv2dynamo のインストール方法

csv2dynamo は以下のコマンドでインストールできます。
(Go言語で実装されているので、事前にGoのインストールが必要です)

go install github.com/maito1201/csv2dynamo/cmd/csv2dynamo@latest

csv2dynamo の使用方法

ここでは例として、数値型である「id」をパーティションキーとして持つ test_table に対し、一括でレコードを登録します。

  1. まず、例として以下のような形式のCSVファイル(test_table_column.csv)を用意します。

    test_table_column.csv
    id (N),isMale (BOOL),name (S)
    30,false,Tanaka
    40,true,Fukuyama
    
    1. 1行目にはカラム名の後に半角の空白を空け、型を設定します。なお型には N(数値)、BOOL(ブール値)、S(文字列)が設定可能です。
    2. 2行目以降にはカラムが持つ値を設定します。
  2. 以下のコマンドを実行し、CloudShell上で実行可能なAWSコマンドを生成します。

    $ csv2dynamo --table-name test_table --file test_table_column.csv
    read and compile csv
    progress: 1/2
    read and compile csv
    progress: 2/2
    complete!
    aws dynamodb put-item --table-name test_table --item '{"id":{"N":"30"},"isMale":{"BOOL":false},"name":{"S":"Tanaka"}}'
    aws dynamodb put-item --table-name test_table --item '{"id":{"N":"40"},"isMale":{"BOOL":true},"name":{"S":"Fukuyama"}}'
    
  3. CloudShellを開き、(2.) の末尾に生成されたコマンドをコピー&ペーストして実行します。
    image.png

    エラーメッセージが出ることなく実行できれば、以下のようにDynamoDB上でレコードが登録されています。
    image.png

おわりに

csv2dynamo について紹介し、インストール~使用方法を解説いたしました。

csv2dynamoではCloudShell上にソフトウェアをインストールしたりファイルを置かずに済みます。
このメリットが役に立つ例として、例えば会社保有のAWS環境を使用する場合、上記のように環境は汚す行為が禁止されていたり許可を取る必要性が時々あると考えています。
このような場合、環境は汚すことがない csv2dynamo がおすすめです。

参考文献

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?