kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

embulk-input-bigqueryでエラー

embulk-input-bigquery を使用したときのエラーをメモです。
エラーメッセージが全然優しくなくて、プラグインのソース見て推測するしかないので辛いです。

実行環境

embulk v0.9.3
embulk-input-bigquery v0.0.9

locationの指定漏れ

embulk-input-bigqueryには、datasetのlocationを指定する location があるのですが、これを指定しないとエラーになります。
datasetのlocationをデフォルトにしておけば問題ないかもしれませんが、私は asia-northeast1 にしてました

org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `query_results' for nil:NilClass
  at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:340)
  at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:566)
  at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:35)
  at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:353)
  at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:350)
  at org.embulk.spi.Exec.doWith(Exec.java:22)
  at org.embulk.exec.BulkLoader.run(BulkLoader.java:350)
  at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:242)
  at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:291)
  at org.embulk.EmbulkRunner.run(EmbulkRunner.java:155)
  at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:431)
  at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:90)
  at org.embulk.cli.Main.main(Main.java:64)
Caused by: org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `query_results' for nil:NilClass
  at RUBY.run(/root/.embulk/lib/gems/gems/embulk-input-bigquery-0.0.9/lib/embulk/input/bigquery.rb:88)
  at RUBY.run(uri:classloader:/gems/embulk-0.9.23-java/lib/embulk/input_plugin.rb:107)

sqlのキー間違い

  2020-07-30 04:01:01.176 +0000 [INFO] (0001:transaction): Loaded plugin embulk-input-bigquery (0.0.9)
org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `encoding' for nil:NilClass
  at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:340)
  at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:566)
  at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:35)
  at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:353)
  at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:350)
  at org.embulk.spi.Exec.doWith(Exec.java:22)
  at org.embulk.exec.BulkLoader.run(BulkLoader.java:350)
  at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:242)
  at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:291)
  at org.embulk.EmbulkRunner.run(EmbulkRunner.java:155)
  at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:431)
  at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:90)
  at org.embulk.cli.Main.main(Main.java:64)
  Suppressed: java.lang.NullPointerException
    at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:463)
    at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:397)
    at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:394)
    at org.embulk.spi.Exec.doWith(Exec.java:22)
    at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:394)
    at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:245)
    ... 5 more
Caused by: org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `encoding' for nil:NilClass
  at RUBY.compile(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/erb.rb:599)
  at RUBY.initialize(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/erb.rb:801)
  at RUBY.transaction(/root/.embulk/lib/gems/gems/embulk-input-bigquery-0.0.9/lib/embulk/input/bigquery.rb:28)
  at RUBY.transaction(uri:classloader:/gems/embulk-0.9.23-java/lib/embulk/input_plugin.rb:58)

ymlで sql と指定すべきところを query としてました。
embulk-input-mysqlプラグインで使ってた別のファイルをコピーして持ってきたときに変え忘れていました。