SSブログ

wikipedia ダンプ取り込み [CENTOS de LAMP]

VMのディスク容量を増やしてよっしゃということで、取り込みに挑戦してみます。
・環境
windowsのVMware 20GB
os CentOS 5.4

1.expat-2.0.1

 wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
 ./configure
 make
 make install

2.xml2sql

 wget http://meta.wikimedia.org/wiki/Xml2sql
 tar xvfz xml2sql-0.5.tar.gz
 cd xml2sql-0.5
 ./configure --with-expat=/usr/local/lib
 make
 cp xml2sql /usr/local/bin/.

3.mysql で格納先DBを作っておく
 ※既存DBを使うならば不要

4.MediaWiki

 wget http://download.wikimedia.org/mediawiki/1.15/mediawiki-1.15.2.tar.gz
 tar xvfz mediawiki-1.15.2.tar.gz
 cd mediawiki-1.15.2
 mysql DB名 < maintenance/tables.sql


5.データファイルのダウンロード

 wget http://download.wikimedia.org/jawiki/latest/jawiki-latest-pages-meta-current.xml.bz2
 bunzip jawiki-latest-pages-meta-current.xml.bz2
 cat jawiki-latest-pages-meta-current.xml | sed -e 's/<redirect \/>//' | xml2sql

 page.txt
 revision.txt
 text.txt の3点が出来ました。


6.mysqlimport で投下

 mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u ユーザ名 -p -d -L DB名 text.txt
 
 mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u user_hoge -p -d -L hoge_db text.txt
 mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u user_hoge -p -d -L hoge_db revision.txt
 mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u user_hoge -p -d -L hoge_db page.txt

こんな感じとなりました。
すげー時間かかるなぁ。

※※
 maintenance/tables.sql を書き換えると相当早くなるようでした。
 更新しないならばUNIQUE INDEXを削除と、テーブルをMyISAM指定にします。
 1:tables.sqlを開く
 2:UNIQUE INDEX で検索し、その行を全て削除
 3:"/*$wgDBTableOptions*/" を "ENGINE = MyISAM" に一括置換
 (おまけ:page, revision, text 以外どうせ使わんのなら、それ以外のCREATE TABLE文を削る)
これでトータル30分ぐらいになりました。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。