データ活用に向けた開発・実行環境と 高速処理技術 ·...

8
FUJITSU. 64, 5, p. 479-486 09, 2013479 あらまし 近年,コンピューティング・パワーやネットワーク速度の飛躍的な向上,情報センサー 技術の発達に伴い,あらゆるモノがインターネットにつながるようになってきた。Web や無数のセンサーから流れ込んでくる大量・多様な時系列情報からいかに価値ある情報 を効率的に引き出し,各種のナビゲーションなどに素早く役立てられるかが強く求めら れている。富士通研究所は,ヒューマンセントリックなインテリジェントソサエティの ビジョンを掲げ,これを支えるクラウド環境の構築を目指している。 本稿では,大量なデータの活用を促進する技術として開発・実行環境の統合技術,高 速処理を実現する基盤技術として複合イベント処理の並列性抽出技術,および分散並列 型複合イベント処理技術について,それぞれの狙いと特徴,効果を述べ,今後取り組む べき技術の方向性を展望する。 Abstract In recent years, drastic improvements in network and computing speed combined with the development of information sensor technology have contributed to the growth of Internet-connected devices. As a result, there is a strong demand to extract valuable information from the massive amounts of diverse time-series data that is generated from the Web or other sensors, and quickly re-use this information in services such as navigation. Fujitsu Laboratories Ltd. has set the achievement of a human-centric intelligent societyas its vision and aims to establish a cloud platform to support this goal. In this paper, we describe the aim, characteristics, impact and future orientation of the following technologies: an integrated development and runtime platform that supports the utilization of massive amounts of data; parallelism extraction technologies for complex event processing, and distributed complex event processing technology to realize high-speed processing. 栗原英俊   上田晴康   坂本喜則   松原正純    データ活用に向けた開発・実行環境と 高速処理技術 Development and Runtime Platform and High-speed Processing Technology for Data Utilization

Upload: others

Post on 12-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5, p. 479-486 (09, 2013) 479

あ ら ま し

近年,コンピューティング・パワーやネットワーク速度の飛躍的な向上,情報センサー

技術の発達に伴い,あらゆるモノがインターネットにつながるようになってきた。Webや無数のセンサーから流れ込んでくる大量・多様な時系列情報からいかに価値ある情報

を効率的に引き出し,各種のナビゲーションなどに素早く役立てられるかが強く求めら

れている。富士通研究所は,ヒューマンセントリックなインテリジェントソサエティの

ビジョンを掲げ,これを支えるクラウド環境の構築を目指している。

本稿では,大量なデータの活用を促進する技術として開発・実行環境の統合技術,高

速処理を実現する基盤技術として複合イベント処理の並列性抽出技術,および分散並列

型複合イベント処理技術について,それぞれの狙いと特徴,効果を述べ,今後取り組む

べき技術の方向性を展望する。

Abstract

In recent years, drastic improvements in network and computing speed combined with the development of information sensor technology have contributed to the growth of Internet-connected devices. As a result, there is a strong demand to extract valuable information from the massive amounts of diverse time-series data that is generated from the Web or other sensors, and quickly re-use this information in services such as navigation. Fujitsu Laboratories Ltd. has set the achievement of “a human-centric intelligent society” as its vision and aims to establish a cloud platform to support this goal. In this paper, we describe the aim, characteristics, impact and future orientation of the following technologies: an integrated development and runtime platform that supports the utilization of massive amounts of data; parallelism extraction technologies for complex event processing, and distributed complex event processing technology to realize high-speed processing.

● 栗原英俊   ● 上田晴康   ● 坂本喜則   ● 松原正純   

データ活用に向けた開発・実行環境と高速処理技術

Development and Runtime Platform and High-speed Processing Technology for Data Utilization

Page 2: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013)480

データ活用に向けた開発・実行環境と高速処理技術

大させ,新市場創生を実現させる」ことを目標にして,研究を進めてきた。(1)

