-[[Star Schema Bechmark: InfoBright, InfiniDB and LucidDB:http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/]]

* [[Infobright:http://www.infobright.com/]] [#g56439c7]
-MySQLのエンジン形式のDWH検索エンジン
-カラム型DB
-レコード数が多ければ多いほど、通常のMySQLとの差が広がる
--1000万レコードだと5倍以上違うらしい

-[[Infobright - MySQL:http://www-jp.mysql.com/products/dw/infobright.html]]
-[[Infobright - KSK Solutions:http://www.infobright-partner.jp/]] ... 日本の正規販売代理店
-[[Infobright Japanパートナーブログ:http://www.blog.infobright-partner.jp/]]

-[[QuickKnowLedge > Infobright:http://nakayama.ddo.jp/wordpress/?cat=353]]
-[[DWH:infobrightの構築:http://nakayama.ddo.jp/wordpress/?p=609]]
-[[DWH: Infobright パフォーマンス検証:http://nakayama.ddo.jp/wordpress/?p=635]]
-[[mongodb,mysql,infobright 速度検証:http://nakayama.ddo.jp/wordpress/?p=777]]

-[[Data Warehousing with MySQL and Infobright のまとめ:http://akitosblog.seesaa.net/article/165390846.html]]

** CSVファイルのimport [#e2620daa]
-DB、テーブル、CSVファイルを指定してデータロード
 #!/bin/sh
 
 INFOBRIGHT_ROOT=/usr/local/infobright
 MYSQL_USER=*****
 MYSQL_PASSWORD=*****
 CUR_DIR=`pwd`
 
 DQ='"'
 QT="'"
 
 DATABASE=$1
 TGT_TABLE=$2
 CSV_FILE=$3
 
 # データフォマットを可変長のテキストに設定して、CSV形式でInfobrightローダーを使用
 WKSTR="set @bh_dataformat='txt_variable';\n"
 # ロード前に現在のデータを削除
 WKSTR="${WKSTR}TRUNCATE TABLE ${TGT_TABLE};\n"
 # データロード
 WKSTR="${WKSTR}LOAD DATA INFILE ${QT}${CUR_DIR}/${CSV_FILE}${QT} INTO TABLE ${TGT_TABLE} FIELDS TERMINATED BY ${QT},${QT} ENCLOSED BY ${QT}${DQ}${QT};"
 
 echo ${WKSTR}
 
 echo ${WKSTR} > ${CUR_DIR}/LOAD_TABLE_${TGT_TABLE}.sql
 
 $INFOBRIGHT_ROOT/bin/mysql $DATABASE < ${CUR_DIR}/LOAD_TABLE_${TGT_TABLE}.sql -u $MYSQL_USER -p$MYSQL_PASSWORD

* [[InfiniDB:http://www.infinidb.org/]] [#a3497b39]
-[[Calpont社:http://www.calpont.com/]] 開発
-2010年11月現在、最新バージョンは2.0
-[[Enterprise版の価格:http://www.calpont.com/licensing]] ... Single Node : $27,995 each、Multi Node : $19,995 per node
-InfiniDBは「MySQL 5.1.39」をベースとしたエンジンで、データウェアハウス、データマート、ビジネスインテリジェンスなどの分析アプリケーションに最適としている。
-カラム主導のアーキテクチャを採用、マルチスレッド設計により、マルチコアCPUを効果的に活用できる。垂直と水平の両パーティショニングをサポートした「Extent Map」により、カラムとローの両方でI/Oを削減できるという。
-このほか、可用性技術のMVCC(多版型同時実行制御)、DMLサポート、高速データローダー、ACID標準トランザクションなどの特徴を持つ。性能診断、クラッシュ復旧などの機能もある。
-Enterprise版(30日間仕様可能)では、Community Editionをベースに、MMP(超並列処理)機能などが加わっている。
-InfiniDB Community Editionは、[[Calpontのオープンソースプロジェクト:http://www.infinidb.org/]]よりダウンロードできる。

-[[InfiniDB 1.0登場、高性能データウェアハウスをMySQLへ:http://journal.mycom.co.jp/news/2010/02/03/052/index.html]]

-[[OSSなDWH InfiniDB の話 ? 〜インストール:http://nakayama.ddo.jp/wordpress/?p=829]]
-[[OSSなDWH InfiniDB の話 ? 〜データベース構築:http://nakayama.ddo.jp/wordpress/?p=856]]
-[[OSSなDWH InfiniDB の話 ? 〜CSVデータのロード:http://nakayama.ddo.jp/wordpress/?p=883]]
-[[OSSなDWH InfiniDB の話 ? 〜InnoDB エンジンと共存する方法:http://nakayama.ddo.jp/wordpress/?p=904]]
-[[OSSなDWH InfiniDB の話 ? 〜リアルタイムDWH化に成功!:http://nakayama.ddo.jp/wordpress/?p=911]]

-[[InfiniDBを使ってみる:http://kingyo-bachi.blogspot.com/2010/06/infinidb.html]]

** 設定 [#u6e2bd66]
-ユーザ mysql, グループ mysql がない場合は作成しておく(でないと後々面倒くさい)

-バイナリファイルを /usr/local に展開(/usr/local/Calpont ができる)
-/usr/local/Calpont/mysql/my.cnf を編集
--変更:[client] port ... 3306以外に(既にMySQLが動いている場合)
--変更:[mysqld] port ... 3306以外に(既にMySQLが動いている場合)

--追記:[client]
 default-character-set=utf8
--追記:[mysqld] 
 default-character-set=utf8
 default-collation=value
 character-set-server=utf8
 collation-server=value
 init-connect=’SET NAMES utf8’
 sql_mode = 'IGNORE_SPACE'
 skip-character-set-client-handshake
--追記:[mysql]
 default-character-set=utf8

-以下のコマンドを実行
 # /usr/local/Calpont/bin/install-infinidb.sh
 # . /usr/local/Calpont/bin/calpontAlias
 # service infinidb start

-使えるようになったか確認
 # idbmysql
 mysql > show engines;
         :
 | InfiniDB   | YES     | Calpont InfiniDB storage engine ...
         :

** 使い方 [#yf9b9e4d]
-起動と終了
 # service infinidb start
 # service infinidb stop

-Aliasの設定(InfiniDB を使う際に1回実行)
 $ . /usr/local/Calpont/bin/calpontAlias
-クライアントプログラム
 $ idbmysql

** CSVファイルのimport [#jf3ee4f8]
-Infobright に比べると面倒くさい

-注意点
--文字と文字をくくる、ダブルクォーテーションに対応していない。付いている場合、エラーにはならないが値が全て0とかになる。
--だからInfiniDBの場合はCSVファイルでなく、タブ区切りファイルを使うべき

-定義ファイルの作成
 # /usr/local/Calpont/bin/colxml -h
 Running colxml with the following parameters:
 Usage: colxml [options] schema
 Options:
   -d delimiter
   -e max error rows (numeric)
   -h Print this message
   -j Job id (numeric)
   -l load file name
   -n "name in quotes"
   -p path for XML job description file that is generated
   -s "description in quotes"
   -t table name
   -u user
   -r Number of read buffers (numeric)
   -c Read buffer size (numeric)
   -w Write buffer size (numeric))
   -x Extention of file name
   -b debug level (1-3)
 
   schema  - Required field, all others are optional!
 Example:
        colxml -t lineitem -j 123 schema

-作成した定義ファイルに基づくimport
 # /usr/local/Calpont/bin/cpimport -h
 Usage: cpimport -j jobID [-h][-r readers][-w parsers][-s c][-f path][-d debugLevel][-i]
 Options:
   -d Print different level (1-3) debug message
   -i Print extended info to console, else extended info only goes to log file
   -h Print this message
   -j Job id (Required)
   -n NullOption (0-treat the string NULL as data (default); 1-treat the string NULL as a NULL value)
   -p path for XML job description file
   -r number of readers
   -w number of parsers
   -s 'c' is the delimiter between values
   -f data file(s) directory path; specify 'STDIN' to redirect input from stdin (STDIN must be all caps)
 -j option is required!

** アンインストール [#ef2f5f81]
 # service infinidb stop
 # chkconfig --del infinidb
 # rm -rf /usr/local/Calpont

** Tips [#z37e3cc7]
-カラム名として date を指定するとエラーになる(そもそも型名のdateなんてカラム名にするなよって話なんだけどさ)
--[[MySQL allows column named date or action and some special characters that are not supported by InfiniDB:https://bugs.launchpad.net/infinidb/+bug/461510]]

* VP for MySQL [#g2912a1b]
-[[まるで魔法のようなストレージエンジン??VP for MySQLによる驚愕のテーブル操作テクニック。:http://nippondanji.blogspot.com/2010/04/vp-for-mysql.html]]

* SPIDER [#hab4d965]
-[[快適スケールアウト生活への第一歩。SPIDERストレージエンジンを使ってみよう!:http://nippondanji.blogspot.com/2010/04/spider.html]]
-[[Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン:http://nippondanji.blogspot.com/2010/03/not-only-nosql-writespider.html]]
-[[国産MySQLストレージエンジン「Spider」の作者、斯波健徳氏に聞く:http://labs.unoh.net/2009/07/mysqlspider.html]]

* [[HandlerSocket:https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL]] [#ma7b2270]
-モバゲータウンにて実際に運用中
-非SQLでインターフェイスを提供し、リクエストを集約して実行することや、独自プロトコルで通信量を減らすなどの処理で、単純な参照クエリで数倍〜10倍程度速くなったそうな
-標準でC++とPerlのクライアントライブラリを提供
-有志によって、Ruby や Python,PHP,Java などのバインディングあるいはネイティブ実装のクライアントが公開されている。

-[[Using MySQL as a NoSQL:http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html]]
--[[NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現:http://www.publickey1.jp/blog/10/nosqlmysqldenamemcached75.html]]
-[[HandlerSocket plugin for MySQL:http://www.slideshare.net/akirahiguchi/handlersocket-plugin-for-mysql-4664154]]

-[[mysqlにhandlersocket pluginを入れる:http://d.hatena.ne.jp/kamipo/20100822/1282468731]]
-[[NoSQLとしてのMySQLの動作確認(HandlerSocket):http://www.google.co.jp/search?q=HandlerSocket&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a]]

-[[HandlerSocket Plugin for MySQLのPHPクライアントを公開しました:http://lab.klab.org/young/2010/10/handlersocket-plugin-for-mysql%E3%81%AEphp%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%92%E5%85%AC%E9%96%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/]]
-[[MySQLのplugin検証(HandlerSocketのJavaクライアント実装と公開と検証):http://ameblo.jp/just-do-neet/entry-10682348973.html]]
-[[MySQLのplugin検証(HandlerSocketのJavaクライアント):http://ameblo.jp/just-do-neet/entry-10676653056.html]]
-[[HandlerSocket の Node.js クライアント node-handlersocket リリース:http://d.hatena.ne.jp/koichik/20101103#1288782000]]

-[[Re: handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] :http://blog.nomadscafe.jp/2010/08/re-kazuho-handlersocket-plugin-mycached-memcached-10.html]]

* Falcon [#zea46844]

* Maria [#y7f25627]

* groonga [#y0882121]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS