Embulkをさわり始めてみた
最近リリースされた、オープンソースのバルクローダEmbulk。
業務システムでもテキストファイルをRDBにロードすることはよくあるので、使えるかもしれないと思い、さわりはじめた。
Quick Startを試した後、くまメモを参考にさせてもらい動かしてみる。成功。
とかなんとかやっているうちに、0.4.3が出たのでダウンロード。
しかし、再度試してみるとエラーが発生!?
C:\Development\Embulk>java -jar embulk.jar run random.yml 2015-02-18 21:37:24 JST: Embulk v0.4.3 Embulk::PluginLoadError: Unknown input plugin 'random'. embulk/input/random.rb is not installed. Run 'embulk gem search -rd embulk-input' command to find plugin s. lookup at file:/C:/Development/Embulk/embulk.jar!/embulk/plugin_registry.rb:30 lookup at file:/C:/Development/Embulk/embulk.jar!/embulk/plugin.rb:188 new_java_input at file:/C:/Development/Embulk/embulk.jar!/embulk/plugin.rb:150 new_java_input at /C:/Development/Embulk/embulk.jar!/META-INF/jruby.home/lib/ruby/1.9/forwardable.rb:201 run at file:/C:/Development/Embulk/embulk.jar!/embulk/command/embulk_run.rb:278 (root) at classpath:embulk/command/embulk.rb:43 org/embulk/plugin/PluginManager.java:42:in `newPlugin': org.embulk.config.ConfigException: InputPlugin 'random' is not found from org/embulk/spi/ExecSession.java:106:in `newPlugin' from org/embulk/spi/Exec.java:54:in `newPlugin' from org/embulk/exec/LocalExecutor.java:339:in `newInputPlugin' from org/embulk/exec/LocalExecutor.java:419:in `doRun' from org/embulk/exec/LocalExecutor.java:40:in `access$000' from org/embulk/exec/LocalExecutor.java:358:in `run' from org/embulk/exec/LocalExecutor.java:355:in `run' from org/embulk/spi/Exec.java:21:in `doWith' from org/embulk/exec/LocalExecutor.java:355:in `run' from org/embulk/command/Runner.java:111:in `run' from org/embulk/command/Runner.java:64:in `main' from file:/C:/Development/Embulk/embulk.jar!/embulk/command/embulk_run.rb:278:in `run' from classpath:embulk/command/embulk.rb:43:in `(root)' from classpath_3a_embulk/command/classpath:embulk/command/embulk.rb:43:in `(root)' from org/embulk/cli/Main.java:13:in `main' Caused by: file:/C:/Development/Embulk/embulk.jar!/embulk/plugin_registry.rb:30:in `lookup': org.jruby.exceptions.RaiseException: (PluginLoadError) Unknown input plugin 'r andom'. embulk/input/random.rb is not installed. Run 'embulk gem search -rd embulk-input' command to find plugins. from file:/C:/Development/Embulk/embulk.jar!/embulk/plugin.rb:188:in `lookup' from file:/C:/Development/Embulk/embulk.jar!/embulk/plugin.rb:150:in `new_java_input' from /C:/Development/Embulk/embulk.jar!/META-INF/jruby.home/lib/ruby/1.9/forwardable.rb:201:in `new_java_input' from file:/C:/Development/Embulk/embulk.jar!/embulk/command/embulk_run.rb:278:in `run' from classpath:embulk/command/embulk.rb:43:in `(root)'
成功したときは0.3.2だったけど、何か変わったのかな?
スタックトレースを見ると、気になるのは
embulk/input/random.rb is not installed
のところ。ホームディレクトリ(C:\Users\ユーザ名\)を見ると、
.embulk\jruby\1.9\gems\embulk-plugin-input-random-0.0.1\lib\embulk\input_random.rb
というファイルがある。微妙にファイル名が違うなあ。上のファイルを
.embulk\jruby\1.9\gems\embulk-plugin-input-random-0.0.1\lib\embulk\input\random.rb
に移動したら、正常に動いた。
バージョンアップしてプラグインの検索方法が変わったのかな?
と思って、Release Documentを探していたら、0.4.0のところに以下の記述が。
IMPORTANT: Changed plugin path name from lib/embulk/<caetgory>_<name>.rb to lib/embulk/<category>/<name>.rb.
なるほど。仕様が変わっていたのか。
とりあえず今回はここまでで。次回はembulk-output-mysqlを試せるといいなあ。
OS : Windows 7
Embulk : 0.3.2, 0.4.3