DynamoDBの特徴
どんなDB?
AWS内のNoSQLなDBです.
大量のデータを高速でDBに蓄積.
検索や取り出しも超高速.
まずは非SQLを私の言葉ですが簡単に説明します
非SQL
コレクションの中にドキュメントで格納します.
要はテーブルにカラムとフィールドを設定する感じ.
(MongoDBならコレクション,ドキュメントと言いますが,DynamoはテーブルでもコレクションでもどっちでもOKみたいです)
JSON形式で格納できて,自由自在に操れる.
慣れれば手足です.
例えば, 「user」というコレクションを作ったとしましょう.
そうすると,
{name : "茂木" , age : 23 , sex : man}
のようなオブジェクトで表せます.
パラメータを足すことも簡単です.
樹形図も出来ます.
僕はSQLよりもこっちの方が好きだなあ...
容量
データ容量に制限はありません.
整合成モデル
DynamoDBは3つのアベイラビリティーゾーン間でデータの書き込みをしてます.
それにより高速レスポンスを実現しています.
注意は,3つ中2つに読み込みをしたら
「書き込み完了やで」と非同期的な処理を行うことです.
デフォだと書き込み後に古いデータがresされる可能性がありますので,
オプションで「強力な生合成のある読み込み」にすることで,その心配はなくなります.
しかし,その場合費用がかかります.
普通のappならオプション設定する必要はないですが,すぐに反映させたい場合には設定しましょう.
(僕ならコードでcallback使いますが)
作り方
キーもあとで追加出来ますし,とりあえず作るのは速攻出来ます.
テーブル名と変数入れるだけ.
RDSよりも楽チンだ.