噂の超高速分析データベースを試してみよう~ログ解析,機械学習なんでもござれ~

第4回 あのシステムもビッグデータ分析や機械学習に活用中! 超高速データベース「Vertica」とは?[後編②]

この記事を読むのに必要な時間:およそ 5.5 分

機械学習

昨今,大きな話題になっている機械学習を用いた分析処理は,データマイニングツールやR,Pythonなどを利用するのが一般的です。しかし,大量データを対象にした分析ではパフォーマンスが課題になることが多く,データを間引いたり,ソースデータをあらかじめ加工しなければならない場合もあります。

Verticaは,機械学習アルゴリズムもデータベースに内蔵しています。そのため,データベース内で(データソースを間引くことなく)そのまま高速処理することが可能です。Verticaで実装されている機械学習アルゴリズムを表2にまとめています。

表2 Verticaの機械学習アルゴリズム一覧

アルゴリズムモデル作成評価予測分析
線形回帰分析
ロジスティック回帰分析
K平均法

学習データをもとにこれらのアルゴリズムを使うことで,数値や確率の予測,クラスタリングを行うことができます。Verticaで機械学習を行うことには,次のようなメリットがあります。

  • SQLで機械学習を行うことができる
  • RやPythonクライアントと比較して高速に処理できる(Verticaで並列分散処理)
  • SQL分析と機械学習分析のプラットフォームを分ける必要がない

