Partager via


Azure DocumentDB のご紹介

Microsoft Japan Data Platform Tech Sales Team

大林裕明

Azure DocumentDB をご紹介します。

名前から想像すると Word や Excel などのドキュメントファイルを検索するデータベースなのかと想像される方もいらっしゃると思いますが ここでいうドキュメントとは JSON ドキュメントを指し、Java Script や SQL で JSON ドキュメントを格納・操作することのできるデータベースサービスです。

JSON ドキュメント

image

 

例えば通販カタログの商品のように衣料や家電、食品などいろいろな種類をまとめた商品マスタを作成する場合、商品名や価格など共通化できる項目とそれぞれの商品固有の属性を持つ項目があります。

この商品マスタを RDBMS 上にテーブルとして作成するには商品固有の属性もすべて列として定義する必要があります。また、新しい種別の商品を加える場合、その商品固有の属性があればそれも列として追加する必要がありテーブル定義の変更を伴います。

JSON とは上記のように名前(定義)とデータをセットに持たせ、更に階層も柔軟に持たせることができ、Azure DocumentDB ではその JSON ドキュメントのデータをスキーマフリー(テーブル定義なし)でコレクションに格納することができます。

コレクションとは JSON ドキュメントや Java Script を格納するエンティティです。

image

格納した JSON ドキュメントを Java Script だけではなく、SQL でデータを照会できるのも Azure DocumentDB の特徴です。

上記の例にあるデータを Azure DocumentDB にインポートし、Azure Portal から SQL で検索してみました。

まずは同じコレクション "Test" の中にある商品カタログから商品名、カラー、価格を検索してみます。

クエリを見ていただくと SQL 文ですよね。

image

シャツには”カラー”:”黒”と表示がありますが、暖房機やワインにはカラーという属性がありませんので表示されていません。

次に条件を絞るため WHERE 句を付けてみました。

image

今回は商品カタログを例にしましたが、部品表や履歴ログデータなどテーブル定義をあらかじめ作成することが難しいデータを格納する際に活用してください。

Azure DocumentDB については下記にドキュメントがまとまってますので参考にしてください。

https://azure.microsoft.com/ja-jp/documentation/services/documentdb/

 

最近では JSON 形式を扱うアプリケーションも増えてきて、RDBMS である SQL Server も 2016 というバージョンより JSON 対応するようになりました。ご興味のある方は是非こちらもご覧になってください。

SQL Server 2016 Techinical Document

https://msdn.microsoft.com/en-us/library/dn921897.aspx

DB Online の記事

https://enterprisezine.jp/dbonline/detail/7265