もう1月も終わりですね。日が出ている時間も長くなってきました。
ただ、暖かくなる=花粉の季節なんですよね。憂鬱です。
さて、今回はDynamoDBの使い勝手について書いてみたいと思います。
最初に結論から書きますが…「シンプルな構成であれば使いやすい」です。
つまり、「複雑なことをしようとすると使いにくい」です。
どうしてそうなるのか。それはずぱり、キー項目のせいです。
DynamoDBでテーブルを作成する際、「パーティションキー」を1つ(必須)、
「ソートキー」を1つ(任意)設定します。これ以外のキー項目は、基本的にはありません。
以下のようなテーブルが基本形になります。
ID (Pキー) | time(sortキー) | sei | mei |
1 | 123456 | 中井 | 泰行 |
2 | 123457 | 山田 | 太郎 |
3 | 123458 | スミス | ジョン |
そして注意点として、テーブル検索時、必ずパーティションキーを指定する必要があります。(全件検索は除く)
例えば、以下のテーブルで「country」を指定した検索は出来ません。
(一応、グローバルセカンダリインデックスを使うことで出来なくはありませんが、
テーブルを1つ追加するようなものなので多用したくはありません)
ID(Pキー) | time(sortキー) | sei | mei | country |
1 | 123456 | 中井 | 泰行 | 1 |
2 | 123457 | 山田 | 太郎 | 1 |
3 | 123458 | スミス | ジョン | 2 |
当然、SQLでは当たり前に行っていた、複数テーブルを組み合わせての検索も出来ません。
このあたりを考慮し、テーブル同士が密接に絡み合った構成を避けるようにしないと
大変ややこしいことになってしまいます。
と、ここまで色々出来ない出来ないと言ってきましたが、逆に言えば
出来ることがはっきりしているため、シンプルな構成であればむしろ分かりやすいとも言えます。
RDBは多機能で色々出来ますが、そこまでの機能は不要である場合も多いですからね。
それにDynamoDBは動作が軽い、データ量に制限が無い(ただし料金は上がる)、
データアクセスが少ないと料金も減るなど、利点は十分にあります。
適材適所で行きたいですね。
以上