次の方法で共有


DocumentDB: Azure Cosmos DB for MongoDB 仮想コアを支えるオープンソース エンジン

Azure Cosmos DB for MongoDB 仮想コアは、オープンソースのドキュメント データベース プラットフォームである DocumentDB 上に構築されています。 この記事では、DocumentDB の概要、その機能、アーキテクチャ、およびこのテクノロジに貢献または使用する方法について説明します。

DocumentDB とは

DocumentDB は、PostgreSQL エンジン上に構築されたドキュメント データ ストア用の、完全に制限の緩いオープン ソース プラットフォームです。 これは、Azure Cosmos DB for MongoDB 仮想コアの基盤として機能し、NoSQL データベースのニーズに対して強力で柔軟なソリューションを提供します。

DocumentDB は本当に Open-Source MongoDB の実装です

SSPL などの制限付きライセンスを持つ他の MongoDB エンジンとは異なり、DocumentDB では制限のない MIT ライセンスが使用されます。 つまり、開発者は、商用ライセンス料金や使用制限なしに、ソフトウェアを完全に自由に使用、変更、配布できます。 特定の用途を制限できる MongoDB のサーバー側パブリック ライセンス (SSPL) とは対照的に、DocumentDB の MIT ライセンスは真のオープンソースの自由を保証します。

DocumentDB はマルチクラウドであり、ベンダーに依存しない

DocumentDB は、ドキュメント データ ストア用の移植可能で相互運用可能なソリューションを提供します。 PostgreSQL 上に構築されているため、開発者はさまざまなクラウド プロバイダーまたはオンプレミスにアプリケーションをデプロイできるため、ベンダーのロックインを回避できます。 この柔軟性により、組織はデータベースの機能を損なうことなく、ニーズに最適なインフラストラクチャを選択できます。

DocumentDB は、NoSQL データベースの Game-Changer である PostgreSQL 上に構築されています

NoSQL とリレーショナル データベースの区別があいまいになるにつれて、DocumentDB はこのギャップを埋め、ほとんどのスケーラブルなワークロードに優れたドキュメント データベース エクスペリエンスを提供します。 両サイドの長所を組み合わせ、NoSQL データベースに通常関連付けられている柔軟性とスケーラビリティを提供しながら、PostgreSQL のパワーと広範な機能セットを活用します。これは、現在最も採用され、尊重されているオープンソース データベースの 1 つです。 この基盤は、堅牢性、信頼性、PostgreSQL のツールと拡張機能のエコシステムへのアクセスを提供します。 開発者は、PostgreSQL の継続的な進化と広範なコミュニティ サポートを利用しながら、ドキュメント データベースの柔軟性を利用できます。

主な機能

DocumentDB には、ドキュメント データベース操作に対して堅牢な選択肢となるいくつかの重要な機能が用意されています。

  • BSON ドキュメントの解析と操作: すべてのレベルの入れ子でバイナリ JSON (BSON) ドキュメントを効率的に処理します。
  • 高度なインデックス作成機能: 単一フィールド、マルチキー、複合、テキスト、地理空間インデックスのサポート。
  • ベクター検索クエリ: pg_vector PostgreSQL 拡張機能を利用して、さまざまな AI アプリケーションと機械学習アプリケーションを実現します。
  • 認証メカニズム: SCRAM (Salted Challenge Response Authentication Mechanism) 認証が含まれています。
  • 地理空間クエリ: PostGIS 拡張機能の機能を使用する。
  • Decimal128 の完全なサポート: Intel 浮動小数点演算ライブラリを搭載。
  • 正規表現のサポート: PCRE2 プロジェクトの活用

アーキテクチャ

DocumentDB は、次の 2 つの主要なコンポーネントで構成されます。

  1. pg_documentdb_core: PostgreSQL での BSON データ型のサポートを最適化するカスタム PostgreSQL 拡張機能。
  2. pg_documentdb_api: CRUD 操作、クエリ機能、およびインデックス管理を実装するデータ プレーン。

このアーキテクチャにより、PostgreSQL エンジン上にエンドツーエンドの NoSQL データベース ユーザー エクスペリエンスを構築できます。

DocumentDB への貢献

DocumentDB はオープンソース プロジェクトとして、コミュニティからの貢献を歓迎します。 次の方法で投稿できます。

  • GitHub での pull request のスター付け、フォーク、送信
  • 問題の報告または改善の提案
  • Microsoft OSS Discord サーバー上の #documentdb チャネルでのディスカッションへの参加

DocumentDB の概要

DocumentDB をローカルで使用するには:

1. Docker をインストールします。

2. DocumentDB リポジトリを複製します。

git clone https://github.com/microsoft/documentdb.git

3. Docker イメージを作成します。 複製されたリポジトリに移動します。

docker build . -f .devcontainer/Dockerfile -t documentdb 

4. Docker イメージをコンテナーとして実行します。

docker run -v $(pwd):/home/documentdb/code -it documentdb /bin/bash 

5. バイナリをビルドしてデプロイします。

cd code
make
sudo make install

6. DocumentDB サーバーを初期化し、依存関係を管理します。

./scripts/start_oss_server.sh -t documentdb

7. psql シェルに接続します。

psql -p 9712 -h localhost -d postgres

これらの手順を実行すると、すべて DocumentDB をローカルで使用するように設定されます。

よく寄せられる質問

DocumentDB とは何ですか。また、Azure Cosmos DB for MongoDB 仮想コアとどのように関連していますか?

DocumentDB は、PostgreSQL エンジン上に構築されたドキュメント データ ストア用の、完全に制限の緩いオープン ソース プラットフォームです。 これは、Azure Cosmos DB for MongoDB 仮想コアの基盤として機能し、NoSQL データベースのニーズに対して強力で柔軟なソリューションを提供します。

DocumentDB のライセンスは、他の MongoDB 実装とどのように比較されますか?

DocumentDB は、制限のない MIT ライセンスを使用します。これにより、開発者は、商用ライセンス料金や使用制限なしで、ソフトウェアを自由に使用、変更、配布できます。 これは、一部の MongoDB プロバイダーのサーバー側パブリック ライセンス (SSPL) とは異なり、特定の用途を制限できます。

DocumentDB は異なるクラウド プロバイダー間で使用できますか?

はい。DocumentDB はマルチクラウドであり、ベンダーに依存しません。 PostgreSQL 上に構築されているため、開発者はさまざまなクラウド プロバイダーまたはオンプレミスにアプリケーションをデプロイできるため、ベンダーのロックインを回避し、ニーズに最適なインフラストラクチャを柔軟に選択できます。

DocumentDB の主な機能は何ですか?

DocumentDB には、BSON ドキュメントの解析と操作、高度なインデックス作成機能 (単一フィールド、マルチキー、複合、テキスト、地理空間)、pg_vectorを利用したベクター検索クエリ、SCRAM を含む認証メカニズム、PostGIS を使用した地理空間クエリ、完全な Decimal128 サポート、PCRE2 を使用した正規表現のサポートなど、いくつかの重要な機能が用意されています。

開発者は DocumentDB にどのように貢献できますか?

開発者は、GitHub でのプル要求のスター付け、フォーク、送信、問題の報告、改善の提案、Microsoft OSS Discord サーバー上の #documentdb チャネルに関するディスカッションへの参加によって DocumentDB に貢献できます。