MongoDBのとアーキテクチャに基づいて


1.簡単に言うと
セカンダリインデックス、範囲クエリやソート機能:MongDBは強力になり、強力で柔軟でスケーラブルなデータ・ストレージ・システム、スケーラブルなデータベースと最も有用な機能との関係では、次のような、統合されています。MongDBも便利な機能のMapReduceと地理空間インデックスの同様の収束を構築しました。
ハードワークの後、MongDBも同時に、それはまた、フレンドリーモデル開発、管理に優しい設定オプションを持っており、それがリラックスしたAPIやデータベースシェルを感じて、ユーザーフレンドリーで操作しやすく、および他の特性を持っています。MongDBを使用すると、データストレージを気にすることなくプログラミングに集中できるように心のユーザーの平和を作ってみます。

2.特長
1)豊富なデータモデル
MongDBは、ドキュメント指向データベースではなく、リレーショナル・データベースです。リレーショナルモデルを容易に拡張を放棄する理由は、当然のことながら、検討事項の他の利点があります。行のライブラリとの間の関係の概念を置き換えるために、「ドキュメント」 - MongDBのアイデアは、より柔軟なモデルを使用することです。ドキュメントと配列することにより、文書に埋め込まれ、複雑な階層関係を表現するために、レコードによって達成することができる、データの方法を検討するために近代的なオブジェクト指向言語の開発者のために非常に適しています。
MongDB任意の手段によって事前に定義されたまたは固定せずに、ドキュメントのモードキーの概念。一般的に、何のモード変更はありません、あなたは、データ移行の多くを必要としません。追加または削除キーは、アプリケーションレベルではなく、すべての固定と同じ形式に適応するためにそれらを強制することなく処理することができます。これは、データモデルの進化を扱うには、開発者に多くの柔軟性を提供します。
2)の簡単なスケーラビリティ
最新のアプリケーションのデータサイズは信じられないほどのペースで成長しています。高度なセンシング技術、インターネット上で利用可能な帯域幅、さらには小規模なアプリケーションでは、データの量が以前前代未聞、これまでよりもTBレベルのデータを大量のデータが生成されるシナリオを作成する人気のハンドヘルド機器を、増加し、しかし、今ではどこでも見ることができます。
そのにつながるデータの増加の開発量が、彼らは彼らのデータベースを展開する方法、難しい決断に直面するだろうか?データベースの拡張は、長手方向の延長に直面することになる場合(サーバハードウェアのアップグレードより強力な)またはスケール(データを複数のサーバーに分散されます)。縦方向の拡張は、一般的に最も簡単な方法ですが、それはまた次のような多くの欠陥、もたらします:より強力なサーバーを買う余裕はないとき、このアプローチは、物理ハードリミットに到着するサーバー一般的に高価なより強力に。ほとんどの人がそれの大規模なWebアプリケーションを構築したい場合は、サーバーによって達成されることはありそうでない、コストが耐え難いです。
スケールはスケーラビリティと経済の両方で、ストレージ容量を増やし、パフォーマンスを向上させるために、あなたは別のサーバーを購入することができますし、あなたの現在のクラスタに追加します。MongDBは、開発者がアプリケーションに注力することを可能にする、それが自動的に複数のサーバー間でデータを分割することを可能にし、データのロード・バランシングは、クラスタ内で実行することができ、文書が再配布自動的にすることができ、文書のデータモデルを指向、スケールに設計された当初開発、データベースを展開するのではなく。より多くの容量が必要な場合は、単に新しいサーバーは既存のクラスタ、データベースに参加し、すべてのフォローアップを完了するために、自分の道を作ります。
3)高いパフォーマンス維持
優れた性能を主な目的MongDBであり、これはそれについて多くの設計上の決定につながっています。サーバーとの2元線形プロトコルの相互作用、以前に安定した性能のための追加のスペースに割り当てられたドキュメントとそのダイナミックフィルデータファイルとしてMongDBマスターモード。オペレーティングシステムにメモリマップファイル、およびメモリ管理タスクに使用MongDBデフォルトのストレージエンジン。また、それはまた、クエリを実行するための最速の方法を覚えておくことができますダイナミッククエリオプティマイザの特性を持っています。短いMongDBでは、ほぼすべての側面は、高いパフォーマンスを維持するように設計されています。
そして、もののMongDB十分に強力なライブラリとの間の関係の多くの機能を維持しようとしてみたが、すべての関係のライブラリを達成するように設計されていません。いつでも、可能な限りMongDB及びクライアントへの駆動ロジック又はコードは、この動線を維持するように設計されたプロセスは、高い性能の理由のMongDBのいずれかを得ることができます。
4)簡単に管理する
ことにより、可能な限り、データベース・サーバーの簡素化管理にMongDBの自己管理を。マニュアル管理のために少し必要性と、データベース・サーバの起動に加えて。一次ライブラリー一顧オフの場合、MongDBは自動的にスタンバイデータベースに切り替えることができますし、リフティングライブラリがベースのライブラリを用意しました。分散環境では、クラスタが唯一の新しいノードを追加するために指示する必要があり、その後、MongDBは自動的に統合され、構成されます。
5)その他の特長
I)インデックス:MongDBサポートは、迅速なクエリの様々な可能、多くの場合、セカンダリインデックスで、かつ、ユニークな複雑な地理空間のインデックスをサポートしています。
ⅱ)収納Javaスクリプト:開発者が保存され、ストアドプロシージャの機能を置き換えるために、サーバ側のJava機能に使用することができます。
ⅲ)集計:MongDBサポートのMapReduceやその他の集約ツール。
IV)の固定サイズのセット:固定コレクションキャップのサイズ、およびそのログに類似したデータの特定のタイプに適しています。
v)のファイルストレージ:ストア大きなファイルやファイルのメタデータを使用するMongDBサポート契約が簡単。
また、MongDBは図書館、特に接続(参加)と複雑なマルチラインの取引関係の一般的な機能の一部をサポートしていません。分散システムは、ライブラリ間の関係のこれらの機能をサポートすることはできませんので、アーキテクチャは、意思決定の強力な伝搬特性を可能にします。
3.アーキテクチャ
1)単一のライブラリ:シングルMongDBライブラリは、すべてのデータおよび負荷に耐えることができ、データの冗長性と高可用性、単一ノード問題はない、開発およびテスト環境を考慮していない場合は、アーキテクチャは、より一般的には、あるここでは、展開することは比較的容易ですここではそれらを繰り返すありません。
2)マスター・スレーブレプリケーション:マスター・スレーブレプリケーション・アーキテクチャは、最も一般的なレプリケーション環境のMongDBのサポートです。このアーキテクチャは、非常に柔軟であり、かつ、バックアップのために使用することができ、フェイルオーバー、読み出しおよびそれ以上の他の用途を広げる、このアーキテクチャは、メイン一方に配置された少なくとも2台のサーバを必要とする、複数のサーバが、複数のマスタデバイスに設定することができもちろん、マスターは、同じサーバー上の複数のインスタンスで構成してもよいし、マスタは、マルチスタンバイを調製し、これは、このアーキテクチャの複数のインスタンスは、その柔軟性、バックアップ、または可用性の観点から、同じサーバー上に実装することです読んでその役割が大幅に削減されますので、上の拡張、スタンバイデータベースのアーキテクチャに構成された本番環境または複数のハードウェア・サーバは、より一般的です。
3)設定のコピー:コピースタンバイデータベースクラスタは、基本的な自動フェイルオーバーのセットです。これと上記のスタンバイ・データベース・スキーマとの最大の違いは、固定された主なライブラリを持っていない複製セットですが、クラスタにより、現在のメインのライブラリ遊び人離れて、別のサーバー上のライブラリによって調製主なライブラリーを選出しますメインライブラリーを変更します。また、両方のアーキテクチャは、常にメインライブラリとライブラリから1つ以上あります。利点は、セットはすべてが自動化されている彼らは、彼らの多くの管理タスクを完了するメインライブラリーからライブラリを強化し、データの一貫性を確保するクラスタをコピーします。開発者は、使いやすさのために、このアーキテクチャはちょうどクラスタ内のサーバを決定するために、また非常に良いですが、ドライバが自動的にすべてのサーバーが現在のサーバー遊び人オフの場合、自動的にフェイルオーバーします発見するでしょう。
4)フラグメント:いわゆるパッチ、それはより強力なサーバの場合とハードウェアのアップグレードが存在しない場合に、それはより多くのデータを格納することができるので、ことが、別のサーバにデータ分割及び分割に格納されたデータの異なる部分にあり、そしてより多くの負荷を処理。手動および自動薄切片に分けた断片。
I)手動スライス:ほとんどすべてのデータベースシステムでは、手動断片であってもよいです。これらの中で、各アプリケーションが互いに完全に独立して、いくつかの異なるデータベースサーバ、データベースサーバへの接続を維持し、異なるサーバーに異なるデータに格納されているアプリケーション・コード、ならびに正しいサーバに対応するクエリを管理する責任を負います結果のデータ。良い手で断片化が実行されますが、サーバーのデータだけでなく、流通やロードバランシングモードの変更は、それがますます困難になる、対応マニュアルのメンテナンス作業を変更しています。
II)は、断片化さ:人工シャード管理および保守作業、自動的にリバランスを分割し、データを保持するためのMongDBが責任の難しさを排除しMongDBサポート自動断片を、開発者がデータ配信と負荷分散の問題を気にしないしながら、 。各フラグメントは、全体的なデータセットのサブセットを担当であり、データブロックが異なる断片(サーバ)に分配される小さいデータブロックのセットに分散されるMongDB自動シート。プロセスルーティングmongosにより、MongDBは、データストレージのどのスライス、さらにはデータが複数のスライスのサーバに分散されているものを気にすることなく透過的なデータの断片化、アプリケーションのユーザ・アプリケーションを実現します。すべてのデータの断片化の作業はmongosにすべてのフラグメントのフロントエンドをルーティングするプロセスを介して行われます。アプリケーションは、ちょうどmongos接続プロセスを知っているように成功したとMongDBを接続して動作し
、それにそれを接続します。


 

公開された171元の記事 ウォン称賛46 ビュー190 000 +

おすすめ

転載: blog.csdn.net/LHDZ_BJ/article/details/100984840