本稿では,最初に「開発技術の全体像」で課題および解決策を概観し,それを構成する「開発・実行環境の統合技術」「複合イベント処理の並列性抽出技術」「分散並列型複合イベント処理技術」の三つの技術について,それぞれの狙いと特徴を述べ,最後にこれらの技術による効果と今後取り組むべき技術の方向性を展望する。

開発技術の全体像

図-1に示すように,データを活用するには,収集したデータについて,バッチ系で分析を行い,そこから得られた知見・ルールを用いて,リアルタイム系で検知を行うサイクルを回していく。例えば,購買データ(POS)を傾向分析して,特定の顧客層があるエリアに近づいたときにクーポンをタイムリーに発行するサービスが考えられる。しかし,サービス内容は,最初に全てを決められるものではなく,仮説検証サイクルを回しながら,

開発技術の全体像

ま え が き

富士通では,実社会における人の活動やモノの動きから生まれる「データの価値」に注目している。今まで集められなかったデータや,集めても活用しきれていなかった大量・多様なデータから新たな価値を導き出すことが重要と考えている。例えば,エネルギーの有効活用,交通渋滞など都市問題の解決,医療費の削減といった分野に,ICTへの期待が高まっている。しかし,「データの価値」を見出すには,人の知恵とICT基盤を組み合わせて,仮説検証サイクルを素早く回していく必要がある。そこでICT基盤に求められる要件としては,容易なインターフェースでデータを取り扱うことができ,スモールスタートからサービス展開までシステムの規模の変化に柔軟に対応できなければならない。富士通研究所では,ヒューマンセントリックなインテリジェントソサエティのビジョンを提唱し,「情報をつなげ,共有することでICT適用分野を拡

ま え が き

図-1 ビッグデータ向け開発・実行技術の全体像

分散データ基盤

・・・

(~1000台規模)

並列分散

センサー,メーター,自動車など

リアルタイム検知/判定

大量データ検索/分析

新しい知見/ルール

ルール

②複合イベント処理 並列性抽出技術

仮説検証サイクル

③分散並列型複合 イベント処理技術

<リアルタイム系>

<バッチ系>

CEP

Hadoop

①開発・実行環境の統合技術

ビジネスユーザー

データ分析者/検索者

Page 3: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013) 481

データ活用に向けた開発・実行環境と高速処理技術

れ図のインターフェースを介して,分析やクーポンの発行条件などを容易にカスタマイズできる。また,複合イベント処理の処理記述から並列性を抽出し,どの並列性の組合せが良いかを自動的に推奨する技術を開発した{複合イベント処理の並列性抽出技術(図-1の②)}。ビジネスユーザーでもデータ流れ図を記述するだけで,並列処理により高速化したリアルタイムサービスを容易に実現できる。

(2) 高速性と運用継続性の両立における課題に対しては,入力となるイベント量に応じて計算資源を動的に増減し,システム無停止で迅速に負荷分散する機能を開発した{分散並列型複合イベント処理技術(図-1の③)}。また,前述の並列性抽出技術を用いることで,処理性能を最大限引き出すことができる。これらにより,ビジネスユーザーは,入力イベント量に関わらず継続して安定したリアルタイムサービスを利用することができる。更に,計算資源を効率的に使うことができる。

開発・実行環境の統合技術

従来,バッチ処理のHadoopやリアルタイム処理のCEPなど処理種別ごとにシステムが構成され,開発環境も統一されていなかった。そこで,ビジネスユーザーでもサービスの開発およびカスタマイズが容易にできるように,開発・実行環境を統合する技術を開発し,仮説検証サイクルを素早く回せるようにした。

図-2に示すように,ビジネスユーザーが,データ流れ図とプロパティ(処理パラメーターに相当)で処理内容を定義すると,処理種別の判定結果に対応した自動生成パターンを用いて,バッチ処理(Hadoop)またはリアルタイム処理(CEP)向けのプログラムが自動生成される。また処理内容に応じてデータ型変換などの処理が補完され,バッチ処理またはリアルタイム処理の実行環境へプログラムおよびデータが適切に配備・実行される構成になっている。この開発・実行環境のコア技術である自動生成パターンについて,POSのような蓄積データを傾向分析する例を用いて説明する。ビジネスユーザーは,傾向分析のプロパティとして,入力となるデータの形式や初期クラスタ数などの処理パラ

