sql >> データベース >  >> NoSQL >> MongoDB

AzureテーブルとAzure上のMongoDB

    テーブルストレージは、Windows Azureのコアストレージ機能であり、スケーラブル( 100TB )になるように設計されています。 200TB アカウントあたり500TB)、耐久性(データセンターでトリプル複製、オプションで別のデータセンターにジオ複製)、スキーマレス(各行に必要なプロパティを含めることができます)。行はパーティションキー+行キーによって配置され、非常に高速なルックアップを提供します。すべてのテーブルストレージアクセスは、任意の言語で使用できる明確に定義されたREST APIを介して行われます(SDKを使用し、REST APIの上に構築され、.NET、PHP、Java、Python、Ruby用にすでに配置されています)。

    MongoDBは、ドキュメント指向のデータベースです。 Azureで実行するには、MongoDBをWeb /ワーカーの役割または仮想マシンにインストールし、クラウドドライブ(ドライブ文字を提供)または接続されたディスク(Windows / Linux仮想マシンの場合)をポイントし、オプションでジャーナルをオンにする必要があります(これをお勧めします)、オプションで使用する外部エンドポイントを定義します(または仮想ネットワーク経由でアクセスします)。ちなみに、クラウドドライブ/接続されたディスクは実際にはAzure Blobに格納されているため、Azureテーブルと同じ耐久性とジオレプリケーションが提供されます。

    2つを比較するときは、テーブルストレージはサービスとしてのストレージであることに注意してください。よく知られているRESTエンドポイントにアクセスするだけです。 MongoDBを使用すると、データベースを維持する責任があります(たとえば、MongoDB Inc(以前の10gen)が新しいバージョンのMongoDBをプッシュするたびに、それに応じてサーバーを更新する必要があります)。

    jtoberonが指摘したMongoDBIncのアルファ版について:よく見ると、いくつかの重要な点がわかります。

    • セットアップは、レプリカセットやシャードを含まないスタンドアロンのmongodbインスタンス用です。レプリカセットに関しては、Blobストレージの動作方法により、スタンドアロンバージョンを使用してもいくつかのメリットがあります。
    • 高可用性を提供するために、複数のインスタンスで実行できます。この場合、1つのインスタンスのみがデータベースにサービスを提供し、1つは「ウォームスタンバイ」であり、もう1つのインスタンスが失敗するとすぐにmongodプロセスを起動します(メンテナンスの再起動、ハードウェア障害など)。

    10genのWindowsAzureラッパーは依然として「アルファ」と見なされますが、mongod.exeはそうではありません。他のWindowsexeを起動するのと同じように、mongodexeを起動できます。これは、起動に関する管理コードにすぎず、alpaの実装が示しているのはそれです。

    編集2011-12-8:これはアルファ状態ではなくなりました。レプリカセットのサポートを提供する最新のMongoDB+WindowsAzureプロジェクトをここからダウンロードできます。

    パフォーマンスについては、ベンチマークを行う必要があると思います。そうは言っても、次のことを考慮してください。

    • たとえば、WebロールからテーブルストレージまたはMongoDBにアクセスする場合でも、WindowsAzureストレージシステムにアクセスしていることになります。
    • MongoDBは、独自のキャッシュに大量のメモリを使用します。このため、多くの大規模なMongoDBシステムがより大きなインスタンスサイズにデプロイされています。テーブルストレージアクセスの場合、同じメモリサイズの考慮事項はありません。

    2015年4月7日編集 ドキュメントベースのデータベースをサービスとして使用する場合、AzureはDocumentDBを提供するようになりました。



    1. MongoDB $ mod

    2. useMongoClient(Mongoose 4.11.0)を設定するにはどうすればよいですか?

    3. redisがすでにスタックの一部である場合、なぜMemcachedがRedisと一緒に使用されているのですか?

    4. パス_idの値XXXのマングースエラーCasttoObjectIdが失敗したのは何ですか?