GA
2012/07/30
Infobrightにworldデータベースを食わせてみる
前に書いたけれども、InfobrightはCommunity Edition(GPLで使える方)はINSERT,UPDATE,DELETEが利かない。
でもSELECT(というかGROUP BY)性能を試す為には当然データが必要。
なのでごり押しでworldデータベース(MySQL公式のサンプルDB)を食わせる方法のメモ。
1) まずは落としてくる
http://dev.mysql.com/doc/index-other.html
`world database (MyISAM version, used in MySQL certifications and training)'をチョイス。
InfobrightのMyISAMに食わせてからBRIGHTHOUSEに食わせ直すことにした。
2) MyISAMテーブルにロード
$ mysqladmin create world_myisam
$ mysql world_myisam < world.sql
さっくりと。
3) INDEXをひっぺがしたりデータ型を変えたり
world.sqlファイルを直接いじっても良いかも知れない。
mysql> ALTER TABLE `City` MODIFY `ID` INT NOT NULL,DROP PRIMARY KEY;
mysql> ALTER TABLE `Country` MODIFY `Continent` VARCHAR(13) NOT NULL DEFAULT 'Asia',DROP PRIMARY KEY;
mysql> ALTER TABLE `CountryLanguage` MODIFY `IsOfficial` VARCHAR(1) NOT NULL DEFAULT 'F',DROP PRIMARY KEY;
4) スキーマをBRIGHTHOUSEエンジンに食わせる
$ mysqladmin create world
$ mysqldump --no-data world_myisam | sed 's/ENGINE=MyISAM/ENGINE=BRIGHTHOUSE/i' | mysql world
ENGINEをInfobrightのエンジンに変更してそのまま食わせる。
5) データをCSVに吐き出してからBRIGHTHOUSEに食わせる
$ mysql --skip-column-name -e "SHOW TABLES FROM world_myisam" | while read tbl ; do
> mysql -e "SELECT * FROM world_myisam.$tbl INTO OUTFILE '/tmp/$tbl.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\'"
> mysql -e "LOAD DATA INFILE '/tmp/$tbl.csv' INTO TABLE world.$tbl FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\'"
> rm /tmp/$tbl.csv
> done
rmがアレなら最後にまとめて消す。
取り敢えずこれで使える形に落とし込めるけど、
worldデータベースだと件数が少なくてちょっとさみしいかも。
employeesだともうちょっと件数があるので、集約関数の速さは実感できた。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