開発・実行環境の統合技術

洗練していく必要がある。またビジネスの規模が拡大してもサービスのリアルタイム性を維持するには,クラウドなど容易に増やせる計算資源を使った高速なデータ処理が必要である。このようなサービスは,購買情報と顧客の位置情報など大量のデータを駆使して実現することになるので,Hadoop(オープンソースの並列バッチ処理基盤)などのバッチ処理系や複合イベント処理(CEP:Complex Event Processing)などのリアルタイム処理系を含むICT基盤を使いこなしていく必要がある。これらの要件を実現するための課題と解決策を以下に述べる。● 課題(1) サービスの開発容易性サービス内容を立案するビジネスユーザーは,業務知識は豊富であるが,個々のICT処理技術に精通しているケースは少ない。HadoopやCEPに対応した個別の処理言語を習得して,サービスを容易に開発,カスタマイズすることは難しかった。またビジネスの規模拡大に伴い処理データ量が増加しても処理性能を維持するためには並列処理による高速化が必要である。Hadoopは並列化技術が進んでおり自動的に並列化が行われるが,複合イベント処理で十分な性能を引き出すには並列化設計が必要で一般のビジネスユーザーには困難であった。(2) 高速性と運用継続性の両立

CEPでは,サービスのリアルタイム性を維持するため,高速なデータ処理が求められる。一方で,少数のサーバでサービスを開始し(スモールスタート),ビジネス規模の拡大・縮小に応じてサービスを止めることなくサーバ台数を増減する運用継続性も重要である。この両者を両立することは難しく,従来は,上限値を超える高負荷に対応する場合は一旦サービスを停止し,システム構成を変更してからサービスを再開する必要があった。● 解決策(1) サービスの開発容易性における課題に対して処理言語に依存せずに,プログラムの自動生成を行う開発・実行環境を開発した{開発・実行環境の統合技術(図-1の①)}。ビジネスユーザーは,データと処理の入出力関係を定義するデータ流

Page 4: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013)482

データ活用に向けた開発・実行環境と高速処理技術

メーターを定義する(図中の右上)。それらの情報と,開発・実行環境で事前に持っている自動生成パターン群(図中の右中央)を組み合わせて,プログラムを自動生成する。自動生成パターンの例として,傾向分析の処理を行う場合は,前処理として,蓄積データからのカラム抽出処理とVector形式へのデータ変換処理を,後処理として,分析結果のテーブル展開処理が付加される。このように必要最低限の処理パラメーターを指定すれば,自動生成パターンにより主処理と前処理・後処理のプログラムが自動生成され,実行環境で配備,実行される。(2)-(4)

なお,この開発・実行環境では,データ流れ図などのエディタ部分はEclipse RAP(Remote Application Platform)で実装しているため,ビジネスユーザーは,クラウドのWebサービスとしてインストールレスで利用することができる。また

開発・実行環境向けのプログラム変換処理はOMG/MTL標準仕様準拠のモデル変換エンジンであるEclipse Acceleoなどを採用することで,自動生成パターンの開発者にとって標準技術に準拠した開発が容易になっている。更にデータ流れ図やデータスキーマの定義などのリポジトリ管理,バージョン管理など,仮説検証に不可欠な機能を実現している。本技術を用いることで,分析プログラムの開発から複合イベント処理プログラムの開発までの期間を約1/5(8週間から1.5週間)に短縮することができた。また各処理のパラメーターをプログラミングなしで容易に変更できるため,分析結果から得た知見を素早くイベントの検出条件に反映するなど,開発環境における仮説検証サイクルを容易に回せることを確認した。現在,様々なデータ活用に向けたクラウド基盤

