2012/09/16

InfiniDBのセミナーを受けてきた

今年のオープンソースカンファレンス2012.DBのひとこまで聞きかじった「InfiniDB」に興味がわき、
より詳しい話が聞けるとのことで株式会社アシストさんの無料セミナーに参加してきました。


オープンソースカンファレンス2012.DB
https://www.ospn.jp/osc2012.db/modules/eguide/event.php?eid=5

株式会社アシスト InfiniDB
http://www.ashisuto.co.jp/prod/infini/index.html

アシストさんの(ステルスじゃない)マーケティングみたいになってますが、
アシスト社員ではありません。InfiniDBユーザーでもありません。



.


このエントリでは前回の講演では聴けなかった内容と、自分がした質問とそれに対する回答を中心にメモしたものを貼り付けます。
(講師の方が「外だししづらい」とおっしゃっていたデータについては触れません。)

製品概要

これはアシストさんのサイトを見ていただいたほうがよいのですが、時間がない人向けに簡単に。
  • DWH用のDBサーバー
  • 開発は米国Calpont社、アシストは国内代理店
  • MySQLをベースに作られており、主にストレージエンジンが独自の列指向型
  • 有償のEnterprise版と無償のCommunity版がある
  • 売り文句は Scalable、Fast、Simple

製品の優位点

これもオンラインセミナーなどの資料を見ればわかることですが、自分の中でおさらいするためにメモ。

他のRDBMSと比較した場合の優位点は以下のとおり。
  • 列指向(垂直パーティション)であるため、DWHでのクエリ処理が早い。
  • 列ごとにデータ圧縮するため、総データ量が少なく、I/Oも少ない。
  • エクステントという単位でデータを格納し、これにより水平のパーティションもされるので、行の絞込みにも強い。
  • これらの機能がメンテナンス不要で常に働くため、パフォーマンスチューニングがほとんど不要。
  • CPUやディスクI/Oを使い切るのでスケールアップ、スケールアウトすると正比例でパフォーマンスアップする。
これらにより、他の列指向型DBと比較しても優位な点が多いとの分析。

ちなみに今年の8月にバージョン3.0が出て、シェアードナッシング構成がとれるようになったそうです。
また、次のバージョンアップではベースのMySQLが5.5になるとか。


事例紹介

  • 国内では3社、海外では約50社。
  • 有名どころではWarner Music。
  • 12億件、105ギガバイトのデータを1時間でインポートできた。
  • 6種類の列指向DBを総合的に比較してInfiniDBを採用した。
    (比較対象はNetezza, Infobright, Kognitio, Vertica, ParAccel)
  • それまで45分かかっていたデータロードが数秒になった。
  • 15分おきにデータロードできるようになった。
などなど紹介いただきました。


万能なわけではない

ここら辺から資料にない話を。
そんなの当たり前ですが、万能ではないですよね。

すべての製品より優位というわけではない
「アプライアンス+ごりごりSQLチューニング」にはもちろんかないません。
営業さん曰く たしかに優れたアプライアンスはいっぱいありますがまだまだ高額です。 今の時代にDWHやBIなどリターンの予想できない分野にコストをかけるだけの体力がある企業は多くないでしょう。 InfiniDBのウリは安価でチューニング不要なところ。 IAサーバー+ソフトウェアRDBMSで十分なパフォーマンスが出せるようになってきました。 「小さく初めて大きく育てる(Think Big,Start Small)」のに最適なんです。
トランザクションはサポートしているが、オンライン更新のパフォーマンスはよい方ではない
基本的にはバッチなどでデータインポートする前提です。 まぁここはもともとみんな期待してませんよね。 ちなみにテキストファイルからバルクインサートする「cpimport」っていう独自ツールがあって、 MySQL標準の「LOAD DATA INFILE」より速いみたい。
SQLは基本的にMySQLでサポートしているSQL構文
つまりWindows関数(OLAP関数)のような新しいSQLには対応していません。 配布資料には「ANSI標準SQLに準拠」と書いてありましたが、MySQL同等なのでSQL:2003未満です。 また、「MySQLで使用できる一部の構文を非対応にしている。」とのこと。 具体的にどれなのかは聞きませんでした。(聞いとけよ俺)
文字コードはUTF-8のみに対応
新しい製品だし、これからの製品なので。 SJISなどのデータはOSの機能やETLツールなどでUTF-8に変換してからインポートさせる必要があります。


Enterprise版とCommunity版の違い

