Azure Cosmos DB for NoSQL とは

完了

まず、いくつかの定義と、Azure Cosmos DB for NoSQL のクイック ツアーを見ていきましょう。 この概要は、Azure Cosmos DB が自分の作業に適しているかどうかを判断するのに役に立ちます。

NoSQL データベースとはどのようなものか

開発者は、最新のアプリの固有の課題に対応できる新しい種類のデータベースを必要としています。 NoSQL データベースは、次のようなニーズに対応するように設計されています。

  • 大量のデータ。
  • さまざまなソースとフォームを持つデータ。
  • 異なる種類のデータを格納するための動的なデータ スキーマ。
  • 高速データやリアルタイム データの使用。

NoSQL データベースは、特定の正式な定義ではなく、共通する一般的な特性によって定義します。 次のような特性があります。

  • 非リレーショナル データ ストア。
  • スケールアウトするように設計されています。
  • 特定のスキーマを適用しません。

通常、NoSQL データベースでは、リレーショナル制約が適用されない、またはデータにロックが設定されないため、書き込みが速くなります。 また、多くの場合、シャーディングまたはパーティション分割によって水平方向にスケーリングするように設計されているため、サイズに関係なく高パフォーマンスを維持できます。

多くの NoSQL データ モデルがありますが、NoSQL データベースでデータをモデル化するときは、4 つの広範なデータ モデル ファミリが一般的に使用されます。

さまざまな NoSQL モデル (キー値、ドキュメント、グラフ、列ファミリ ストア) を示す図。

以下では、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 のベクトル データベース サービスです。 構成可能で信頼性の高いパフォーマンスを提供し、グローバルに分散され、迅速な開発を可能にします。

4 つのグローバル分散ノードが線で接続されている世界地図の図。

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 には、.NETPythonJavaNode.jsGO などの一般的なフレームワーク用の SDK を使ってアクセスできます