業務責任者(ビジネスユーザー)

プロパティ

処理定義

バッチ処理プログラム

各処理のパラメーターを定義

プログラムを自動生成処理内容に応じて処理を補完

データ流れ図

リアルタイム処理実行環境バッチ処理実行環境(Hadoop)

配備 /実行

リアルタイム処理プログラム

配備 /実行

・リアル処理 ⇒ 蓄積データ・バッチ処理 ⇒ イベントデータ・蓄積とイベントデータ結合     ・・・

処理種別判定

リアルタイム処理

バッチ処理

②複合イベント処理並列性抽出技術

③分散並列型複合イベント処理技術

CEP

自動生成パターン群

図-2 開発・実行環境の統合機能

Page 5: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013) 483

データ活用に向けた開発・実行環境と高速処理技術

なる。並列データベース分野の自動パーティショニング技術は,グループごとの集計処理(group by)や突合せ処理の記述から,並列処理に適した識別子(キー)を抽出し,データに含まれるキーの値によって処理を担当するサーバを決めるものである。これをイベント処理特有のイベントパターン検出やフィルターなどの機能にも拡張した結果,並列処理に適したキーを抽出し,イベントに含まれるキーの値によってイベントを振り分けて並列処理することができた。更に,本技術は複数の処理間のキーの最適な組合せ(分散ストラテジ)を推奨する。一般的にはより細かな単位で振り分けをする処理ごとにキーを選んだ方が負荷を均等にしやすく高い並列処理性能が出るが,イベント処理では処理間の通信量を減らした方が良い性能が出る。そこで,できるだけ多くの処理を同じサーバにまとめて実行できるようにキーの組合せを選ぶことで,通信量が少なく全体としての処理効率が良くなる。このようにまとめられた処理をクエリグループと呼ぶ。今回開発した複合イベント処理の並列性抽出技

(PaaS)への適用に向け,汎用性および拡張性のある自動生成パターン群の強化を進めている。

複合イベント処理の並列性抽出技術

処理データ量が増加しても高い処理性能を維持する並列処理を実現するため,開発・実行環境の統合技術が自動生成したリアルタイム処理向けプログラムから並列性を抽出し,更にどの並列性の組合せが良いかを推奨する技術を開発した(図-3)。これまで富士通研究所で開発してきた分散並列型複合イベント処理システム(5)では,リアルタイムに到着したイベントを高速に処理するために,一つの処理(クエリ)を複数のサーバで分担し,イベントを複数のサーバに振り分けることで並列処理する。例えばクーポン発行の例では,歩行者のID(電話番号など)や地域区画IDをキーにして,それぞれの人あるいは地域別に振り分けた処理が可能である。このような並列性を自動抽出する技術は,並列データベース分野の自動パーティショニング技術を拡張してイベント処理に応用することで可能と

複合イベント処理の並列性抽出技術

図-3 複合イベント処理の並列性抽出技術

出力

②複合イベント処理の並列性抽出技術

リアルタイム処理プログラム絞込み入力 クーポン発行 出力

推奨

実行前

実行時

入力

サーバ 1

サーバ 2

絞込み

絞込み

サーバ N絞込み

クーポン

クーポン

クーポン

リアルタイム処理プログラム

絞込み入力 クーポン 出力

リアルタイム処理プログラム

絞込み入力 クーポン 出力

③分散並列型複合イベント処理技術

クエリグループ

①開発・実行環境の統合技術

処理ごとのキーでイベントを振り分けるとサーバ間の通信量が多い

出力

クエリグループごとのキーでイベントを振り分けることでサーバ間の通信量を削減

入力

サーバ 1

サーバ 2

サーバ N

絞込み

絞込み

絞込み

… …

クーポン

クーポン

クーポン

Page 6: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013)484

データ活用に向けた開発・実行環境と高速処理技術

分散並列型複合イベント処理技術

