Windows AzureでNoSQLデータベースを使用したい場合、データボリュームが非常に大きくなります。 AzureテーブルストレージまたはWorkerロールを使用して実行されているMongoDBデータベースが、より優れたパフォーマンスとスケーラビリティを提供できるかどうか誰もWorkerの役割を使ってAzureでMongoDBを使用しましたか? AzureのMongoDBをAzureのテーブルストレージで使用することについてのご意見をお聞かせください。AzureテーブルとAzureのMongoDB
答えて
テーブルストレージは、(アカウントごと
100TB
200TB
500 TB)スケーラブル(データセンター内三重複製、必要に応じて別のデータセンターにgeoreplicated)耐久性、およびスキーマレスであるように設計され、コアのWindows Azureストレージ機能です(各行には任意のプロパティを含めることができます)。行はパーティションキー+行キーによって配置され、非常に高速なルックアップを提供します。すべてのテーブルストレージへのアクセスは、どの言語(SDK、REST APIの上に構築され、.NET、PHP、Java、Python & Ruby用にすでに用意されています)で使用できる明確なREST APIを介して行われます。
MongoDBはドキュメント指向のデータベースです。 AzureでMongoDBを実行するには、MongoDBをWeb/Workerロールまたは仮想マシンにインストールし、それをクラウドドライブ(ドライブレターを提供する)または接続ディスク(Windows/Linux仮想マシン用)に指定し、オプションでジャーナリングをオンにする必要があります(私はこれをお勧めします)、必要に応じて外部エンドポイントを定義して使用する(または仮想ネットワーク経由でアクセスする)ことができます。クラウドドライブ/アタッチドディスクは実際にAzure Blobに格納され、Azureテーブルと同じ耐久性とジオリクリケーションを提供します。
2つを比較すると、Table StorageはStorage As-a-Serviceであることに注意してください。よく知られているRESTエンドポイントにアクセスするだけです。 MongoDBでは、データベースを管理する責任があります(たとえば、MongoDB Inc(以前の10gen)が新しいバージョンのMongoDBをプッシュする場合は、それに応じてサーバーを更新する必要があります)。 MongoDBの株式会社のアルファ版について
はjtoberonによって指さ:あなたはそれをよく見て取る場合は、いくつかの重要なものが表示されます:
- セットアップがreplica-せずに、スタンドアロンのMongoDBインスタンスのためでありますセットまたはシャード。レプリカセットに関しては、Blobストレージの仕組みのせいで、スタンドアロン版を使用した場合でもいくつかの利点があります。
- 高可用性を実現するために、複数のインスタンスで実行できます。この場合、データベースには1つのインスタンスしか提供されず、もう1つが失敗するとすぐにmongodプロセスを起動する「ウォームスタンバイ」(メンテナンス再起動、ハードウェア障害など)があります。
10genのWindows Azureラッパーは「アルファ」と見なされますが、mongod.exeはまだありません。他のWindows exeを起動するのと同じように、mongod exeを起動することができます。それは打ち上げを中心とした管理コードなので、アルパの実装が示していることです。
EDIT 2011-12-8:これはもはやアルファ状態ではありません。レプリカセットのサポートを提供する最新のMongoDB + Windows Azureプロジェクトhereをダウンロードできます。
パフォーマンスについては、ベンチマークを行う必要があると思います。
- テーブルストレージまたはMongoDBのいずれかに、たとえばWebロールからアクセスする場合、Windows Azureストレージシステムに依然としてアクセスしていることになります。
- MongoDBは、独自のキャッシュに大量のメモリを使用します。このため、多数の大規模なMongoDBシステムがより大きなインスタンスサイズに展開されます。テーブルストレージアクセスの場合、同じメモリサイズの考慮事項はありません。
EDIT 2015年4月7日 あなたはサービスとしてのドキュメントベースのデータベースを使用する場合は、Azureが今DocumentDBを提供しています。
私は両方を使用しました。
Azureテーブル:死んでシンプルで、速く、簡単なクエリでも簡単に書くのは難しいです。
Mongo:多くのクエリ機能では、複数のインスタンスを信頼できるものにする必要があります。
一言で言えば、クエリが本当にシンプルな場合(key-> value)、AzureのMongoをホスティングするコストと比較してコストの比較を実行する必要があります。私はむしろそれのためのテーブルストレージに行くだろう。 より精巧なクエリが必要で、SQL Azureに行きたくない場合は、おそらくMongoが最適です。
これはWCF Data Servicesのようなエンドポイントを公開した後も変わりませんか?私はあなたがそれらのエンドポイントを介してLINQを行うことができると思います –
あなたのコメントを説明することができますか(または参照を参照してください) "信頼できるいくつかのインスタンスが必要です"?なぜ2は信頼できないでしょうか? – Mark
はい、Azure Tablesのクエリは、新しいリリースでも難しいです。 LINQを行うことはできますが、すべての機能がサポートされているわけではありません。たとえば、orderby、 "contains"、countなどがあり、エラーになります。 PKに対するもの以外のクエリは、テーブルスキャンの結果となります。 – Daniel
小規模ビジネス
のための理由は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私の最初の選択肢はAzureTablesです
ドキュメントentDB 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
n番目の選択肢何の睡眠を持っていないのMongoDBだけでなく、私が見ていきます、すべて自分でSHOWを管理もう一度最初の2つのSAAS
「CLOUD」を実行している場合は私が選択します質問はそれが価格設定が の仕組みAzureのAzureTablesまたはDocumentDBまたはAzureSQL
DocumentDBドキュメント http://azure.microsoft.com/en-us/documentation/services/documentdb/
されているもの私のアプリが必要です... SaaSモデルのため
を "RENT-IT" を可能な限り行くでしょうhttp://azure.microsoft.com/en-us/pricing/details/documentdb/
私はこの質問が日付であることを実感です。私は彼らの検索でこの質問に来るかもしれない人々のための次の情報を追加したいと思います。
ここで、MongoDBはAzure上で完全に管理されたサービスとして提供されることに注意してください。(正式にベータ版では4月'15のような)
参照: 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/
はすべて良いです - しかし、本当の答えが依存あなたの必要条件は何ですか?処理しているデータのサイズ、データで実行する操作の種類、ニーズに合ったソリューションを選択する必要があります。
Build 2016では、DocumentDBがすべてのMongoDBドライバをサポートすると発表されました。これは、DocDBのツーリング問題の欠如を解決し、Mongoアプリの移行を容易にします。
覚えてことの一つは、Azureテーブルストレージが複雑なデータ型をサポートしていません .ITは、文字列または数値またはブールまたは日付であるためにエンティティ内のすべてのプロパティをサポートしているなど 一つはに対してオブジェクトを格納することはできませんキー、私はNoSql DBのためにあると感じます。 プロパティタイプへ https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/understanding-the-table-service-data-modelスクロール
"Azureテーブルストレージはサポートしていません複雑なデータ型 "それは完全に正しいわけではありません。 Azure Storage SDKバージョン8.0.0.0では、SDKにAPIが追加され、複雑なオブジェクトがテーブルストレージに書き込まれます。 https://msdn.microsoft.com/en-us/library/azure/mt775434.aspxおよびhttps://msdn.microsoft.com/en-us/library/azure/mt775432.aspxを参照してください。私はこれらのAPIを書いています:)もし何かコメントがありましたらお気軽にお尋ねください。 –
Node.jsで例を共有してください。また、64 KBの上限を強制的に適用するプロパティサイズの制約があります。非常に大きなオブジェクトですか?ありがとうございます... –
はい私はシリアライズとデシリアライズによってこれを行うことができますが、No-SQL DBはデフォルトで何も特別な手間をかけずにサポートするはずですが、Azureはテーブルタイプのストレージ(列は賢明で、簡単なキー値データに最適です)。 –
- 1. Azure CloudのMongoDB
- 2. azure cli mongodb connectivity
- 3. AzureテーブルストレージとCosmosDBテーブルAPI
- 4. Azureテーブルのプロパティ/カラムリスト
- 5. Azureモバイルサービス:テーブルのシリアライズ
- 6. Azureテーブルの例外
- 7. Azure DocumentDB with MongoDB Protocolスパークインテグレーション
- 8. Azure/Centos mongodbポートを許可
- 9. Azure CosmosDB MongoDBクエリ方法:クエリエクスプローラ
- 10. Azureテーブルストレージデザイン:エンティティごとのテーブルとPartitionKey
- 11. Windows Azureテーブル - 行数?
- 12. Azureテーブルのストレージトランザクションの制限
- 13. ハイブ、スパークSQLとAzure USQLのテーブル関係
- 14. StorageTableのAzure PolyBase外部テーブル
- 15. Azureの、簡単にテーブル、UWP
- 16. NLOG&Azureのテーブル記憶
- 17. azureのmongodbデータベースから行を削除
- 18. (AZURE cosmosDB/MongoDBの)更新フィールドは
- 19. Azure WebJobsとAzure SQL Server?
- 20. Azure VMログとAzureストレージ
- 21. Azure SQLとMySQL用Azureデータベース
- 22. AzureのSQL(未AzureのSQL DW)のBlobストレージで外部テーブル
- 23. AzureモバイルアプリのAzureテーブルスクリプトの別のテーブルに挿入
- 24. 値の違い - AzureテーブルのストレージAzureテーブルストレージのタイムスタンプと新しいDateTimeプロパティ
- 25. Azureのストレージテーブルazure
- 26. Azure Easy Tables(Azure App Servicesテーブル)へのHTTP認証
- 27. 別のAzure Windows VMからAzureウィンドウVMのmongodbに接続できます
- 28. Azure IoTHubとAzure IoTEdgeの間の通信?
- 29. Azure Cosmos DBテーブルAPI - LIST Generic
- 30. Azure MongoDBを使用したMeteor
私はこれを自分トリスいませんが、MongoDBはAzureのアドオンとして店を通ってくるようです。おそらくAzureテーブルストレージのような単純な配置になります。 – John