DynamoDBを利用する際に感じた抑えるべきポイントをまとめました。
NoSQLを理解する
そもそもNoSQLを理解することが必要である。
なぜなら、「DynamoDBでいいんじゃない」って言う人ほどNoSQLを理解していないことが多いからです。
私も同じで、「スキーマーレスのデータベースなんでしょ?」って感じでした。
この考えでDynamoDBを採用してしまうとハマってしまう可能性が高くなります。
理由は、DynamoDBは、KVSだからなのです。
KVSにマッチした要件であれば問題ありませんが、スキーマレスだからいいんじゃないのなんてやってしまうと非常に大変なことになってしまいます。なっています。。。
NoSQLとは
NoSQLとは、RDB(リレーショナル・データベース)以外のデータベースを指している様です。
KVS、DocumentDB、グラフDBなどが挙げられます。
DynamoDBとは
KVS+なんちゃってDocumentDBという感じでしょうか。
「なんちゃってDocumentDB」という表現をしているのは、ドキュメントを見るとQueryやScanとかがあっていろいろとできそうに思うのですが、実際にQueryやScanなどを行うとテーブルの全スキャンをしてしまうことになってしまうので、コスト的に大変な事になっていきます。ですので、実際QueryやScanなどは利用しない方がよいという事になってしまいます。
DynamoDBの学習方法
KVSですので、KVSに関する学習を行うと効果的です。
特にテーブル設計などは、RDBに慣れ親しんでいると制限ばかりで大変になります。