アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【Amazon/AWS
Amazon DynamoDBメモ【3・JSONファイルからの一括データ登録】
POSTED BY
2022-12-08

Amazon DynamoDBメモ【2・CSVファイルからの一括データ登録】

続きです。前回のCSVファイルロードは最初の設置がすべて手動かつえらく面倒でほぼ使い物にならなかったので、公式ドキュメントにあるJSONファイルで一括登録する方法をやります。

JSONは記述が面倒ですが、スクリプトを書いて出力させればなんとかなります。

前々回のtesttableに、データを追加登録します。CSVは不可ですがJSONならできるらしいです。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SampleData.LoadData.html

を参考にして作ります。なるべくCSVライクにしたいので以下のように作りました。

{"testtable":[
{"PutRequest":{"Item":{"key":{"S":"キー4"},"sval":{"S":"文字列4"},"nval":{"N":"4"}}}},
{"PutRequest":{"Item":{"key":{"S":"キー5"},"sval":{"S":"文字列5"},"nval":{"N":"5"}}}},
{"PutRequest":{"Item":{"key":{"S":"キー6"},"sval":{"S":"文字列6"},"nval":{"N":"6"}}}}
]}

これをadd_to_testtable.jsonなどと保存します。

まず現在のテーブル状況を確認します。

aws dynamodb scan --table-name testtable
{
    "Items": [
        {
            "sval": {
                "S": "文字列2"
            },
            "key": {
                "S": "キー2"
            },
            "nval": {
                "N": "2"
            }
        },
        {
            "sval": {
                "S": "文字列1"
            },
            "key": {
                "S": "キー1"
            },
            "nval": {
                "N": "1"
            }
        },
        {
            "sval": {
                "S": "文字列3"
            },
            "key": {
                "S": "キー3"
            },
            "nval": {
                "N": "3"
            }
        }
    ],
    "Count": 3,
    "ScannedCount": 3,
    "ConsumedCapacity": null
}

ではさきほどのJSONデータで一括追加登録してみます。

aws dynamodb batch-write-item --request-items file://add_to_testtable.json
{
    "UnprocessedItems": {}
}

成功したっぽいです。あらためてテーブルデータを見てみます。

aws dynamodb scan --table-name testtable
{
    "Items": [
        {
            "sval": {
                "S": "文字列6"
            },
            "key": {
                "S": "キー6"
            },
            "nval": {
                "N": "6"
            }
        },
        {
            "sval": {
                "S": "文字列2"
            },
            "key": {
                "S": "キー2"
            },
            "nval": {
                "N": "2"
            }
        },
        {
            "sval": {
                "S": "文字列1"
            },
            "key": {
                "S": "キー1"
            },
            "nval": {
                "N": "1"
            }
        },
        {
            "sval": {
                "S": "文字列4"
            },
            "key": {
                "S": "キー4"
            },
            "nval": {
                "N": "4"
            }
        },
        {
            "sval": {
                "S": "文字列5"
            },
            "key": {
                "S": "キー5"
            },
            "nval": {
                "N": "5"
            }
        },
        {
            "sval": {
                "S": "文字列3"
            },
            "key": {
                "S": "キー3"
            },
            "nval": {
                "N": "3"
            }
        }
    ],
    "Count": 6,
    "ScannedCount": 6,
    "ConsumedCapacity": null
}

成功!こちらのほうが簡単でかつ柔軟そうで、スクリプトで組めそうです。

最後にAWSで提供されているSDKを使ってC++プログラムから操作します。↓

Amazon DynamoDBメモ【4・C++ライブラリを使ってプログラムから操作】

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】