2017年07月01日
グラフデータベース
~「つながり」で分析する~
グラフデータベースとは
日頃、インターネットで買い物をしている時、おすすめ商品をつい買ってしまった経験はないでしょうか?このおすすめ商品は、会員と商品の購入履歴、レビュー、作成者(例えば商品が本の場合、著者)などの関係を分析することで決定されています。
今回はこの「おすすめ商品」を決める際に使われる、大量のデータの中からデータ間の「つながり」に注目して効率よく分析するための技術「グラフデータベース」について紹介します。
「グラフデータベース」とは、名前の通りデータ構造として「グラフ構造」を持つデータベースです。ここでいう「グラフ」とは、棒グラフなどのデータの数量の大小を表すためのものではなく、モノとそのつながりを抽象化して表したデータの構造を表すモデルのことです。
「グラフ」は、下記の3要素で定義します。
- ノード:人やモノなどの実体
- エッジ:2つのノード間の関係性、つながり
- プロパティ:ノード、エッジの性質や特徴
グラフデータベースは、あるノード(人やモノ)を起点としてつながりをたどりながら、利用者の欲しい条件に合ったデータを検索します。たとえば、ECサイトでは「同じものを購入した会員の嗜好は似ている可能性が高い」という考えから、「同じものを購入した別の会員が購入したもの」をおすすめしていますが、これは図1のようにグラフ上のつながりをたどっておすすめ商品を見つけています。
図1.グラフデータベースを使ったECサイトのおすすめ商品の検索
グラフデータベースのメリット
グラフデータベースには下記のようなメリットがあります。
●つながりをたどる検索が高速
グラフデータベースの検索では、つながりに注目した局所的な範囲を探します。そのため、データベース全体をくまなく検索する従来型のデータベース(※1)に比べてデータ量の増大に影響を受けにくく、つながりをたどるような検索が高速です。特に、さまざまな関係性を調べるためにエッジをいくつも経由して遠くのノードを取得するケースでは、従来のデータベースで数日かかるような検索も数秒で完了させることができます。
●データ定義が視覚的に理解しやすい、つながりデータの取得が容易
グラフデータベースはシステム開発者にとってもメリットがあります。グラフ構造でデータを定義するため、データ間の関係が視覚的で理解しやすくなっています。また、つながり関係のデータが容易であり、複雑なつながり関係を使うデータ分析に向いています。
※1 一般的なシステムで利用されるRDB(リレーショナルデータベース)では、データを種類ごとの表で保持します。1つの表の中での検索や集計は高速ですが、つながり関係のあるデータを取得するときは異なる場所にあるデータをつなげる処理が必要であり、速度が遅くなります。
グラフデータベースの適用例
グラフデータベースは、ものごとのつながり関係性(エッジ)に着目するケースでの利用に向いており、冒頭で述べたECサイトの商品のおすすめ以外に、例えば下記のようなものに適用されています。
・SNSの「知り合いかも」(ソーシャルグラフ)
ソーシャルネットワーキングサービスでは、ユーザー同士の関係の「グラフ」を使って「知り合いかも」というユーザーを予測表示しています。
・経路検索
ルート検索では地図の経路情報の「グラフ」により、指定する経由先、交通手段を使った時の経路の候補を提示します。
・ネットワーク管理
ネットワーク管理では、接続機器間のつながりを「グラフデータ」として分析し、機器故障時の影響範囲の特定や、代替ルートの発見に利用されます。
・IoTデータ活用
最近、製造業では生産する産業用機器にIoTを導入し、無数の複雑に関連し合う部品から送られてくるイベントデータを収集、部品間の関係を「グラフデータ」として分析し、故障予測の運用サポートを行っており、新しい活用方法として注目されています。
図2.グラフデータベースの適用例
世界的に成功をおさめている企業のサービス(ものづくりコラム2017年6月号参照)でも利用されているこの技術は、今後IoTをはじめ、つながり関係のあるデータを効率よく分析するために、さまざまなシーンで活用の場が広がっていくと思われます。ご注目ください。
2017年7月
最新の記事
年別
ITの可能性が満載のメルマガを、お客様への想いと共にお届けします!
Kobelco Systems Letter を購読