2017-10-28 26 views
2

Microsoft Cosmos DBには、DocumentDB API、Table APIなどが含まれています。私は約10 TBのデータを持っており、高速なキー値検索をしたいと思っています(ほとんど更新と書き込みはほとんど読んでいます)。マイクロソフトコスモスDBのリンクを追加します。 https://docs.microsoft.com/en-us/azure/cosmos-db/Microsoft Cosmos DB(DocumentDB API)とCosmos DB(テーブルAPI)

  1. だから私はDocumentDBのAPIと表のAPIの間で選択すべきか?
  2. また、いつDocumentDB APIを選択する必要がありますか?いつTable APIを選択する必要がありますか?
  3. 10 TBのデータを格納するためにDcoumentDB APIを使用することをお勧めしますか?

答えて

1

したがって、私はDocumentDB APIとTable APIのどちらを選択する必要がありますか?

DocumentDB APITable APIの間の選択は、主に保存するデータの種類によって異なります。 DocumentDB APIschema-less JSON database engine with SQL querying capabilitiesを提供するが、Table APIkey-value storage database serviceを提供する。データがkey-valueに基づいていると述べたので、Table APIを使用することをお勧めします。

いつDocumentDB APIを選択する必要がありますか?いつTable APIを選択する必要がありますか?

と同じです。

10 TBのデータを格納するためにDcoumentDB APIを使用することをお勧めしますか?

Document DB APITable APIは、膨大な量のデータを保存するように設計されています。

しかし、Azure Table Storageも参照してください。 Cosmos DBを使用すると、必要なスループットと堅牢なインデックス作成/クエリのサポートを細かく調整できます。一方、Azure Tablesは固定スループットと制限付きインデックス/クエリのサポートが付属しており、Cosmos DBと比較して非常に安いです。

コスモスDBの詳細については、https://docs.microsoft.com/en-us/azure/cosmos-db/introductionをご覧ください。

+0

。私はCosmos Table APIまたはDocumentDB APIに移行しようとしています。 Cosmos Table APIにSQLクエリー機能はないようです。また、データに対していくつかのクエリを実行する必要があります。 – nkhuyu

+0

プレミアムテーブルのクエリ機能があります(Azureテーブルと同じですが、集計などがあります)。 –

4

Azure Tableのストレージコミュニティは、Cosmos DBとその高度なインデックス作成、ジオ配信などの機能を利用できるようAzure Cosmos DB Table APIを導入しました。コスモスDBだけが提供する高度な機能を必要とするAzure Tableストレージを使用している人は、文字通り接続文字列を変更することができ、既存のコードはCosmos DBと連携するという考えがあります。

グリーンフィールドのお客様は、Table APIのスーパーセットであるSQL API(旧Document DB API)の使用をお勧めします。 Googleでは、Table APIの場合、長年変わっていないAzure TableストレージのAPIとの互換性を維持しようとしているSQL APIに、より高度な機能を提供するために絶えず投資しています。

どのくらいのデータを持っていても、選択したAPIには何の影響もありません。これらは両方とも同じマルチモデルインフラストラクチャを持ち、同じサイズのデータ​​、クエリの読み込み、配布などを処理できます。

1

オフトピックとしてフラグを立てないでください。

ドキュメントインターフェイスを検討している場合、実際には、DataContractクラス(と私は他のすべての人が信じる)がCosmosにどのように変換されるかに影響する大文字小文字の区別がありません。

以下のリンク先の説明では、Newtonsoft.Jsonに大文字小文字の区別がないことがわかります。これは、渡したオブジェクトやAPIから直接取得するオブジェクトの処理に影響を与える可能性があります。コスモスには何らかの欠陥がありますが、実際それは完全に優れています。しかし、ドキュメントAPIを使用すると、(私のように)DataContractオブジェクトをCosmosに渡すことができます(明らかに間違いではなく、実際オブジェクトAPIから非常に期待されています)。しかし、シリアライザと名前付け戦略のハンドラオプションあなたはおそらく少なくとも前向きに気づいている方が良いでしょう。

オブジェクトインターフェイスでこの動作を認識するためのメモを追加するだけです。議論はGitHubの上でここにある:私たちは現在、Azureテーブルストレージを使用している

https://github.com/JamesNK/Newtonsoft.Json/issues/815