CSV形式のファイルをDBに突っ込む
データベースの生成
create database LDclip;
テーブルの生成
create table clips ( user_id int not null, url varchar(255) not null, timestamp timestamp not null default CURRENT_TIMESTAMP, tags text, );
CSVファイルの読み込み
セキュリティ上の理由から、サーバに存在するテキストファイルを読み取るときには、そのファイルがデータベースディレクトリに存在するか、または全ユーザがそのファイルを読み取り可能でなければなりません。
MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.8 LOAD DATA INFILE 構文より引用
ということなので,CSVファイルをデータベースディレクトリに移動
$ sudo mv CSVファイル名 /var/lib/mysql/LDclip/
読み込み
load data infile 'CSVファイル名' ignore into table clips character set utf8 fields terminated by ',' enclosed by '"' (user_id, url, @var1, tags) set timestamp = str_to_date(@var1, "%Y-%m-%d %T")
というわけで
自力でCSVをパースしようと試みたり,OpenCSVライブラリの存在を知って使ってみたり,250万レコードのブックマークデータをファイルから読み込んで使おうとしてメモリが足らなくなったりしたわけだが,DBを使えばいーじゃんってことになったわけです.