分散並列型複合イベント処理(並列CEP)システムでは,前章の分散ストラテジに従い,分散できないクエリ処理は1台のサーバで,分散可能なクエリ処理は複数サーバに分散して処理する(図-4)。前述のとおり,分散処理する場合はクエリグループごとのキーに基づいて担当サーバが決定される。そこで,適度に細かい単位で担当するキーを移動することで,複数サーバ間での高精度な負荷平準化と運用継続性を実現する。キー数はサーバ数に比べて十分大きいので,キーごとに担当サーバを決め,この単位で負荷を移動することで非常にきめ細かな負荷分散を行える。ただし,キー単位では負荷移動が細か過ぎて通信などのオーバーヘッドが大きくなり,その間データ処理が滞ってしまう。そこで,キーをハッシュ関数(任意のデータから固定長の乱数を生成する演算手法)などの指定分散方式に基づいて1000個程度のパーティション(キーパーティション)に分け,そのパーティション単位で負荷移動するようにした。なお,キーパーティション移動中に届いた対象キーパーティションに関連するイベントは,移動完了後に転送して

分散並列型複合イベント処理技術術を利用して,クーポンを発行するプログラムから並列性を抽出したところ,プログラムの全てのクエリから並列性を自動抽出した上,歩行者のIDをキーとするクエリグループと地域区画IDをキーとするクエリグループの組合せが推奨された。これは,並列処理の専門家が設計したのと同じ分散ストラテジである。この並列性抽出技術により並列化設計に必要な高度な知識とチューニングが不要となり開発期間の短縮が可能となった。また,複数の処理間のキーの最適な組合せの推奨による性能向上を評価するため,処理間でイベントの振り分け方が異なるサンプルプログラムで性能計測した。クエリグループごとのキーで振り分けた場合は,処理ごとのキーで振り分けた場合に比べ通信量が60%減となるとともに,処理効率が3.5倍に向上し,この結果,並列処理しなかった場合に比べて処理効率が16倍に向上することを確認した。今後は,より処理効率の高い並列性を抽出するために,リアルタイム処理向けのプログラム記述から並列性を抽出するだけではなく,処理中のデータの傾向も利用した並列性抽出技術の開発を目指す。

出力

②複合イベント処理の並列性抽出技術

サーバ 1

サーバ 2

絞込み

絞込み入力

追加サーバ絞込み

クーポン

クーポン

クーポン

リアルタイム処理プログラム

絞込み入力 クーポン 出力

実行環境マネージャー

クエリグループ

負荷状況に応じてサーバ増減

キーパーティション単位でデータ移動

③分散並列型複合イベント処理技術

クエリグループごとのキーに基づいて複数サーバにクエリ処理を分散

図-4 並列CEPシステムの構成

Page 7: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013) 485

データ活用に向けた開発・実行環境と高速処理技術

処理する。更に,高速性を維持するためには,常に現在の動作状況を把握し,適量の計算資源を確保して負荷分散する必要がある。そこで,本並列CEPシステムでは,実行管理マネージャーが各CEPエンジンからCPU/メモリ/ネットワークなどの資源利用状況を定期的に採取する。この資源利用状況に加え,入力イベント負荷状況,クエリ特性を考慮して,再負荷分散が必要かどうかを判定する。再負荷分散が必要と判定された場合は,適切な負荷範囲内に収まるサーバ数を算出し,その数が既存のサーバ数と異なる場合は一致するようにサーバ数を増減させ,そして全体で負荷平準化(キーパーティションの移動)を行う。上記機能を実装した並列CEPシステムに,歩行者の位置・嗜

