DocumentDB」。DBは、どのようなケースで最大のメリットを発揮するのだろうか。Savateyev氏に聞いた。Things)やAI(人工知能)といった技術が使われるようになった。一方で、スマートフォンやIoTデバイスから無尽蔵にデータが集まるようになりつつある。グローバル企業にとっては、世界中から集めたデータを、どのように蓄積し、どうやって効率的に活用するかを考える必要がある。DBの特長や他のデータベースサービスとの違い、最適な利用例について話を聞いた。Florence」の成果として生まれた。Florenceは、Microsoftの製品やサービスを世界中に展開する中で生成され、消費される大量なデータに対して、グローバルスケールで低遅延のデータアクセスを実現するプロジェクト。当時、ほとんどの分散型データベースは、オンプレミスの従来型データベースをそのままクラウドに移行したもので、クラウド用にネイティブに構築されたものではなかった。グローバル規模で低遅延のアクセスを提供するデータベースサービスはほとんどなかった。Service)は、2014年にDocumentDBとして一般提供される。DocumentDBは、その名の通り、ドキュメント指向型のNoSQLデータベースサービスだ。グローバルスケールかつ低遅延でデータにアクセスできる上、開発者になじみのあるSQL言語も利用できる。DBではドキュメント型データモデルに加え、キーバリュー型、列指向型、グラフ型など複数のデータモデルを扱うことができる。これらのデータモデルに異なるAPIを用いて「自然」にアクセスできる。API」が追加された。「多くの開発現場では、ドキュメント型以外のデータモデルを利用したり、SQL以外の言語でデータベースを扱ったりしています。DBは、そのような要求に対応するために設計されました。競合サービスでもマルチモデルのデータベースをうたうものがあるが、一般的にはクエリの処理の際にエミュレーションしているだけです。DBのデータは、異なるAPIを持って同時にアクセスできます。DBの内部で異なるモデルを使用して複製している訳ではない。代わりにデータは、対応するAPIによって異なるデータモデルを介してマッピングできるように、パーシステントレイヤーに格納される。従って、異なる言語やモデルを使用するアプリケーションごとに異なるデータベースを用意する必要がない。さらなる特長として、開発者は5つの明確な「整合性モデル」を選択できる。他の分散データベースの整合性モデルは、どのプロセスでも最新のデータを読み取れる「Strong」と、読み込めるデータが正しい順序である保証はないもののいつか最新のデータになる「Eventual」の2つが中心だった。そのような極端な選択肢は、開発の柔軟性に欠け、顧客の要求を満たすことが困難になるという制限があった。Prefix』という3つの整合性モデルを加えています。DBユーザーに、これらの選択肢を提供した場合、単一のセッション内で強力なデータ整合性を提供する『Session』を73%が採用している一方、『Strong』はわずか4%、『Eventual』は3%しか利用されていませんでした。DBにおいて「99.999%」という高可用性を保証している。その上で1KBのドキュメントデータの読み込み速度を10ミリ秒以内および書き込み速度を15ミリ秒以内にする性能保証がある。DBの価格は、「ストレージ容量」と「スループット」で決まる。それによる柔軟な価格体系も、ユーザーが採用しやすいポイントだ。スループットコストは、特定のコレクションまたはデータベースに割り当てられた「1秒当たりの要求ユニット数」(RU)で決まる。ストレージは、GB単位で月に利用した分だけを支払う。スループットとストレージは別々の課金なので、ユーザーが、ストレージとスループットの両方を互いに別々にスケーリングすることで、データトラフィックの急増に対処することが可能だ。DBは、世界中のさまざまな企業が利用している。DBをレクサスのテレメトリーデータの管理で活用している。トヨタ自動車はレクサスの車載センサーからデータを収集して、リアルタイムに分析し、予防保守のサービスを実現している。Azure(以下、Azure)の他のサービスと連携してデータドリブンのアクションのトリガーといった役割を果たすことが簡単だ。DBからメッセージを車両に送り、車に乗る前にエンジンをスタートするアクションで利用されている。DB採用のポイントになっています。DBが利用されている。DBは、自動車メーカー以外でもIoT活用にも適している。Spark」のパワーとエコシステムを使用してビッグデータを収集し、分析する環境を容易に実現できる。DBをあらゆる種類のソースからデータのリポジトリとして使用することも可能だ。DB統合を実現できる。1つのユースケースが、EC(Eコマース)だ。一般的なECサイトでは、利用者が商品を選び、カートに入れ、注文を確定すれば商品が届けられる。このようなイベントの順序を確実に回せるように、開発者はECサイトのフロントエンドとバックエンドの仕組みを構築する。このとき重要となるのが、各ステップが確実に動いて、次のステップと連携することだ。いつでもECプロセスの進行状況を確認できる必要もある。DBを使うことで、ECサイトの一連のプロセスを簡素化でき、ステータス確認の仕組みを簡単に実現できる。Feed」機能を利用することで、データベースに発生した変更内容と、そのタイミングのレコードを確実に取得できる。Feedを活用し、Eコマースのプロセスが正確に実行される仕組みを構築している。DBには、日々新しい機能が増えている。DBのようなマルチモデルおよびマルチAPIデータベースを中心に、グローバルスケールでの実装は非常に容易ではない。マルチマスター機能の提供で、グローバルスケールで生まれるデータを扱う際の、迅速な同期処理のニーズにも十分に応えられるようになった。DB開発者が使用可能なAPIを追加する計画もある。DBを使えば、オンプレミスで利用しているMongoDBやCassandraの環境を、クラウド環境にすぐに「リフト&シフト」できる。いったものをさらに、増やしていくという。「幾つかの新しいAPIは既にロードマップにあります。われわれは、一般的なNoSQLデータベースと互換性のあるAPIを実装します。DBで、オンプレミスベースのデータベース環境を安価でクラウドベースのアプリケーションに対応できます。DBは既存のデータベース全てを置き換えるようなものではない。リレーショナルデータベースと組み合わせることで、多様なアプリケーション要求に容易に応えられる。DBをはじめとするクラウドネイティブデータベースを使って、新しいクラウドネイティブ関数およびマイクロサービスを構築できる。DBをぜひ試してほしい。DBは無償利用できるものも用意されており、さらにオンプレミス環境やPCでも使えるローカルエミュレータも提供されている。「Azureのサブスクリプションがあればすぐに利用できるので、多くの人に試してもらいたい。メールマガジンをご購読ください。申し込みページへ利用規約ITmediaはアイティメディア株式会社の登録商標です。