私は新しいプロジェクトにデータベーステクノロジーを選択しています。 AzureDocumentDBとAzureTable Storageの主な違いは何ですか?
DocumentDBの主な利点は、全文検索と豊富なクエリ機能にあるようです。正しく理解していれば、Lucene/Elasticsearchなどの個別の検索エンジンライブラリは必要ありません。
一方、テーブルストレージははるかに安価です。
私の決定に影響を与える可能性のある他の違いは何ですか?
私は Azure Search Luceneの代替と考えています。私はLucene.netをワーカーの役割で使用しましたが、インフラストラクチャや取り込みなどの問題に対処する必要がないという考えだけで、AzureSearchサービスは非常に魅力的です。
Azureストレージでアプローチしたシナリオがあります。このシナリオでは、 DocumentDB が適切であると見なされており、それが私の視点を説明している可能性があります。
Azureストレージを使用して、Azure SQLデータベースの外部のソリューションでユーザーアクティビティの毎日の概要を準備および保持しました。概要は多数のクライアントから頻繁に要求され、特定の時間にスパイクが発生する可能性が高いためです。その日。多くのシナリオの使用パターン(私のスキーマ)を一度読み取った単純な書き込みAzure SQL dbは、ストレージの容量に完全に適合しているにもかかわらず、対処するのが難しいことを発見しました(ところで、サイズのために毎日の要約はキャッシュにありませんでした)。
このシナリオは時間の経過とともに進化し、今ではこれらの要約でより集約されたデータを使用できるようになり、更新がより複雑になりました。
これらの毎日の要約をDocumentDBに保持すると、シナリオの一部である書き込みがより細かくなり、複雑な要約の関連データのみが更新され、より多くの要約の一部を取得する機能が簡単なクエストになるため、読み取り部分が簡単になります。 。
データが 非構造化でかなり複雑 であり、豊富なクエリ機能が必要なシナリオでは、 DocumentDB を検討します(テーブルストレージはこの部分で遅れています)。
高スループットの全文検索が必要なシナリオでは、 Azure Search を検討します。
DocumentDBをSearchと正確に比較するためのクォータ/期待されるパフォーマンスは見つかりませんでしたが、Luceneの代わりにSearchが最適であると強く考えています。
HTH、ダビデ