グループウェアのログデータを分析対象とした、 PL/Rを用いたデータマイニングWebアプリの実現(1)
アブストラクト:
新入社員が受ける一ヶ月の開発研修で、PostgreSQLとR言語を統合し、PL/Rを用いてデータマイニングのWebアプリを実装しました。また、サイボウズ社内で使用している「サイボウズガルーン2」のWebサーバーのログデータを分析してみました。ここで、これらの技術について、紹介したいと思います。
キーワード:
グループウェア、ログデータ、Webアプリケーション、データマイニング、可視化
初めまして、周と申します。2009年2月に「ポスドク採用枠」(ポスドク枠)で入社し、現在は開発部に所属しています。今回、開発部業務研修で実装したデータマイニングWebアプリやログデータ分析についての技術を紹介したいと思います。
サイボウズでは、ポスドク枠で採用される新入社員は、約1ヶ月の人事・OJT研修以外に、配属先の開発部でも、約1ヶ月、経験豊富なメンターに付いて業務研修を受けます。業務研修は、スムーズに開発に参加できるようになることを目的としています。また、自分が好きな分野を加え、技術調査を行うことで、開発部のメンバーたちとの技術交流もできると言われています。
1.データマイニングWebアプリの実現
近年、データマイニングやテキストマイニングが注目されてきました。SASやSPSSなどのデータマイニングに特化する企業の急成長は、その一例であると思います。大量データの蓄積、データ活用する意識の高まり、分析手法を活用する事例の増加などが、データマイニングのニーズを高める要因であると考えています。一方、高価なSASやSPSSのような商業データマイニングソフトと匹敵でき、フリーウェアであるR言語などが注目されています。さらに、R言語をデータベース管理システムの分析エンジンとし、Webアプリの形でデータマイニングやグラフィックスの機能を提供できれば、適用範囲がもっと広がると考えています。そこで、フリーウェアであるデータベース管理システムPostgreSQLをR言語と統合し、データマイニング機能やグラフィックス機能を提供できるWebアプリを実装してみました。
(1)R言語について
R言語とは:
オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境であります。
R言語(参考:Wikipedia)
特徴:
・可視化の柔軟性が高い
・統計分析や機械学習などの分析機能が豊富である
・フリーなアドオンパッケージが1,700個以上あり拡張性が高い
インターフェース:
R言語の活用によって、多様なアプリとのインターフェースが出てきました。
Rとインターフェースのあるアプリ
実例:
≪検査・調査Web システムにおける統計解析機能の導入と活用≫
(参考:工藤伸之(2008)平成20年度岡山理科大学修士論文)
(2) PL/Rについて
PL/Rとは:
PostgreSQL用R手続き型言語(R Procedural Language for PostgreSQL)です。DBMS環境でR言語の分析機能や可視化機能を呼び出すことが可能になります。
http://www.joeconway.com/oscon-pres-2003-1.pdf
(以下PDFより一部抜粋)
メリット:
・Leverage people's knowledge and skills
– statistics is a specialty not common amongst database developers
・Leverage hardware
・Processing/bandwidth efficiency
・Consistency of analysis
・Abstraction of complexity
デメリット:
・PostgreSQL user:
– Slower than standard SQL aggregates (e.g. AVG) for simple cases
– New language to learn
・R user:
– Debugging more challenging than working directly in R
– Less flexible for ad hoc analysis
PostgreSQLとは:
BSDライセンスにより配布されているオープンソースのオブジェクトデータベース管理システム (ORDBMS) です。
(3) PL/Rを用いたウェブアプリの実現
実装したWebアプリの構造を下図に示しています。分析リクエストがSQLスクリプトの形でPostgreSQLに渡されます。PostgreSQLはSQLスクリプトを実行し、その中に埋め込めたPL/Rの関数を 実行します。また、PL/R関数の実行により、R言語を呼び出し、分析を行い、分析結果やグラフィックスを返します。分析データがPostgreSQLに蓄積していて、分析や分析データのやり取りがすべてPostgreSQL環境で処理できるので、他のR言語インターフェースと比べて、処理速度が速いという特徴を持ちます。ここでは、Webアプリの実現はPHPを利用しましたが、PL/Rがアプリケーションの開発言語に依存しないという特徴も持っています。PL/RがR言語の呼び出しを、PostgreSQL環境で行うためです。

コメント