分散 NoSQL データベースについて

適用対象: NoSQL MongoDB Cassandra Gremlin Table

Azure Cosmos DB は、NoSQL とあらゆる規模のリレーショナル データベースの両方に対応するグローバルに分散されたデータベース プラットフォームです。 この記事では、Azure Cosmos DB のさまざまな NoSQL API オプションのコンテキストで分散 NoSQL データベースについて説明します。

Azure のその他のデータ ストレージ オプションの詳細については、「Azure アーキテクチャ センターで適切なデータ ストアを選択する」を参照してください。

課題

リレーショナル データベース システムを保守する際の最も明白な課題の 1 つは、ほとんどのリレーショナル エンジンで、厳密な ACID セマンティクスを強制するためにロックとラッチが適用されていることです。 このアプローチは、アクセス方法に関係なく、データベースでデータの状態の高い一貫性が必要なシナリオで役立ちます。 このアプローチは高い一貫性を約束しますが、コンカレンシー、待機時間、可用性に関して大きなトレードオフが発生します。 この制限は基本的にアーキテクチャ上の制限であり、トランザクション ワークロードが高いチームは、多くの異なるデータベースまたはデータベース ノード間でデータを手動で分散またはシャーディングするなどの回避策を見つける必要があります。 これらの回避策は時間がかかり、実装が困難な場合があります。

NoSQL データベース

NoSQL データベース とは、コンカレンシー、待機時間、可用性のトレードオフを最小限に抑えるために一貫性を調整することで水平方向のスケーリングを簡略化するように設計されたデータベースを指します。 NoSQL データベースでは、構成可能な一貫性レベルが提供されているため、データを多数のノードにまたがってスケーリングし、アプリケーションのニーズにより適切にマップされる速度または可用性を提供できます。

分散データベース

分散データベースとは多くの異なるインスタンスまたは場所にまたがってスケーリングするデータベースを指します。 多くの NoSQL データベースはスケールを考慮して設計されていますが、必ずしもすべてが分散データベースであるとは限りません。 さらに、多くの NoSQL データベースは、ローカル冗長性のために冗長ノードに分散したり、geo冗長性のためにグローバルに分散したりするのに時間と労力を必要とします。 グローバル分散データベースの計画、実装、ネットワークの要件は複雑になる可能性があります。

Azure Cosmos DB

NoSQL データベースでもある分散データベースを使用すると、大量のトランザクション ワークロードの構築と管理がにわかに容易になりました。 Azure Cosmos DB は、NoSQL とリレーショナル バリアントの両方で分散データ API を提供するデータベース プラットフォームです。 具体的には、NoSQL API の多くには、実際のアプリケーション要件を満たす一貫性または可用性のレベルを微調整できるさまざまな整合性オプションが用意されています。 データベースは、速度と可用性に対するトレードオフとの高い一貫性を提供するように構成できます。 同様に、データベースは、レプリケートされたデータの一貫性と待機時間に対する予測可能なトレードオフで最高のパフォーマンスを提供するように構成できます。 Azure Cosmos DB は、ローカル インスタンス間またはグローバルにデータを自動的かつ動的に分散します。 Azure Cosmos DB では、ACID を保証し、アプリケーションの要件に合わせてスループットをスケーリングすることもできます。

次のステップ

Azure Cosmos DB SQL API をの概要