wikipediaのデータをMySQLへ投入しました。
全体の流れの手順については以下の2サイトを参考にさせて頂きました。
http://www.zubapita.jp/2009/03/02/build_wikipedia_db/
http://chamu.org/blog/?p=412
エラー回避にはこちらのサイトを参考にさせて頂きました。
http://d.hatena.ne.jp/mktkmr/20091005/1254752838
前提条件として、MySQLインストール済み(my.cnf設定も済み)とします。
xml2sqlというソフトをインストールするところからです。
xml2sqlをインストールすると同時にexpat-1.95.8というソフトも使用するので
設定しておきます。
ここのサイトからダウンロードして解凍します。
次にディレクトリ中のxml2xsqlの下記の部分を追加します。
[code]
[root@localhost ~]# cd xml2sql-0.5
[root@localhost xml2sql-0.5]# vi xml2sql.c
[/code]
以下の2行を追加します。
putcolumn(&rev_tbl, "NULL", 0);
putcolumn(&rev_tbl, "NULL", 0);
configure後、makeします。
[code]
[root@localhost xml2sql-0.5]# ./configure
[root@localhost xml2sql-0.5]# make
[root@localhost xml2sql-0.5]# make
make all-recursive
make[1]: ディレクトリ `/root/xml2sql-0.5' に入ります
make[2]: ディレクトリ `/root/xml2sql-0.5' に入ります
make[2]: ディレクトリ `/root/xml2sql-0.5' から出ます
make[1]: ディレクトリ `/root/xml2sql-0.5' から出ます
[/code]
と表示されればOK!!
念の為、こちらも./configureしておきます。
[code]
[root@localhost expat-1.95.8]# ./configure --with-expat=/usr/local/lib
[/code]
これでxmlをsqlへ変換できる準備が整いました。
では気を取り直してxml2sqlを実行してみます。
wikiのxmlファイルのあるディレクトリ(apache-solr-3.3.0)に移動して。
[code]
[root@localhost ~]# cd apache-solr-3.3.0
[/code]
xml2sqlコマンドを打ちます。
[code]
[root@localhost apache-solr-3.3.0]# xml2sql jawiki-latest-pages-articles.xml
unexpected element <redirect>
xml2sql: parsing aborted at line 667 pos 16.
[/code]
するとredirectなんちゃらとメッセージが出てくるので、圧縮ファイルから実行してみます。
[code]
[root@localhost apache-solr-3.3.0]# bunzip2 -c jawiki-latest-pages-articles.xml.bz2 | sed -e 's/<redirect \/>//' | xml2sql -v
bunzip2: Can't open input file jawiki-latest-pages-articles.xml.bz2: No such file or directory.
xml2sql: no element found at line 1 pos 0.
セグメンテーション違反です
[/code]
とでてくるので、正規表現を使用して変換コマンドを打ちます。
[code]
[root@localhost apache-solr-3.3.0]# cat jawiki-latest-pages-articles.xml | sed -e 's/<redirect \/>//' | xml2sql
[/code]
待つこと40分くらいでしょうか。
[root@localhost apache-solr-3.3.0]#
無事に終了したことを確認します。
次にMySQLへ投入します。
[code]
[root@localhost apache-solr-3.3.0]# mysqlimport ?fields-terminated-by='\t' ?default-character-set=utf8 -u root -d -L mwiki text.txt
mysqlimport: Error: Incorrect database name '?fields-terminated-by=\t'
[/code]
と出ました。MySQLの設定を予めutf-8だと(statusコマンドで)確認済みだったので、
以下のコマンドだけで実行してみました。するとこちらも40分くらいかかってインポート出来たような結果が返ってきました。
[code]
[root@localhost apache-solr-3.3.0]# mysqlimport -u root -d -L mwiki text.txt
mwiki.text: Records: 1519004 Deleted: 0 Skipped: 0 Warnings: 0
[root@localhost apache-solr-3.3.0]# mysqlimport -u root -d -L mwiki revision.txt
mwiki.revision: Records: 1519004 Deleted: 0 Skipped: 0 Warnings: 2623
[root@localhost apache-solr-3.3.0]# mysqlimport -u root -d -L mwiki page.txt
mwiki.page: Records: 1519004 Deleted: 0 Skipped: 0 Warnings: 0
[/code]
ということでテーブルへの投入完了です。
MySQLのコマンドで確認します。
[code]
mysql -u root -p
use mwiki
select count(*) from page;
select * from page where page_id ='100' order by page_id;
select count(*) from text where old_flags like'test*' order by old_flags;
[/code]