こんな人に向けた記事
Azure Cosmos DBを使って踏むだろう地雷を事前に知りたい人向け。
Cosmos DBの現在の仕様で不満なこと(2018/5末時点)
Cosmos DBの中の人に伝えるために作成したメモ。
コンテナー セットの価格が高すぎる
課金単位を「コンテナー」ではなく「データベース」にした場合の最少スループットが50K RU(約36.8万円=$3,700+)と高額である。
開発環境を複数立てて検証しなければいけない、といった事情もあり、私が提案する案件のほとんどのケースで採用を見送ることになる。本当は使いたい。
性能的な意味で比較対象としてSQL DatabaseのP1シリーズがあるが、¥57,743/月=$580+ と、半額以下の価格で良好な性能な機能が利用できてしまう。
上記の理由で、1つのコレクションを設計上の工夫で汎用的に使いまわすしか費用を下げる手立てがない。
「汚い」設計をせざるえないため、せっかくのCosmosDBの利点を生かし切れない。
データサイズ「固定」「無制限」の設定が、コレクションCreate時にわかりにくい
APIでコレクション作成時、RU設定が2500以上以下で制御されている。
ポータルから手でコレクションを作成する場合は困らないが、C#からプログラムで指定する場合、具体的に RU=1000、DataSize=Unlimited という指定を行いたいが今はできないのでRU=2500で指定してコレクション作成してから、わざわざポータルでRU=1000に手で変更している。
そしてRU下げ忘れて、あとで怒られるところまでがセット。
データサイズ「固定」から「無制限」にアップグレードできない
利用頻度は少ないがデータ量がある場合、最初はFIXED=10GBで利用しておき、大きくなった際にUnlimitedに移行する、といった利用法ができない。