Azure DocumentDBは、ドキュメント指向NoSQLデータベースのマネージドサービスだ。2014年8月にプレビューが始まり、2015年5月に一般提供(GA)になった。2017年5月10日には、米Microsoftの年次技術イベント「Build 2017」での発表で、Azure Cosmos DBというサービスに他のNoSQLデータベースサービスとともに統合され、そのAPIの一つという位置付けになった。(Cosmos DBについてはアーキテクトの眼を参照)。

 予測可能な高い性能、高可用性、高い拡張性、データのグローバルな分散配置などを特徴とする。

 最初にNoSQLについて説明しよう。NoSQLは2009年ごろから使われ始めた用語だ。当初は、モダンなWebスケールのデータベースを志向して始まった。その後、適用領域の拡大とともに数多くのNoSQLプロダクトが生まれている。

 NoSQLのバリエーションは、「列指向」「ドキュメント指向」「キーバリューストアー(KVS)」「グラフデータベース」の四つに分類される。それらのNoSQLには、「リレーショナルデータベースではない」という共通点しかない。NoSQLを単一の概念と捉えるより、従来のリレーショナルデータベース(RDB)では扱いづらかった領域を対象とするデータストアー(永続化機構)の総称と理解するとよい。

 従来のRDBの問題を解決するためにNoSQLを利用するのが基本な考え方だ。

ドキュメント指向のデータベース

 DocumentDBは、MongoDB、CouchDB、RavenDB、RethinkDBなどとともにドキュメント指向データベースに分類される。DocumentDBは、スキーマレスで、任意のJSON形式のドキュメント(1件のデータ)を保存する。ドキュメントは固有のIDを持ち、それを使ってKVS的にデータを扱える。またSQLのようなクエリーでデータを参照でき、任意のプロパティーにインデックスを作成し高速にクエリーを実行できる。

 AzureのNoSQLデータベースは、DocumentDBだけではない。Azure Table Storage(KVS)、HDInsightの中のAzure HBase(列指向)、Azure Redis Cache(KVS)というサービスもある。

 このうちHBaseとRedis Cacheは、何らかの外部ストアーとの併用を前提としている。HDInsightの一部であるHBaseは、HDInsightクラスターを削除するとデータが消失する。再度利用する場合は、再びクラスターを作成し、データをロードし直す必要がある。HDInsightクラスターをデータストアーとして使うのは、コストと運用の両面で負担が大きい。

 インメモリーデータストアーのRedisを基にしたAzure Redis Cacheでは、定期的にAzure Storageへの保存とレプリケーションを行うが、データ消失のリスクがある。

 これらのことを考慮すると、Azureでデータの保存先としてNoSQLデータベースを選択するうえでは、DocumentDBとTable Storageが候補になる。