Open5
2021 ひとり MongoDB University アドカレ
2021201 M302 Chapter1 (1)
M302 Data Modeling のコースの学習記録です!
ここでは、データモデリングについて進めていきます。
今回は、ゆるくメモを取りながらの学習内容をアップしていきます。
本日は動画をまず2つ。忘れていることもたくさんあるので、少しずつやっていきます。
2021201 M302 Chapter1 (2)
M302 Data Modeling のコースの学習記録です!
Data Modeling in MongoDB
スキーマレス、というと誤解されやすいけれど、どんなデータにも基本のスキーマがある。
MongoDB はまず初めに基本のスキーマから出発して、アプリケーションの成長や変化に応じてスキーマを柔軟に調整しやすいというところが特徴。
The Document Model in MongoDB
MongoDB のドキュメントについて。データは "BSON" として登録されます。
また、ドキュメントはフィールドとバリューの組み合わせだけれど、最初 String 型だったフィールドを、後から配列型に変えることも可能。
Constraints in Data Modeling
データモデリングは、様々な制約を踏まえて考えていきましょう。
いろんな制約があります。
- 予算
- ハードウェアリソース
- データの特性(サイズ、セキュリティやコンプライアンスの要件、データの主管、利用者)
- アプリケーションの特性(大規模に分散するとレイテンシがネックになる)
- MongoDBとしての特性(ドキュメント形式であること)
The Data Modeling Methodology
データモデリングの方法論いついて。
3つのフェーズがあります。
Model for Simplicity or Performance
モデルのシンプルさを重視するか、パフォーマンスを重視するか、について。
シンプルさを優先できる場合
パフォーマンスを優先する場合
- プロジェクトが非常に大規模である
- シンプルなレプリカセットではカバーできない量のデータ数がある
- シャーディングされているような場合
Identifying the Workload
- まずはシンプルに、スモールスタートで始めること
- チームの人数が少なく、お互いがデータ構造を理解しているのであれば、1つのドキュメントにネストしたデータを保持するほうが効率が良くなる
- 初期段階では、パフォーマンスよりもまずシンプルさを優先する
- ただし、ワークロードについては正しく把握すること
- 正確さが求められるオペレーションはどこかをきちんと把握すること
確認クイズ
プロジェクトの初期の段階で大事なのはどれ?
- オペレーションのパターンを把握すること
- データの堅牢性のため、プライマリに書き込まれることを保証するか、majorityで過半数のノードに書き込まれることを保証するか、など
- これらのオペレーション特性により、レイテンシが関わってくる