それでは,自動車のデータを使った具体的な例を見てみましょう。車種別に「燃費(mpg⁠⁠」やエンジンの「シリンダー数(cyl⁠⁠馬力(hp⁠⁠重量(wt⁠⁠」などのデータを持つテーブルがあります図8⁠。これらのデータをVerticaに読み込ませて学習させます(モデリング⁠⁠。

図8 学習させるテーブルデータ

       carName       | mpg  | cyl | disp  | hp  | drat |  wt   | qsec  | vs | am | gear | carb |  tf
---------------------+------+-----+-------+-----+------+-------+-------+----+----+------+------+-------
 Fiat X1-9           | 27.3 |   4 |    79 |  66 | 4.08 | 1.935 |  18.9 |  1 |  1 |    4 |    1 | train
 Merc 230            | 22.8 |   4 | 140.8 |  95 | 3.92 |  3.15 |  22.9 |  1 |  0 |    4 |    2 | train
 Merc 280C           | 17.8 |   6 | 167.6 | 123 | 3.92 |  3.44 |  18.9 |  1 |  0 |    4 |    4 | train
 Merc 450SE          | 16.4 |   8 | 275.8 | 180 | 3.07 |  4.07 |  17.4 |  0 |  0 |    3 |    3 | train
 AMC Javelin         | 15.2 |   8 |   304 | 150 | 3.15 | 3.435 |  17.3 |  0 |  0 |    3 |    2 | test

図9では,線形回帰分析アルゴリズムを用いて,⁠mtcarsテーブル」の中から「cyl列」⁠hp列」⁠wt列」の3つの列データを説明変数とし,⁠mpg列」を目的変数とした線形回帰モデル「linModel」を作成しています。

図9 線形回帰モデルの作成

SELECT v_ml.linearReg('linModel', 'mtcars', 'mpg', 'cyl,hp,wt', '--exclude_columns= carName --description my_linearReg_model');

図10では,作成した線形回帰モデルを使って,⁠燃費(mpg⁠⁠」の値を予測させています。左の列から,車種(carName⁠⁠,正しい燃費(observed⁠⁠,機械学習によって予測させた値(predicted)が表示されています。

図10 機械学習による予測結果

       carName       | observed |    predicted
---------------------+----------+-----------------
 AMC Javelin         |     15.2 | 17.6357311618035
 Cadillac Fleetwood  |     10.4 | 10.8954543679367
 Camaro Z28          |     13.3 | 14.6442677270797
 Chrysler Imperial   |     14.7 | 10.1449185542106
 Datsun 710          |     22.8 | 25.9667989028515
 Dodge Challenger    |     15.5 | 17.3663828863913
 Duster 360          |     14.3 | 15.4998446019185
 Ferrari Dino        |     19.7 | 21.1799824379912
 Fiat 128            |     32.4 | 26.8325147580537
 Fiat X1-9           |     27.3 | 27.6722476166918

このように,Vertica内のテーブルデータの分布(説明変数)を学習させて,予測させたいデータ(目的変数)をVerticaに計算させることができます。

なお,説明変数となるデータを読み込ませたあと,データプレパレーションとしてデータの偏りを事前になくし,データを正規化することで,より高速かつ精度の高い予測値を得られます。そのために,Verticaではデータを正規化するSQL関数機能が提供されています。SQL関数1つで簡単にデータの正規化が行えます。

進化し続けるVertica

本稿で紹介してきたように,Verticaは単なるデータベースの枠を超え,⁠ビッグデータ分析プラットフォーム」としてさまざまなツールとの連携機能や独自の分析機能を提供し続けています。また稼働環境についても,オンプレミスや仮想化環境だけでなく,Amazon Web ServiceやMicrosoft Azureといったクラウド環境にも対応しており,その活躍の場を広げています。

さっそく試してみよう!

前後編にわたって,Verticaの「大量データを高速に処理できるしくみ」「ビッグデータ分析基盤としての強力な機能」を紹介してきました。今回,誌面の都合で紹介できませんでしたが,ほかの多くの列指向型データベースでは実装が追いついていない主キー設定といった基本機能の保証など,Verticaには数多くの優れた機能が搭載されています。

「百聞は一見に如かず」と言います。まずは既存データベースの性能課題を解消することを目的に,将来のビッグデータ活用も見据えてVerticaを試してみてはいかがでしょうか。Verticaには,3ノード構成,1TBまでの範囲であれば機能制限なしで利用でき,オンプレミス環境とクラウド環境のどちらにも対応した評価版「Vertica Community Edition」があります。この評価版のダウンロード/インストール,テストデータのロード,プロジェクションの最適化方法などを網羅したドキュメント「はじめてのVertica」Vertica技術情報サイトからダウンロードできますので,詳細情報をご覧ください。

さらに,Verticaをもっと手軽にお試しいただくために,Verticaがプリインストールされたクラウド環境を用意しました。2週間無料でお使いいただくための手順が以下のURLにありますのでご利用ください注1⁠。

みなさまが持つ課題の解決に,本稿とVerticaがお役に立つことを心より願っています。

注1)
インスタンスのマシンスペックの都合で,Verticaの高速性は体験できない可能性があります。まずはVerticaの雰囲気を体験してみたいという方にお勧めです。

Vertica技術情報サイト⁠,はじめてのVerticaのダウンロードはこちらから。

Vertica事例セミナー『Verticaで解決したビジネス課題』
URL:https://mp.ashisuto.jp/public/seminar/view/7464

概要:実際に「Vertica」を導入したユーザー3社様にご講演いただきます。生の声をお聴き逃しなく!

WEB+DB PRESS

本誌最新号をチェック!
WEB+DB PRESS Vol.122

2021年4月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-12119-8

  • 特集1
    上から下まで全レイヤ解説! 複雑化した世界を体系的に学ぶ
    Web技術総整理
  • 特集2
    新バージョン登場! PythonによるWeb開発の基本
    はじめてのDjango
  • 特集3
    Rustで実装!
    作って学ぶRDBMSのしくみ

著者プロフィール

倉岡洋義(くらおかひろよし)

株式会社アシスト データベース技術本部 技術統括部 技術1部4課

学生時代に研究室のSunワークステーションの管理者になったのをきっかけにSIerに就職。

Linux系インフラエンジニアの道を歩みながら,Oracle RACのクラスタリング技術に衝撃を受けてアシストに転職。

Oracle,InfiniDBを経て現在はVerticaデータベースを担当。

趣味はピアノと筋トレ。