個人的にはここが一番気になっていたところ。

Community版の制限
サポートなし
まぁ想像のとおりですね。
一番の違いは列圧縮機能が無い
コレはでかい。データ量にもパフォーマンスにも大きな差がでるところ。
スケールアウトができない
データ量や同時接続ユーザー数次第では大きく差がでるでしょう。 小さくはじめて小さく終わるならCommunity版でも・・・
1CPU4コアまで
まぁそんな感じ。

(当たり前ですが、)講師の方も使うなら是非Enterprise版をと。
ちなみに「Enterprise版の無償試用」もできるそうです。詳しくはアシストの営業さんに。


その他


レプリケーション非対応
MySQL5.1ベースだそうですが、標準のレプリケーション機能は「非対応」ということでした。 実際に動かないのか、サポートしないのかはわかりません。 ただ、製品として独自にスケールする機能があるので、分散は問題なくできます。
Windowsでも動くけど、Linuxがお勧め
「正確に測ったわけではないが、Linuxの方がパフォーマンスがよい傾向がある」とのことです。 事例でも、よほどのっぴきならない事情が無い限り、Linuxでの運用になっているとのこと。
VM環境はお勧めしない
マシンのパフォーマンスを出しきれません。 RDBMSは基本そんな感じだという認識でしたので特に驚きませんでした。 過去の検証でもパフォーマンスダウンを確認しているそうです。
統合ソリューション
アシストさんはこのDBMSだけじゃなくて、ETLツールやBIツールなども含めての統合ソリューションとして提案しているそうです。 名前はAEBIS。詳しくはWEBで。 http://www.ashisuto.co.jp/solution/aebis/


ウチの場合

現状は
  • Oracle Standard Editionなのでスケールせず
  • WindowsServer2003 32bit (ザワザワ・・・
  • データ更新に時間がかかりすぎてバッチが夜間に終わらない。
  • 参照も応答が遅すぎてユーザーの不満が(たぶん)高い。
という状態。
で、2003の延長サポートがもともと2015年までなので、2年以内に移行する必要はあって検討を始めてたわけです。

これをInfiniDBに移行することを想像した場合の課題は
  • SQL Serverに入っているSJISデータをそのままOracleにぶち込んでいるので、間にひと手間必要。
  • データロードに時間がかかる件は、別途ETLツールが必要だろう。
  • Oracleに対してのSQLでBIを組み立てているので、MySQLのSQLに準拠させるためにアレやコレや書き換えが必要かも。
    (作ったのは私ではないのでまだ未知の領域)
  • ウチで使っているBI製品との事例がまだないようで、確認も必要。
とかいろいろ。
また「基本はWindows」な会社なのですが、導入するならそうも言ってられないかもですね。

あと、Community版を使おうと思ってたんですが、MySQLのソレとは違って性能が違いすぎるのでちょっとガッカリしました。
でもまぁOxxxxx Enterprise Editionでそろえるよりははるかに安いし、うたい文句どおりなら運用工数もかなり削減できるはずです。

あと、問題は論理設計。
現状業務のスキーマそのままのデータをぶち込んでいてDWHらしいスタースキーマとかまったく考慮してないんですよね。
設計しなおさなくてもそれなりのパフォーマンス出ればいいなぁ、メンドクサイから・・・・。なんて。


謝辞

無料でセミナーを開催してくれているアシストさんには感謝。
参加者も10名未満だったので、質問をたくさんさせていただき、すべて丁寧に回答いただいたのもありがたかったです。



アシストさんのドメイン名 ashisuto.co.jp ・・・苦渋の決断だったのではなかろうかと邪推してます。

その後会社の成り立ちや元社長の逸話などを聞く機会があり、意図したものだったと知りました。
書いたのを忘れて訂正せずに放置していたらコメントいただいてしまいました。
申し訳ありません。

.

2 件のコメント:

  1. ashisuto.co.jp
    これは苦渋の決断ではなく、好んでつけたものです。
    会社名自体がassistではなく、asshisutoですから。
    もともと海外製品(最初はassistという商品)を扱っていた関係で
    海外の会社(ソフトメーカー)に対して、日本は英語で通用すると
    思うなよ。と思わせる意味合いも含めてつけられた名前が
    ASHISUTOです。
    文化の違いを輸入先に認識させるべくつけられたなまえです。

    返信削除
    返信
    1. コメントありがとうございます。
      本文も訂正いたしました。

      削除