MongoDBアーキテクチャ:構造、用語、要件、および利点
公開: 2020-12-28目次
概要
インターネットが現代の世界経済のバックボーンであることは間違いありません。 今日、世界中で47億人近くの人々が毎日仮想プラットフォームを使用しており、ニュース、洋服の購入、食べ物の注文、音楽の鑑賞、オフィスへの通勤などにインターネット駆動のアプリケーションを使用しています。
このように膨大な数のユーザーが毎日デジタル投稿を行っているため、サイバースペースで毎日膨大な量の非構造化データが生成されているのも不思議ではありません。 MongoDBの将来のスコープの詳細をご覧ください。
これにより、「ビッグデータ」アプリケーション(知られるようになった)を24時間年中無休で保存、提供、サポートできる新しいデータベースパラダイムが緊急に必要になりました。
NoSQLと入力します。
NoSQLデータベースの台頭
「SQLだけではない」として大まかに知られているNoSQLは、固定テーブルスキーマによって制約されるSQLデータベースの代替手段です。 NoSQLは柔軟性が高いため、SQLデータベースのこの構造上の欠点を克服し、水平方向に拡張できるようになっています。 NoSQLデータベースは、開発者の生産性を高めるように設計されており、複雑なデータ処理および管理操作のためのシンプルで洗練されたデータモデルを備えています。
大まかに言って、これらのデータストレージモデルには、ドキュメント、キー値、ワイド列、グラフの4つのタイプがあります。 このブログでは、ドキュメントデータベースとMongoDBアーキテクチャ(主要なNoSQLデータベース)に焦点を当てます。

MongoDBの構造
出典: MongoDBドキュメント
MongoDBアーキテクチャは、柔軟なデータモデルに従います。 データを挿入する前にスキーマ宣言を義務付けるRDBMSとは異なり、MongoDBは固定のドキュメント構造を強制しません。
用語
田畑
ドキュメントのキーと値のペア。リレーショナルデータベースの列に対応します。
書類
これは、RDBMSのレコードに相当します
コレクション
ドキュメントのグループはコレクションと呼ばれます。 これはRDBMSテーブルに類似しています
RDBMSとMongoDBアーキテクチャの違い
参加する
RDBMSでは、データを複数のテーブルに分散し、結合して1つのビューでデータにアクセスできます。 このようなJOIN操作はMongoDBでは不可能です。 代わりに、すべてのデータは単一のコレクションに保存されますが、ネストまたは埋め込みドキュメントを介して分離できます
正規化
RDBMSは、重複や孤立したレコードを回避するためにデータを正規化することを保証します。 MongoDBの柔軟性により、正規化の必要がなくなります
構造
RDBSは主に銀行セクターで使用されており、正確なデータベース構造が事前にわかっています。 MongoDBは、大量の非構造化データをサポートし、クラウド、モバイル、Web、ビッグデータの各アプリケーションに拡張できます。
MongoDBアーキテクチャの必要性と利点
MongoDBアーキテクチャは、時間の必要性である構造変更をその場で処理できます。 これは、データベース構造を事前に把握していないシナリオに最適です。

以下はその主な利点のいくつかです
ドキュメントベース
データフローの変化に動的に対応し、変化するビジネス要件にリアルタイムで適応できます
アドホッククエリ–指定されたフィールドを返すことができる強力なクエリ言語。 また、非常にきめ細かい検索機能も可能です。 (フィールドごと、範囲ごと、一般的な表現など)
インデックス作成
ドキュメント内の任意のフィールドにインデックスを付けて、データ取得のプロセスを高速化できます。
ここで、MongoDBアーキテクチャについて詳しく見ていきましょう。
ただし、その前に、CAP定理を理解する必要があります。
CAP定理
CAPは、一貫性、可用性、およびパーティション許容度の3つの要素を示します。
この文脈で各用語が何を意味するかを見てみましょう
一貫性
分散データベースにデータを書き込む場合は、いつでもシステム内の任意のノードから同じデータにアクセスできる必要があります。 書き込まれたデータの整合性を維持することです。
可用性
これは、システムのダウンタイムを最小限に抑えることです。 読み取り/書き込み操作は、クラスター内の任意のマシンで必ず発生する必要があります。
パーティショントレランスまたはフォールトトレランス
ネットワークパーティションの場合でもシステムがスムーズに機能し続ける能力を示します。つまり、クラスターのさまざまな部分が相互に通信し、効果的に同期できる必要があります。
CAP定理は、分散システムはパーティショントレラントである必要があると述べています。 ネットワークパーティションによって、システム全体がクラッシュすることはありません。
つまり、分散システムの「整合性」と「可用性」のうち1つのパラメーターのみを保証でき、もう1つはパーティションの許容範囲です。
これにより、次のような三角形が作成されます。
出典:データサイエンスペディア
MongoDBは、システム(CP)にパーティションがある場合は常に、可用性よりも一貫性を選択します。 それらの書き込みの正確な実行を保証できるまで、すべての書き込み操作をブロックします。
MongoDBアーキテクチャ
MongoDBはシングルマスターアーキテクチャを採用しています。つまり、すべてのクライアント側の書き込み操作を担当するプライマリマシンがあります。 後でクラスターに追加する他のすべてのインスタンスは、通常、すべての読み取り操作を処理するセカンダリノードを構成します。
これらは基本的に、プライマリクラッシュに対するフェイルセーフとしてのプライマリサーバーのバックアップコピーです。
これらのサーバーはすべてレプリカセットにグループ化されています。 複数のレプリカセットを作成でき、それぞれに独自のプライマリサーバーとセカンダリサーバーがあります。
出典:MongoDBドキュメント
プライマリがダウンした場合、システムはすべてのセカンダリノードから新しいプライマリを選択します。 ただし、これは、システム全体から最も高速なping応答を取得している場所に応じて、任意に発生します。 プライマリを過半数で選出できるように、クラスタには奇数のサーバー(最小3つ)が必要です。
3台のサーバーにお金をかけたくない場合は、プライマリーの選出に投票することだけが仕事である「アービター」ノードを任命することができます。
シャーディング
MongoDBのシャーディングを使用すると、ビッグデータを複数のデータベースに分散できます。

出典: MongoDBドキュメント
数百万人のユーザーがいるアプリケーションがあります。 シャーディングを使用すると、これらのユーザーを(ユーザーIDなどの一意のインデックスに基づいて)異なるレプリカセットに分割できます。 アプリケーションサーバーは、mongoSと呼ばれるプロセスを使用して、構成サーバー(正確には3)と通信し、探しているデータがどの「シャード」に含まれているかを理解します。 mongoSは、バックグラウンドでロードバランサープロセスを実行して、すべてのシャード間で負荷(この場合はユーザー数)を自動的に均等に分散します。
結論
MongoDBとデータベース操作について詳しく知りたい場合は、MongoDBプロジェクトのアイデアを確認してください。 upGradからデータサイエンスのPGディプロマを探索できます。 働く専門家向けに設計された12か月のコースでは、一流のIIIT Bangalore Alumni Statusに加えて、包括的なキャリアカウンセリングと就職の機会を得ることができます。
この記事が、 MongoDBアーキテクチャーの仕組みとシステムの動作方法を理解するのに役立つことを願っています。 詳細については、他のブログをご覧ください。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
