Azure Cosmos DB for NoSQL とは
まず、いくつかの定義と、Azure Cosmos DB for NoSQL のクイック ツアーを見ていきましょう。 この概要は、Azure Cosmos DB が自分の作業に適しているかどうかを判断するのに役に立ちます。
NoSQL データベースとはどのようなものか
開発者は、最新のアプリの固有の課題に対応できる新しい種類のデータベースを必要としています。 NoSQL データベースは、次のようなニーズに対応するように設計されています。
- 大量のデータ。
- さまざまなソースとフォームを持つデータ。
- 異なる種類のデータを格納するための動的なデータ スキーマ。
- 高速データやリアルタイム データの使用。
NoSQL データベースは、特定の正式な定義ではなく、共通する一般的な特性によって定義します。 次のような特性があります。
- 非リレーショナル データ ストア。
- スケールアウトするように設計されています。
- 特定のスキーマを適用しません。
通常、NoSQL データベースでは、リレーショナル制約が適用されない、またはデータにロックが設定されないため、書き込みが速くなります。 また、多くの場合、シャーディングまたはパーティション分割によって水平方向にスケーリングするように設計されているため、サイズに関係なく高パフォーマンスを維持できます。
多くの NoSQL データ モデルがありますが、NoSQL データベースでデータをモデル化するときは、4 つの広範なデータ モデル ファミリが一般的に使用されます。
今後は、Azure Cosmos DB for NoSQL でサポートされるデータ モデルである ドキュメント データ モデルに焦点を当てます。
ドキュメント データ モデルで NoSQL データベースを使用する理由
ドキュメント データ モデルは、データを個々の ドキュメント エンティティに分割します。 ドキュメントでは任意の構造化データ型を使用できますが、よく使用されるデータ形式は JSON です。 JSON は Azure Cosmos DB for NoSQL でネイティブにサポートされています。
ドキュメントはアトミック エンティティであり、同じデータベース内の他のドキュメントに格納されているデータに関係なく、独自のデータ形式を持つことができます。 このような柔軟性があるため、事前にスキーマを定義する必要がなく、簡単に新しいアプリケーションを迅速にビルドできます。 さらに、この柔軟性により、異なる種類のデータをまとめて格納し、アプリケーションの有効期間を通じてモデルを進化させることができます。
JSON ドキュメントとは
JavaScript Object Notation ( JSON) は軽量のデータ形式です。 JSON は、JavaScript 言語でのオブジェクトのリテラル表記と高い互換性を持つように作られています。 多くのフレームワーク、ブラウザー、データベースで JavaScript がネイティブにサポートされていることから、JSON はデータを送信および保存するための一般的な形式になっています。
JSON ドキュメントの例を次に示します。
{
"device": {
"type": "mobile"
},
"sentTime": "2019-11-12T13:08:42",
"spoolRefs": [
"6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
"79e78fe2-93aa-4688-89db-a7278b034aa6"
]
}
ご覧のように、JSON は内容がはっきりわかる比較的読みやすいデータ形式です。 また、JSON は、JavaScript アプリケーションで解析や使用するのも比較的簡単です。
Azure Cosmos DB for NoSQL とは
Azure Cosmos DB for NoSQL は、多様なデータに対する豊富なクエリ実行機能を備え、新世代の生成 AI アプリケーションをサポートする、高速な NoSQL のベクトル データベース サービスです。 構成可能で信頼性の高いパフォーマンスを提供し、グローバルに分散され、迅速な開発を可能にします。
NoSQL API は、ドキュメントを操作するためのコアまたはネイティブ API です。 NoSQL API により、JSON ドキュメント、使い慣れた構文を持つクエリ言語、一般的なプログラミング言語用のクライアント ライブラリを利用した、高速で柔軟な開発がサポートされます。 また、Azure Cosmos DB はベクトル インデックス作成やベクトル検索などの独自の機能も備え、ユーザーは、速やかに効率よくスケーリングできる、ユーザーのデータに対する新しいタイプの生成 AI アプリケーションを作成できます。
Azure Cosmos DB for NoSQL には、次のような利点があります。
- 高次元ベクトルを処理するように設計されたベクター インデックス作成と検索を備えた業界をリードするベクター データベースにより、任意の規模で効率的かつ正確なベクター検索が可能になります。
- バーストを通じても、あらゆるスケールでスピードが保証されます。瞬時で無限の弾力性、高速読み取り、マルチマスター書き込みなど、世界中のどこでも可能です。
- .NET、Java、Python、JavaScript、GO などの一般的な言語とフレームワーク用の SDK を使用した高速で柔軟なアプリ開発と、ETL なし (抽出、変換、読み込み) 分析。
- 保証されたビジネス継続性、99.999% の可用性、エンタープライズ レベルのセキュリティを備えたミッション クリティカルなアプリケーションに対応します。
- フル 機能を 備えたサーバーレス オファリングと、アプリケーションのニーズに対応する即時、自動、動的スケーリングにより、フル マネージドでコスト効率に優れています。
これらの機能により、Azure Cosmos DB は最新のアプリケーション開発に最適です。 Azure Cosmos DB for NoSQL は、次のようなアプリケーションに特に適しています。
- トラフィックの予期しない急激な増加と減少が発生する
- 大量のデータを生成する
- リアルタイムのユーザー エクスペリエンスを提供する必要がある
- ビジネス継続性に依存する
Azure Cosmos DB for NoSQL は、柔軟なスキーマを備えたネイティブ JSON ドキュメントを格納できます。 データには自動的にインデックスが付けられ、JSON データ用に設計された SQL クエリ言語のフレーバーを使用してデータのクエリを実行できます。 NoSQL API には、.NET、Python、Java、 Node.js、GO などの一般的なフレームワーク用の SDK を使用してアクセスできます。