WikipediaのデータをOracleにインポート
全文検索を試したいなーと思いつつ、テストデータの準備が大変なので、
Wikipedia日本語版のダウンロードデータを試すことにしました。
ダウンロードしたデータは後々、
Oracle TextやSolrのdataimport使うことを前提にOracleへ突っ込むことにします。
ダウンロードするデータ
http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
解凍すると6GB程のXMLファイルなんですが、xml2sqlというツールを使うと、
MySQLやPostgreSQL形式のデータインポート形式のファイルを作成することができます。
xml2sqlは最近のWikipediaダウンロードデータに対応してないので、
以下のページを参考に、PostgreSQL形式のインポートデータを作ります。
http://sm.2-d.jp/blog/2009/06/wikipediamysql-for-linux-2.html
http://wiki.onakasuita.org/pukiwiki/?xml2sql
cat jawiki-20120104-pages-articles.xml| sed -e 's/
作成したデータ(text.sql)はIDとTEXT部分で構成されたタブ区切りのデータなので、
あとは、SQL*Loaderで読み込ませることができます。
ロード先のテーブル定義はこんなかんじ
create table wikipedia ( id varchar(10),text clob);
制御ファイルはこんなかんじ
LOAD DATA
INFILE 'Z:\TEXT.sql'
APPEND
INTO TABLE wikipedia
FIELDS TERMINATED BY X'09'
TRAILING NULLCOLS
(
"ID",
"TEXT" CHAR(1000000)
)
あとは、WikipediaのデータはUT8なので、NLS_LANGをJapanese_Japan.AL32UTF8などにして、
sqlldr solr/solr skip=3 readsize=2000000 control=cont.ctl
SQL*Loaderを実行すれば、wikipediaのデータをOracleに突っ込めます。
1/16 追記
Loadする行数が多すぎてそのままだとSQL*Loader-510が発生するので、sqlldrにreadsize=200000
を追記