embulkでOutputPlugin ‘bigquery’ is not found. が発生した
先日開発したembulk-input-prometheusを利用して、BigQueryに情報をロードしようとしたところ下記のエラーが発生した。
org.embulk.config.ConfigException: OutputPlugin 'bigquery' is not found.
org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: Unknown output plugin 'bigquery'. embulk/output/bigquery.rb is not installed. Run 'embulk gem search -rd embulk-output' command to find plugins.
at org.embulk.plugin.PluginManager.buildPluginNotFoundException(PluginManager.java:75)
at org.embulk.plugin.PluginManager.newPluginWithoutWrapper(PluginManager.java:61)
at org.embulk.plugin.PluginManager.newPlugin(PluginManager.java:28)
at org.embulk.spi.ExecSession.newPlugin(ExecSession.java:162)
at org.embulk.spi.Exec.newPlugin(Exec.java:67)
at org.embulk.exec.BulkLoader$ProcessPluginSet.<init>(BulkLoader.java:428)
該当箇所のjavaのソースコード読んでもcatchされててあまり深い情報がそのままでは取れなかったので、embulkのgem版を準備して実行したところ、
Gem::ConflictError: Unable to activate signet-0.11.0, because faraday-1.0.1 conflicts with faraday (~> 0.9)
raise_if_conflicts at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:2291
activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1411
block in activate_dependencies at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1445
each at org/jruby/RubyArray.java:1735
activate_dependencies at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1431
activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1413
try_activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems.rb:220
require at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:126
faradayのバージョンが signet
と embulk-input-prometheus
で利用している prometheus apiで衝突しているらしかったので、バージョン依存の記述を合わせて解決した。
これ、embulkでgemのconflictが起きたときにnot foundになるのちょい追えなくて不便だからどこかでおかわり案件かなぁ。