groonga(単体サーバ)で大量データロード
groonga(単体サーバ)で大量のデータをロードする場合はファイルにloadコマンド+データを書いて、標準入力にリダイレクトしましょう。
データはJSON形式なのでこんな感じで適当に作れます。
use strict; use warnings; use utf8; use JSON qw(encode_json); my @load_data; my $table_name = "Foo"; #do something my $json_data = encode_json(\@load_data); print <<"__EOS__"; load --table $table_name $json_data __EOS__
あとは、以下の様にすればデータをロードできます。
スタンドアローンモード
groonga /path/to/db < /path/to/data
クライアントモード
groonga -c hostname < /path/to/data
追記
これを応用すれば、CSVなどからデータをインポートするツールを作るとかもできますね。
さらに追記
一旦ファイルに出さずとも、パイプで groonga コマンドの標準入力に渡すことでもいけますね。