好情報と周辺の店舗(最大1万店)の商品情報をマッチングして適切なクーポンを発行する,前章の評価でも用いたアプリケーションを実装して性能評価を行った。最大8台のサーバを用い,歩行者の数を最小5人から最大35万人まで徐々に増やして歩行者情報を入力イベントとして与えた。その結果,負荷が増大しても,必要に応じてサーバを追加して,サーバ間で動的に負荷分散が実施されることを確認した。負荷分散処理中もシステムは停止することなく,クエリ処理レイテンシは100~ 200マイクロ秒と常に安定して高速性を維持できている。本技術により,サービス利用負荷状況に応じて,リアルタイム性を維持しつつ,動的な構成変更が可能になる。2011年に試作したシステム(6)では,動的構成変更時にリソースが倍以上必要で,なおかつ構成変更に要する時間が長いという課題があったが,今回の方式ではそれらの問題も解消している。今後は,いくつかの事例をベースにした実証実験,および,より高度なパターン検出を容易に行う機能の開発を進める予定である。

む  す  び

これらの技術により,購買データ(POS)の分析に基づくクーポン発行の利用シーンにおいて,開発期間を約1/5に短縮することで,仮説検証サイクルにおけるサービスの開発容易性を確認するこ

む  す  び

とができた。また処理の負荷が増大しても,運用を継続したままサービスのリアルタイム性を確保することを確認できた。現在,これらの技術を統合し,位置情報を活用したサービスなどの複数プロジェクトで実証実験を進めている。ビッグデータの利活用市場は,急成長しており,アイデア次第で大きな価値を生んでいく。今回紹介した技術を現場の知恵と組み合わせながら,より高い価値を生む技術に育てていかなければならない。今後,センサー情報の増加や仮想化技術の進展により,クラウド基盤,ネットワーク,端末を含めたシステムの全体最適が重要となる。本稿の技術を応用・拡張し,全体最適の実現に必要な技術課題へ取り組んでいく。なお,本研究の分散並列型複合イベント処理技術については,経済産業省の平成22年度,23年度産業技術開発委託費「次世代高信頼・省エネ型IT基盤技術開発・実証事業」における研究成果を利用している。

参 考 文 献

(1) 坂下善隆ほか:クラウドフュージョンの全体像.FUJITSU,Vol.62,No.5,p.507-514(2011).

(2) Y. Nomura et al.:Massive Event Data Analysis and Processing Service Development Environment Using DFD.Services(SERVICES),2012 IEEE Eighth World Congress on,p.80-87(2012).

(3) 木村功作ほか:複数クエリ統合によるDFDからソフトウェアコンポーネントへの変換手法,ソフトウェ

アエンジニアリングシンポジウム2012論文集,2012,1-8(2012-08-21).

(4) K. Kimura et al.:Multi-Query Unification for Generating Effi cient Big Data Processing Components from a DFD.Cloud Computing(CLOUD),2013 IEEE International Conference on,p.260-268(2013).

(5) 経済産業省:平成23年度次世代高信頼・省エネ型IT基盤技術開発事業報告「大規模データストリーム処理

基盤の研究開発」.

http://www.meti.go.jp/policy/mono_info_service/joho/cloud/2011/02.pdf

(6) 土屋 哲ほか:クラウドにおける大量データ処理技術.FUJITSU,Vol.62,No.5,p.522-530(2011).

Page 8: データ活用に向けた開発・実行環境と 高速処理技術 · 処理基盤)などのバッチ処理系や複合イベント処 理(CEP:Complex Event Processing)などのリ

FUJITSU. 64, 5 (09, 2013)486

データ活用に向けた開発・実行環境と高速処理技術

栗原英俊(くりはら ひでとし)

ソフトウェア技術研究所ソフトウェアイノベーション研究部 所属現在,アプリケーション開発・実行環境の研究開発に従事。

坂本喜則(さかもと よしのり)

システムソフトウェア研究所 所属現在,並列複合イベント処理技術の研究開発に従事。

上田晴康(うえだ はるやす)

システムソフトウェア研究所エクストリームデータ処理研究部 所属現在,データ活用分散処理の研究開発に従事。

松原正純(まつばら まさずみ)

システムソフトウェア研究所エクストリームデータ処理研究部 所属現在,並列複合イベント処理技術の研究開発に従事。

著 者 紹 介