ビッグデータ分析に特化したアーキテクチャとは
データ分析の結果に基づいた意思決定においては、ビッグデータ活用が重要となる。昨今では、従来の企業が持っていた顧客情報だけでなく、あまり活用してこなかったさまざまなログデータ、気象情報などのオープンデータも活用するようになっているという。
データドリブン経営を実現するためには、ビッグデータ分析を数多くのユーザーがストレスなく使える分析基盤にする必要があるだろう。セッションでは、分析に特化した次世代型データベースVerticaが解決してきた大量データと高速処理に関する4つの課題事例についてアシストデータベース技術本部の河西大樹氏が解説した。
【Vertica 4つの事例】
(1)JOIN処理ボトルネックを解消し、174倍のパフォーマンス向上
(2)マスターノード不要アーキテクチャでDBのボトルネックを解消
(3)クラウド上でピーク時のみ計算ノードを増加、高速処理のコストを最適化する
(4)機械学習とデータ分析の基盤を統一、高い予測精度を実現
Verticaは分析特化型で、基幹系システム処理を行うデータベースとはアーキテクチャが異なる。内部のデータの持ち方は列指向で、不要な列の読み込みを排除、データ圧縮効率もかなり高い。複雑なチューニングをせず高速な処理を実現できるため、結果として運用コストも削減できる。クラウドでもオンプレミスでも、柔軟に複数サーバー(ノード)で運用でき、必要に応じオンラインのままノードを追加することも可能だ。さらに独自の分析機能を、データベースのエンジンの中に多数搭載し、既に国内でも大手のオンライン証券を運営する企業や求人サイト運営会社など多数の事例があるという。
ビッグデータ活用を最大化する基盤がもたらしたもの
(1)JOIN処理ボトルネックを解消し、174倍のパフォーマンス向上
世界100カ国以上に事業部を置く米スマートメーター提供企業は、電気や水道、ガスのユーティリティソリューションをグローバルに展開している。世界中のスマートメーターから膨大なデータを日々収集して分析し、その規模は将来的にペタバイトクラスとなると見込まれている。日々増え続けるデータをより効率的に分析する基盤を検討し、Verticaの導入に至った。
「Verticaを導入後、従来と比べ174倍のパフォーマンスが得られています。その上、運用の手間も削減されました」。大幅な性能向上につながったのは、ボトルネックとなっていた大量データのJOIN処理における課題を解消したからだ。JOIN処理のボトルネックは通常、JOINした結果の非正規化テーブルを保持することで解消する。しかしこの手法の場合は、マスターに変更があるたびに非正規化テーブルを手作業で作り替えなければならず、運用上の負担が大きくなってしまう。
対して、Verticaにはフラッタンテーブル機能(注1)がある。JOINした結果のフラッタンテーブルを保持し、独自機能を用いてマスター変更時は更新部分だけをフラッタンテーブルに自動で反映できるそうだ。これにより大量データのJOIN処理というボトルネックに対し、性能の確保と管理工数の削減という両面からアプローチできる。
優れた同時実行性と分散処理で高速性を担保
(2)マスターノード不要アーキテクチャでDBのボトルネックを解消
次に、オランダの旅行サービス提供事業社、TravelBird社の事例だ。同社はベースのインフラとしてAmazon Web Services(AWS)を活用し、Webサイトのログデータを解析。分析レポートの提供のほかユーザーごとのWeb画面のパーソナル化やリコメンドを行っている。
TravelBirdでは、ユーザーからの同時多重処理で性能が劣化するという課題を抱えていた。多くのユーザーが同時にアクセスすると処理が遅くなってしまう理由はマスターノードにあった。Verticaの競合にあたるデータベースには処理を受け付けるマスターノードがあり、そこに処理が集中してしまうことで、ボトルネックになっていたのだ。対してVerticaはマスターノード不要のアーキテクチャ(注2)だ。全てのノードで処理を受け付けることができ、ノードの数の分だけ処理性能も向上する。河西氏は「Verticaは同時実行性に優れています。日本の多くのユーザーでもこの強みが理由で採用されるケースが多い」と強調する。
さらに、TravelBirdで評価されたもう1つの機能はFlexTable(注3)だ。Flex Tableは、ログデータやセンサーデータなどの半構造化データを事前のテーブル定義なしにロードできる。そのため、データをテーブル定義に合わせて加工する必要がなくなる。これにより、たとえ半構造化データの項目が変わっても、そのままロードできるため、半構造化データをより簡単に活用することができる。マスターノード不要のアーキテクチャとFlexTableの2つが評価され、顧客の課題を解決できた事例となっている。
―――――――
(注2)
複数ノード構成のアーキテクチャについての解説はコチラ
(注3)
FlexTableの概要はコチラ
(3)クラウド上でピーク時のみ計算ノードを増加、高速処理のコストを最適化する
次に、米国のThe Trade Desk社の事例だ。同社は広告会社を対象にDSP(Demand-Side Platform)を提供し、オンライン広告のオークションデータの分析などを行っている。1秒間に1000万件ほどの分析処理が行われており、従来のシステムではピーク時にパフォーマンスが劣化していたという。ハードウェアを追加していくことで対処していたが、コストと運用管理の手間が増大していた。
Vertica9.1の新機能であるEon Modeでは、ピーク時のパフォーマンス劣化に対処できる。(注4)
Eon Modeは、データをAmazon S3のような共有ストレージに格納し、処理に必要なデータだけを各計算ノードのローカルストレージにキャッシュして処理を実行する構成となっている。ローカルストレージにキャッシュした後は、シェアードナッシングの構成と同様の高速処理を実現できる。
このEon Modeのメリットは大きく2つある。1つ目はクラウド上でピーク時にだけ計算ノードを増やす運用で、ピーク時のパフォーマンス劣化に対処した上でのコスト最適化が可能となった点。2つ目は処理の実行クラスタを分けることが可能となったことで、ワークロードを完全に分離できる点だ。
The Trade Desk社では、バッチ処理が集中する時間帯にノードを増やす運用とした結果、1日に4万件以上のレポートの処理を可能とした。
―――――――
(注4)
Eon Modeの概要(Vertica 9.1新機能)についての解説はコチラ
機械学習をデータベースで実装するメリット
(4)機械学習とデータ分析の基盤を統一、高い予測精度を実現
機械学習をデータベースで実装するメリットの事例も紹介された。ニュージーランドのディスカウントストアグループ企業では、100店舗以上約10万点の商品の在庫管理にVerticaを活用している。Verticaの持つ機械学習機能を使うことで、予測モデルの精度を大幅に向上させることができたという。以前は高性能な機械学習用のRサーバーを用意していたにも関わらず、大量データの学習処理に時間を要し、その結果、一部の商品についてしか需要予測ができていなかった。一般的に、機械学習の仕組みを導入する際、データベースとは別に基盤を構築する。しかしそうすると、データベースから学習用のデータを大量に移動させる必要があり、時間のロスが大きい。さらに機械学習専用の言語などで利用しなければならない。増えていく予測モデルの管理も手間がかかる。
しかしVerticaはデータベースでありながら機械学習のアルゴリズムを実装している。(注5)これにより、機械学習専用の環境を準備する必要がなくなる。さらにVerticaの高速性を活用し、大量データの学習を高速に行うことができる。高速に学習が行えるため、数多くの予測モデルを作成することができる。また、予測モデルはデータベースオブジェクトとして保持するため、予測モデルの管理も容易だ。河西氏は「Verticaでは、大量データを高速に繰り返し学習することができたため、各店舗の特性を加味した予測モデルを2万以上作ることができています」と解説する。
Verticaの機械学習機能と高速性を活かし、多様な予測モデルの作成を実現したことで、予測モデルの精度を向上させたことが高く評価された事例となっている。
―――――――
(注5)
機械学習に関するまとめ記事はコチラ
【SQLで機械学習】Vertica×機械学習 ~需要予測デモ~
河西氏は「これまでに話してきた通り、Verticaならビッグデータをストレスなく分析できます。さらに独自の機能でビッグデータを扱うさまざまな課題も解決できる。現時点でのデータ量はそれほどではなくても、今後、分析に使いたいデータは爆発的に増えていきます。大量データを活用するデータドリブン経営に向けて、是非Verticaを活用してみてください」とセッションを締め括った。
【アシスト参照リンク】
■Vertica技術情報サイト
アシストが運営するVertica専門の技術情報サイトです。Verticaの最新技術情報はもちろん、無償のVerticaインストールガイドも配布しています。
■Verticaハンズオンセミナー
Verticaの高速性だけではなく、機械学習機能もご体験いただける無償セミナーです。是非、ご参加ください。