1.必要のソフト
①java jre 1.4(1.6兼用性の問題で、使えないです。。)
②php
③hightchartのexporting-serverフォルダー下のindex.php
④Batik
2.javaインストール
①http://java.sun.com/j2se/1.4.2/ja/download.htmlでrpm版をダンロードします。
②./j2re-1_4_2_19-linux-i586-rpm.bin
③rpm -ivh j2re-1_4_2_19-linux-i586.rpm
3.phpのインストール
yum install php
4.phpのapache設定
yumでインストールしましたので、/etc/httpd/conf.d/php.confを参考してください。
5.Batikのインストール
①cd /usr/local/src
②wget http://ftp.kddilabs.jp/infosystems/apache//xmlgraphics/batik/batik-1.7.zip
③unzip batik-1.7.zip
④mv batik-1.7 /usr/local/
⑤ln -s /usr/local/batik-1.7 /usr/local/batik
6.index.phpの修正
①Batikのパスの設定
define ('BATIK_PATH', '/usr/local/batik/batik-rasterizer.jar');
②linuxのjavaの特別対応
68行を編集します。
変更前:
java -jar
変更後:
java -Djava.awt.headless=true -jar
7.highchartのところにURLを自分のサーバに設定すれば、作業完了
平成22年11月11日木曜日
平成22年6月7日月曜日
MySQL Partitionsの応用ーー①作成編
Partitionsメリット:
①パフォーマンス:
×1年間のclickデータを全て「click」というテーブルに入ったら、5月のデータ中になんとか検索したい場合、以下のSQLを使います
その場合、もしindexを使いたいなら、まずindex(created,user_info)を作らないといけないです。そして、一年間のデータが数百万がある場合、index自体も大きくて、insert時のパフォーマンスに影響があります。
★この時Partitionsを使ったら
・検索範囲が5月のPartitionだけです(月単位でPartitionする場合)ので、indexがなくても、データ量が少ないので、相対早くなります。
・indexはPartition単位で作ってますので、一年間のデータのindexより軽い。(Partition単位でindexファイル設定できますので、推計した結果)
②管理
・同じファイルを複数のファイルで分けれるので、テーブルの大きさの制限がなくなります。
・旧いデータを削除場合、旧いPartitionを削除すれば、OKです
では、早速テーブルを作りましょう
この作成用のSQLに幾つかの注意点があります。
①PRIMARY KEY (action_id,created)
Partitionのキーワード(ここはcreatedは必ず全てのPrimary Key,Unique Keyのカラムの一部分)
②検索時、Partitionのキーワードを見て、該当Partitionだけ検索するFuncはTO_DAYSとYEARだけです
↑の意味は分かりにくいかもしれないので、例で見てみましょう。
このSQLは検索の範囲とindex状況を見れます
・PARTITION BY RANGE (TO_DAYS(created))場合
検索の範囲はPARTITION p201005
・PARTITION BY RANGE (unix_timestamp(created))
検索の範囲は全部のPartition
原因はまだ分からないけど、気を付けってください。
作成編が完成、今度はBenchMark編
①パフォーマンス:
×1年間のclickデータを全て「click」というテーブルに入ったら、5月のデータ中になんとか検索したい場合、以下のSQLを使います
select * from click where created >= '2010-05-01 00:00:00' and created <= '2010-05-31 00:00:00' and user_info = 'hoge'
その場合、もしindexを使いたいなら、まずindex(created,user_info)を作らないといけないです。そして、一年間のデータが数百万がある場合、index自体も大きくて、insert時のパフォーマンスに影響があります。
★この時Partitionsを使ったら
・検索範囲が5月のPartitionだけです(月単位でPartitionする場合)ので、indexがなくても、データ量が少ないので、相対早くなります。
・indexはPartition単位で作ってますので、一年間のデータのindexより軽い。(Partition単位でindexファイル設定できますので、推計した結果)
②管理
・同じファイルを複数のファイルで分けれるので、テーブルの大きさの制限がなくなります。
・旧いデータを削除場合、旧いPartitionを削除すれば、OKです
ALTER TABLE employees DROP PARTITION p0
では、早速テーブルを作りましょう
CREATE TABLE action (
action_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
created DATETIME NOT NULL,
updated DATETIME NOT NULL,
deleted TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (action_id,created),
index(created)
)ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_bin
PARTITION BY RANGE (TO_DAYS(created))
(PARTITION p201005 VALUES LESS THAN (734289) ENGINE = InnoDB,
PARTITION p201006 VALUES LESS THAN (734319) ENGINE = InnoDB);
この作成用のSQLに幾つかの注意点があります。
①PRIMARY KEY (action_id,created)
Partitionのキーワード(ここはcreatedは必ず全てのPrimary Key,Unique Keyのカラムの一部分)
②検索時、Partitionのキーワードを見て、該当Partitionだけ検索するFuncはTO_DAYSとYEARだけです
↑の意味は分かりにくいかもしれないので、例で見てみましょう。
explain partitions select * from click where created >= '2010-05-01 00:00:00' and created <= '2010-05-31 00:00:00'
このSQLは検索の範囲とindex状況を見れます
・PARTITION BY RANGE (TO_DAYS(created))場合
検索の範囲はPARTITION p201005
・PARTITION BY RANGE (unix_timestamp(created))
検索の範囲は全部のPartition
原因はまだ分からないけど、気を付けってください。
作成編が完成、今度はBenchMark編
平成22年5月25日火曜日
GO言語のインストールメモ FOR MAC
1.Go言語のソースをゲットする唯一の道はバージョン管理システムからダウンロードするみたいですので、
まずMercurialというpythonで実現したバージョンツールのクライアントをダウンロードしないいけないですけど、
ラッキのはeasy_installで簡単にインストールできそうですん。
2.環境変数の設定
~/.bashrcでいかの変数を設定します
export GOROOT=$HOME/go ソースの場所
export GOARCH=amd64 x86-64を対応しています(パフォーマンスを結構期待できそうです)
export GOOS=darwin Mac OS
export GOBIN=$HOME/bin インストール場所
3.ソースダウンロード
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
4.インストール
5.プログラムのexample
6.Makefileのexample
cp ~/go/src/Make.cmd ./
cp ~/go/src/Make.amd64 ./
cp cmd/godoc/Makefile ./
Makefileの修正
まずMercurialというpythonで実現したバージョンツールのクライアントをダウンロードしないいけないですけど、
ラッキのはeasy_installで簡単にインストールできそうですん。
sudo easy_install mercurial
2.環境変数の設定
~/.bashrcでいかの変数を設定します
export GOROOT=$HOME/go ソースの場所
export GOARCH=amd64 x86-64を対応しています(パフォーマンスを結構期待できそうです)
export GOOS=darwin Mac OS
export GOBIN=$HOME/bin インストール場所
3.ソースダウンロード
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
4.インストール
$ cd $GOROOT/src
$ ./all.bash
5.プログラムのexample
$ cat >hello.go <package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
EOF
$ 6g hello.go
$ 6l hello.6
$ ./6.out
hello, world
$
6.Makefileのexample
cp ~/go/src/Make.cmd ./
cp ~/go/src/Make.amd64 ./
cp cmd/godoc/Makefile ./
Makefileの修正
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
include Make.$(GOARCH)
TARG=h
GOFILES=\
file.go\
include Make.cmd
平成22年5月11日火曜日
Linuxでpkgconfigの使い、設定方法
今回syslog-ngを自分でインストールする時、以下のエラーが出ました。
自分の環境確認した上で、GLibのバージョンが旧いのを判断しました
最初yumで自動更新してもらいたいけど、なんとyumのサイトにglib-1.2.10が最新バージョンです。。。。ショック!!
今回syslog-ngは2.10.1のglibが必要ので、glibから自分インストールするしかないです。
glibのインストールコマンド
インストールは簡単ですけど、単純にインストールしても、syslog-ngインストール時、
この新しいインストールしたglibは見つからないため、また失敗しました。
このとき、エラーメッセージ中のpkg-config in pathという文字列が目に入りました。
多分pkg-configに新しいglibのpathを設定すれば、問題解決するかもしれないので、ネットで
pkg-configの使い方を調査しました。
pkg-configはプログラムをコンパイル時、必要のlibの存在パスを表示するという役があります。
たとえば、下記のコマンドを実行した結果を見てみます。
結果の-lpng12はgccコンパイル時使うパラメートと思います。
今回使うのglib-2.0を探してみましょう
エラー出しました。
実今回のglibのインストール後、/usr/local/libのしたにpkgconfigというフォルダーが出てきました。
このフォルダー中にglibのpkgconfig情報全部入ってますので、pkg-configコマンドを/usr/local/lib/pkgconfigの内容を読み込めば、問題解決すると思います。
対応方法は実に二つがあります
pkg-configコマンドはPKG_CONFIG_PATH環境変数中のConfigファイルを読み込みますので、
以下のようなコマンドを実行すれば、glibが見つかれます
もうしくは/usr/lib/pkgconfigというフォルダーがあって、pkg-configのデフォルトConfigフォルダーです。ここにglibのpkgconfigをコビーすれば、環境変数設定しなくても、glibが見つかります。
以上
checking for GLIB - version >= 2.10.1... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: Cannot find GLIB version >= 2.10.1: is pkg-config in path?
自分の環境確認した上で、GLibのバージョンが旧いのを判断しました
rpm -qa | grep glib
glib-1.2.10-20.el5
最初yumで自動更新してもらいたいけど、なんとyumのサイトにglib-1.2.10が最新バージョンです。。。。ショック!!
今回syslog-ngは2.10.1のglibが必要ので、glibから自分インストールするしかないです。
glibのインストールコマンド
cd /usr/local/src/
wget http://ftp.gnome.org/pub/gnome/sources/glib/2.22/glib-2.22.5.tar.gz
tar zxvf glib-2.22.5.tar.gz
cd glib-2.22.5
./configure && make && make install
インストールは簡単ですけど、単純にインストールしても、syslog-ngインストール時、
この新しいインストールしたglibは見つからないため、また失敗しました。
このとき、エラーメッセージ中のpkg-config in pathという文字列が目に入りました。
多分pkg-configに新しいglibのpathを設定すれば、問題解決するかもしれないので、ネットで
pkg-configの使い方を調査しました。
pkg-configはプログラムをコンパイル時、必要のlibの存在パスを表示するという役があります。
たとえば、下記のコマンドを実行した結果を見てみます。
pkg-config --libs libpng12
-lpng12
結果の-lpng12はgccコンパイル時使うパラメートと思います。
今回使うのglib-2.0を探してみましょう
pkg-config --libs glib-2.0
--libs glib-2.0: unknown option
エラー出しました。
実今回のglibのインストール後、/usr/local/libのしたにpkgconfigというフォルダーが出てきました。
このフォルダー中にglibのpkgconfig情報全部入ってますので、pkg-configコマンドを/usr/local/lib/pkgconfigの内容を読み込めば、問題解決すると思います。
対応方法は実に二つがあります
pkg-configコマンドはPKG_CONFIG_PATH環境変数中のConfigファイルを読み込みますので、
以下のようなコマンドを実行すれば、glibが見つかれます
env PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/ pkg-config --libs glib-2.0
-L/usr/local/lib -lglib-2.0
もうしくは/usr/lib/pkgconfigというフォルダーがあって、pkg-configのデフォルトConfigフォルダーです。ここにglibのpkgconfigをコビーすれば、環境変数設定しなくても、glibが見つかります。
cp -a /usr/local/lib/pkgconfig/* /usr/lib/pkgconfig/
pkg-config --libs glib-2.0
-L/usr/local/lib -lglib-2.0
以上
登録:
投稿 (Atom)