Wikipedia dumpをGeekWindのMySQLに投入

Wikipediaのdumpページが復活していたので、やっとGeekWindのMySQLに投入することができる。

ということで、何はさておき、dumpデータのダウンロードである。

# wget http://download.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2

2010-12-16 19:26:32 (2.72 MB/s) - `jawiki-latest-pages-articles.xml.bz2' へ保存 完了 [1276709513/126709513]
dumpデータをSQL文に変換するため、xml2sqlのコマンドを入手する。
# wget http://ftp.tietew.jp/pub/wikipedia/xml2sql-0.5.tar.gz

2010-12-16 19:30:59 (1.19 MB/s) - `xml2sql-0.5.tar.gz' へ保存完了 [131149/131149]

# gzip -dc xml2sql-0.5.tar.gz | tar xvf -
# ./configure
・・・・
configure: error: expat 1.95.8 or later is required.
configureでエラーがでたので必要と思われるコマンドをインストールする。
# yum install expat
・・・・・・・
Nothing to do  ←インストール済だった、そりゃそうだ、バージョンが古いって言われてるし
# yum search expat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.nara.wide.ad.jp
* atomic: www2.atomicorp.com
* base: ftp.nara.wide.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
================================ Matched: expat ================================
PyXML.x86_64 : XML libraries for python.
expat.i386 : A library for parsing XML.
expat.x86_64 : A library for parsing XML.
expat-devel.i386 : Libraries and include files to develop XML applications with
: expat.
expat-devel.x86_64 : Libraries and include files to develop XML applications
: with expat.
lua-expat.x86_64 : SAX XML parser based on the Expat library
mingw32-expat.noarch : MinGW Windows port of expat XML parser library
perl-XML-Parser.x86_64 : A low level Perl module for parsing XML either via
: trees or streaming
php-pear-XML-Beautifier.noarch : Class to format XML documents
php-pear-XML-Parser.noarch : XML parsing class based on PHP's bundled expat
tcldom-expat.x86_64 : The Tcl dom parser built with the expat xml parser
tclxml.x86_64 : TclXML is a package that provides XML parsing for the Tcl
: scripting language
tclxml-devel.i386 : Development files for the tclxml packages
tclxml-devel.x86_64 : Development files for the tclxml packages
tclxml-expat.x86_64 : The Tcl xml parser built with the expat xml parser

# yum install expat-devel
Installed:

expat-devel.i386 0:1.95.8-8.3.el5_5.3 expat-devel.x86_64 0:1.95.8-8.3.el5_5.3

Complete!

mediawiki-1.16.0.tar.gz がリリースされているけれども、あえて旧バージョンを利用する。
mediawikiの中にWikipediaのテーブル群を作成するSQL文があるので、それを入手する必要がある。

ついでにPerlモジュールのXML::Parserもインストールしておく。

# wget http://download.wikimedia.org/mediawiki/1.15/mediawiki-1.15.5.tar.gz
# gzip -dc mediawiki-1.15.5.tar.gz | tar xvf -

# yum install perl-XML-Parser

Installed:
perl-XML-Parser.x86_64 0:2.34-6.1.2.2.1

Dependency Installed:
perl-Compress-Zlib.x86_64 0:1.42-1.fc6  perl-HTML-Parser.x86_64 0:3.55-1.fc6
perl-HTML-Tagset.noarch 0:3.10-2.1.1    perl-libwww-perl.noarch 0:5.805-1.1.1

Complete!
ここからMySQL側の設定である。

# mysql -u hogeuser -p
Enter password:
mysql> create database wiki;
Query OK, 1 row affected (0.00 sec)

mysql> \q

# mysql -u hogeuser wiki -p < maintenance/tables.sql
Enter password:
mysql> show tables;
+-------------------+
| Tables_in_wiki    |
+-------------------+
| archive           |
| category          |
| categorylinks     |
| change_tag        |
| externallinks     |
| filearchive       |
| hitcounter        |
| image             |
| imagelinks        |
| interwiki         |
| ipblocks          |
| job               |
| langlinks         |
| logging           |
| math              |
| objectcache       |
| oldimage          |
| page              |
| page_props        |
| page_restrictions |
| pagelinks         |
| protected_titles  |
| querycache        |
| querycache_info   |
| querycachetwo     |
| recentchanges     |
| redirect          |
| revision          |
| searchindex       |
| site_stats        |
| tag_summary       |
| templatelinks     |
| text              |
| trackbacks        |
| transcache        |
| updatelog         |
| user              |
| user_groups       |
| user_newtalk      |
| valid_tag         |
| watchlist         |
+-------------------+
41 rows in set (0.00 sec)
ということで、disk容量をみながら投入開始。
# ls -al jawiki-latest-pages-articles.xml.bz2
-rw-r--r-- 1 root root 1276709513 12月 16 19:26 jawiki-latest-pages-articles.xml.bz2
# df .
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda2             18222732   4076876  13205252  24% /
# bzip2 -d jawiki-latest-pages-articles.xml.bz2
# ls -al jawiki-latest-pages-articles.xml
-rw-r--r--  1 root root 5262056381 Dec 16 19:26 jawiki-latest-pages-articles.xml
# df .
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2             18222732   7972624   9309504  47% /
# cat jawiki-latest-pages-articles.xml | sed -e 's/<redirect \/>//' | xml2sql

-rw-r--r--  1 root root      123392617 12月 16 22:27 page.txt
-rw-r--r--  1 root root      149486402 12月 16 22:27 revision.txt
-rw-r--r--  1 root root     4693222350 12月 16 22:27 text.txt

# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda2             18222732  12827100   4455028  75% /

# mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u hogeuser -p -d -L wiki text.txt
Enter password:
wiki.text: Records: 1406910  Deleted: 0  Skipped: 0  Warnings: 0
# mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u hogeuser -p -d -L wiki revision.txt
Enter password:
wiki.revision: Records: 1406910  Deleted: 0  Skipped: 0  Warnings: 2816446
# mysqlimport --fields-terminated-by='\t' --default-character-set=utf8 -u hogeuser -p -d -L wiki page.txt
Enter password:
wiki.page: Records: 1406910  Deleted: 0  Skipped: 0  Warnings: 0
disk容量の投入直後と不要ファイル削除後の容量の差異はこんな感じ。
# 投入直後
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda2             18222732  13825992   3456136  81% /
# 不要ファイル削除後
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2             18222732   7801192   9480936  46% /
試しにselectしてみる。
mysql -u hogeuser wiki -p
mysql> select page_id, page_title from page where 1 limit 10,10;
+---------+--------------------+
| page_id | page_title         |
+---------+--------------------+
|      26 | SandBox            |
|      31 | パリ               |
|      32 | ヨーロッパ         |
|      42 | 生物               |
|      43 | コケ植物           |
|      46 | HomePage           |
|      47 | 社会学             |
|      48 | 古代エジプト       |
|      49 | エジプト           |
|      51 | About              |
+---------+--------------------+
10 rows in set (0.00 sec)
おお!データが入った!!

ということで、今回はここまで。



この記事へのトラックバック

One Comment to “Wikipedia dumpをGeekWindのMySQLに投入”

  1. […] Wikipedia dumpをGeekWindのMySQLに投入 2月 06 […]

Leave your Comment

メールアドレスが公開されることはありません。

*

★ロリポップ!★WordPressやMovableTypeの簡単インストール、cron、共有SSL対応!


Blue Taste Theme created by Jabox