Hiroyuki Sato
hiroy****@gmail*****
2015年 5月 22日 (金) 14:07:21 JST
須藤様 佐藤です。 ffi-yajlを使ったgroonga-command-parserを使った embulk-output-groongaを使ってみました。 簡単な試験ですが、正常に動作しました。 ありがとうございます。 embulk gem install libyajl2をするとインストールに失敗する問題は 次のembulkのリリースでFIXされます。 https://github.com/embulk/embulk/issues/184 新しいembulkとgroonga-command-parserが出る頃にgemをリリースしようとおもいます。 それまでに追加できる機能は追加しようとおもいます。 2015年5月22日 9:39 Hiroyuki Sato <hiroy****@gmail*****>: > 佐藤です。 > > Embulkの開発者古橋さんに、不具合を回避する方法を教えてもらいました。 > > https://github.com/embulk/embulk/issues/184 > > gemを使ってembulkを導入すれば良いようです。 > > Install JRuby > run gem install embulk > run gem instal lembulk-output-groonga > > > > ffi-yajlを使う、groonga-command-parserまではインストールできました。 > こちらで実装を進めていこうとおもいます。 > > 2015年5月22日 9:18 Hiroyuki Sato <hiroy****@gmail*****>: >> 須藤さん >> >> 佐藤です。 >> ご連絡をありがとうございます。 >> >> >> >> 2015年5月21日 22:54 Kouhei Sutou <kou****@clear*****>: >>> 須藤です。 >>> >>> In <CA+Tq-RqPPTwOZQgqq6tCp-TkhRfS6oybXwgAkokiVh=oQa03****@mail*****> >>> "[groonga-dev,03254] Embulk-output-groongaの紹介と質問" on Wed, 20 May 2015 22:31:15 +0900, >>> Hiroyuki Sato <hiroy****@gmail*****> wrote: >>> >>>> embulk-command-outputというのを作成中です。紹介と質問です。 >>>> https://github.com/hiroyuki-sato/embulk-output-groonga >>> >>> すごい! >>> いやぁ、あるといいかなぁと思っていたんですよねぇ。 >>> >>>> Embulkとは >>>> >>>> Embulk(エンバルク)はプラガブルなバルクローダです。 >>>> CSVファイルをMySQLやPostgreSQLなどに簡単にインポートできるツールです >>>> >>>> これの出力先としてGroongaに出力できたらいいねと思い作ったのがこちらのプラグインです >>>> >>>> Embulkについてはこちらを参照ください。 >>>> http://www.embulk.org/docs/ >>>> http://qiita.com/hiroysato/items/397f36c4838a0a93e352 >>>> >>>> embulk-output-groongaの利用例 >>>> >>>> まだ作りかけですが、簡単なデータの投入はできるようになっています。 >>>> (まだ文字列しかテストをしておりません) >>>> >>>> 例 >>>> https://gist.github.com/hiroyuki-sato/d62b42a8c48299b3f9d3 >>>> >>>> 次のようにコマンドを実行するとCSVファイルからデータを読み込んで >>>> Groongaの指定したテーブルにデータを投入します。 >>>> >>>> embulk run config.yml >>> >>> おぉ、動いていますねぇ。 >>> >>> https://github.com/hiroyuki-sato/embulk-output-groonga/blob/master/lib/embulk/output/groonga.rb#L84 >>> >>> はexist?のtypoかしら。 >>> >> >> ありがとうございます。typoです。 >> >> >>> >>>> 質問 >>>> groonga-clientなどのソースをみてぼちぼち書いておりますが >>>> 次のような情報があるとよいと思ったので質問をいたします。 >>>> >>>> (1) 利用例について >>>> groonga-clientのテーブルの作成や、カラムの作成などの例が載った >>>> ソースはどこかにありますでしょうか? >>>> 例えばgroonga-clientを使ったアプリケーションなど >>> >>> fluent-plugin-groongaというのがあって、それのoutputの方が参 >>> 考になると思います。 >> >> fluent-plugin-groonga参考にします。 >> >>> >>> https://github.com/groonga/fluent-plugin-groonga/blob/master/lib/fluent/plugin/out_groonga.rb >>> >>> NetworkClient周辺を見るといいと思います。 >>> >>> もし、テーブル・カラムの自動作成までサポートするならSchema・ >>> TableDefinition・TableCreater周辺をみるといいと思います。 >>> >>>> (2) コマンドそのまま実行 >>>> >>>> groonga-clientで、下記のような文字列を渡したら >>>> コマンドをそのまま実行することは可能でしょうか? >>>> >>>> table_create --name Site2 --flags TABLE_HASH_KEY --key_type ShortText >>>> column_create --table Site2 --name title --type ShortText >>> >>> はい、実行できます。 >>> bin/groonga-clientがあるんですが、そいつに流しこむと実行でき >>> ます。実装は >>> >>> https://github.com/ranguba/groonga-client/blob/master/lib/groonga/client/command-line/groonga-client.rb >>> >>> にあります。 >>> >>>> (3) エラーハンドリング >>>> >>>> 返ってくるエラー処理の例などどこかにありますでしょうか? >>> >>> fluent-plugin-groongaが参考になると思います。 >>> >>> 基本的にGroonga::Client::Errorでrescueすればいいです。 >>> >> >> ありがとうございます。 >> >>>> 課題 >>>> >>>> * groonga-command-parserのjruby対応(現在専用パッチを適用) >>>> * JSONのパースに、yaj-rubyの代わりにjson-streamを使ったがjson-streamは遅い。 >>>> * 代替案としてjavaクライアントを利用する(誰かが作成していれば) >>> >>> masterではffi-yajlを使うようにしたので試してみてください。 >>> ffi-yajlだとJRubyでも動くとのことです。 >> >> ありがとうございます。早速ためしたのですが、embulk側の制限で >> libyajl2がまだインストールできないです。 >> なにか解決策があるか考えてみます。 >> https://github.com/embulk/embulk/issues/184 >> >> jrjacksonを使ったら?というお話ですがやっぱり複数のパッケージをメンテナンスするのは >> 大変ですね。 >> >>> >>> groonga-command-parserの用途(JSON全体を一気にパースではなく、 >>> 大きなJSONをストリームとして少しずつパース)では、yajl-ruby >>> よりも高速になっているはずです。 >>> >>> 手元でるりまサーチ(*)のダンプデータをパースして速度を見なが >>> ら作っていたんですが、それだとyajl-ruby版で33秒、ffi-yajl版 >>> で5秒くらいでした。 >>> >>> (*) http://docs.ruby-lang.org/ja/search/ >>> >> >> >> すばらしい、ありがとうございます。 >> >>> >>> -- >>> 須藤功平 <kou****@clear*****> >>> 株式会社クリアコード <http://www.clear-code.com/> >>> >>> Groongaベースの全文検索システムを総合サポート: >>> http://groonga.org/ja/support/ >>> パッチ採用 - プログラミングが楽しい人向けの採用プロセス: >>> http://www.clear-code.com/recruitment/ >>> プログラミングが好きな学生のための勉強会: >>> http://www.seplus.jp/sezemi/ >>> >>> _______________________________________________ >>> groonga-dev mailing list >>> groon****@lists***** >>> http://lists.osdn.me/mailman/listinfo/groonga-dev >> >> >> >> -- >> Hiroyuki Sato > > > > -- > Hiroyuki Sato -- Hiroyuki Sato