Azure案件に絶賛ぶっこまれ中です。
CosmosDBとかIoTHubとか知らない単語と日々格闘中です。
そんな中でCosmosDBを使用してMongoDBを使うことになったのでメモ
下記のURLがめちゃくちゃわかりやすいかと。
https://www.slideshare.net/doryokujin/mongo-sharding
MongoDBを作る時に必須な
Shard Key そもそもなんなの?
・Collection内のkeyの一つから決定
・Shard KeyによってデータがどのChunk(連続した範囲のデータ集合)に属するか決まる
・Shardが偏るのはよくない。
・Shard keyは変更できない!やり直す場合はCollrctionを作りなおす。
なるほど。
よくわからん。
Shard Key の変更が出来ないので、最初にきちんと考えないといけないみたいですね。
じゃあ、良いShard Key とは??
良い例、悪い例は↑のURLにわかりやすく記載がありますが
ざっくりと。
悪いやつ
・「大陸名」など最大がきまっているのも、オートインクリメント的にひたすら増えていくもの、ハッシュなどのランダムなもの
良いやつ
・日付+ユーザーID(検索によく使われるkey)
一定期間がわかり、ほぼ均等にわけてくれるための模様
と、ほんとにメモなので、私もわかってない感満載ですw
これから実際に設計して実装して失敗してFBしていきます。