Windows AzureでNoSQLデータベースを使用したいのですが、データボリュームが非常に大きくなります。 Azureテーブルストレージまたはワーカーロールを使用して実行されているMongoDBデータベースは、パフォーマンスとスケーラビリティを向上させることができますか?誰かがWorkerロールを使用してAzureでMongoDBを使用しましたか? Azureテーブルストレージを介してAzureでMongoDBを使用することについての考えを共有してください。
テーブルストレージは、Windows Azureのコアストレージ機能であり、スケーラブルに設計されています(100TB200TB アカウントあたり500TB)、耐久性(データセンターでトリプル複製、オプションで別のデータセンターにジオ複製)、およびスキーマレス(各行に必要なプロパティを含めることができます)。行はパーティションキー+行キーによって配置され、非常に高速な検索を提供します。すべてのテーブルストレージアクセスは、明確に定義されたREST任意の言語で使用可能なAPIを介して(SDKを使用して、REST API、 .NET、PHP、Java、Python&Ruby)。
MongoDBはドキュメント指向のデータベースです。 Azureで実行するには、Web /ワーカーロールまたは仮想マシンにMongoDBをインストールし、クラウドドライブ(ドライブ文字を提供)または接続されたディスク(Windows/Linux仮想マシンの場合)にポイントし、オプションでジャーナリングをオンにする必要があります(推奨)、およびオプションで使用する外部エンドポイントを定義します(または仮想ネットワーク経由でアクセスします)。ちなみに、クラウドドライブ/接続されたディスクは、実際にはAzure Blobに格納されており、Azure Tablesと同じ耐久性とジオレプリケーションを提供します。
2つを比較する場合、テーブルストレージはStorage-as-a-Serviceであることに注意してください。よく知られたRESTエンドポイントにアクセスします。MongoDBを使用すると、データベースを管理する責任があります。 MongoDB Inc(以前の10gen)がMongoDBの新しいバージョンをプッシュするたびに、それに応じてサーバーを更新する必要があります)。
Jtoberonが指しているMongoDB Incのアルファバージョンについて:それをよく見ると、いくつかの重要なことがわかります。
10genのWindows Azureラッパーはまだ「アルファ」と見なされていますが、mongod.exeはそうではありません。他のWindows exeを起動するのと同じように、mongod exeを起動できます。これは、起動時の管理コードに過ぎず、それがアルパの実装が実証しているものです。
EDIT 2011-12-8:これはアルファ状態ではなくなりました。最新のMongoDB + Windows Azureプロジェクトをダウンロードできます here 、これはレプリカセットサポートを提供します。
パフォーマンスのために、ベンチマークを行う必要があると思います。そうは言っても、次のことを考慮してください。
2015年4月7日編集ドキュメントベースのデータベースをサービスとして使用する場合、AzureはDocumentDBを提供するようになりました。
私は両方を使用しました。
Azure Tables:とてもシンプルで高速、簡単なクエリでさえ書くのは本当に難しいです。
Mongo:正常に実行され、多くのクエリ機能があり、いくつかのインスタンスが信頼できる必要があります。
簡単に言えば、クエリが非常に単純な場合(キー->値)、コスト比較(主にストレージに対するトランザクション数とAzureでのMongoのホスティングコスト)を実行する必要があります。そのためにテーブルストレージに行きたいです。より複雑なクエリが必要で、SQL Azureにアクセスしたくない場合は、おそらくMongoが最適です。
私はこの質問が時代遅れであることを理解しています。検索でこの質問に出くわす可能性がある人のために、次の情報を追加したいと思います。
現在、MongoDBはAzureで完全に管理されたサービスとして提供されています。 (正式には15年4月のベータ版)
参照: http://www.mongodb.com/partners/cloud/Microsoft または https://Azure.Microsoft.com/en-us/blog/announcing-new-mongodb -instances-on-Microsoft-Azure /
参照(価格設定を含む): https://Azure.Microsoft.com/en-us/marketplace/partners/mongolab/mongolab/
私の最初の選択はAzureTablesです。なぜなら、SAASモデルと低コストおよびSLA 99.99%
http://alexandrebrisebois.wordpress.com/2013/07/09/what-if-20000-windows-Azure-storage-transactions-per-second-isnt-enough/
いくつかの制限.. http://msdn.Microsoft.com/en-us/library/windowsazure/jj553018.aspx
http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management
または小規模ビジネス向けのAzureSQL
DocumentDB http://Azure.Microsoft.com/en-us/documentation/services/documentdb/http://Azure.Microsoft.com/en-us/documentation/articles/ documentdb-limits /
2番目の選択は、Amazonを含む多くのクラウドプロバイダーがS3を提供することです
またはGoogleテーブル https://developers.google.com/bigquery/pricing
nTHの選択でSHOWを管理し、自分ですべての睡眠を取りませんMongoDBよく最初の2つのSAASをもう一度調べます
「CLOUD」を実行している場合の選択私は、可能な限り「RENT-IT」のSAASモデルを選択します...
問題は、AzureTables、DocumentDB、またはAzureSQLです。
DocumentDBのドキュメント http://Azure.Microsoft.com/en-us/documentation/services/documentdb/
Azureの価格設定の仕組み http://Azure.Microsoft.com/en-us/pricing/details/documentdb/
これは楽しいです http://www.documentdb.com/sql/demo
Build 2016では、DocumentDBがすべてのMongoDBドライバーをサポートすることが発表されました。これにより、DocDBのツールに関する問題の一部が解決され、Mongoアプリの移行が容易になります。
上記の答えはすべて良いですが、本当の答えはあなたの要件が何であるかに依存します。処理するデータのサイズ、データに対して実行する操作の種類を理解してから、ニーズに合ったソリューションを選択する必要があります。
覚えておくべきことの1つは、Azure Table Storageは複雑なデータ型をサポートしないことです。など。キーに対してオブジェクトを保存することはできません。これはNoSql DBに必要だと思います。 https://docs.Microsoft.com/en-us/rest/api/storageservices/fileservices/understanding-the-table-service-data-model スクロールしてプロパティタイプ