質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.03%

バルクインサート処理時にp12key file エラー発生

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 490

raccoondog

score 17

oracleDBからBiqgueryへデータをバルクインサートしたいのですが
embulkを実行しますと、以下のエラーが出力されます

p12keyfileは、別途作成する必要があるのでしょうか。
p12keyfileがなんの役割をはたすものか調査中の状況です。

環境:Windows 7 / Embulk 0.98 / OracleDB12c

C:\Users\yazaki\Desktop\embulk>embulk-0.9.8.bat run config_bq.yml
2018-11-06 13:45:36.780 +0900: Embulk v0.9.8
2018-11-06 13:45:37.841 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected.
2018-11-06 13:45:41.694 +0900 [INFO] (main): Gem's home and path are set by default: "C:\Users\yazaki\.embulk\lib\gems"
2018-11-06 13:45:43.113 +0900 [INFO] (main): Started Embulk v0.9.8
2018-11-06 13:45:43.238 +0900 [INFO] (0001:transaction): Loaded plugin embulk-input-oracle (0.9.3)
2018-11-06 13:45:49.135 +0900 [INFO] (0001:transaction): Loaded plugin embulk-output-bigquery (0.4.9)
2018-11-06 13:45:49.182 +0900 [INFO] (0001:transaction): Connecting to jdbc:oracle:thin:@A0430-02396:1521:ORCL options {oracle.jdbc.ReadTimeout=1800000, user=system, password=***, oracle.net.CONNECT_TIMEOUT=300000}
2018-11-06 13:45:49.743 +0900 [INFO] (0001:transaction): Using JDBC Driver 12.1.0.2.0
2018-11-06 13:45:49.884 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / output tasks 4 = input tasks 1 * 4
org.embulk.exec.PartialExecutionException: org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: `p12_keyfile` is required for auth_method private_key
        at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:339)
        at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:565)
        at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:34)
        at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:352)
        at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:349)
        at org.embulk.spi.Exec.doWith(Exec.java:22)
        at org.embulk.exec.BulkLoader.run(BulkLoader.java:349)
        at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:161)
        at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:292)
        at org.embulk.EmbulkRunner.run(EmbulkRunner.java:156)
        at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:436)
        at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:91)
        at org.embulk.cli.Main.main(Main.java:26)
        Suppressed: java.lang.NullPointerException
                at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:462)
                at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:396)
                at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:393)
                at org.embulk.spi.Exec.doWith(Exec.java:22)
                at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:393)
                at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:164)
                ... 5 more
Caused by: org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: `p12_keyfile` is required for auth_method private_key
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.jruby.javasupport.proxy.JavaProxyConstructor.newInstanceImpl(JavaProxyConstructor.java:119)
        at org.jruby.javasupport.proxy.JavaProxyConstructor.newInstance(JavaProxyConstructor.java:205)
        at org.jruby.javasupport.Java$JCreateMethod.call(Java.java:618)
        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:200)
        at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:739)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:278)
        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:79)
        at org.jruby.java.proxies.ConcreteJavaProxy$InitializeMethod.call(ConcreteJavaProxy.java:48)
        at org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuper(IRRuntimeHelpers.java:984)
        at org.jruby.ir.instructions.InstanceSuperInstr.interpret(InstanceSuperInstr.java:69)
        at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:360)
        at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:74)
        at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:84)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:328)
        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:165)
        at org.jruby.RubyClass.newInstance(RubyClass.java:1001)
        at org.jruby.RubyClass$INVOKER$i$newInstance.call(RubyClass$INVOKER$i$newInstance.gen)
        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:200)
        at org.jruby.java.proxies.ConcreteJavaProxy$NewMethod.call(ConcreteJavaProxy.java:158)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:318)
        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:155)
        at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:315)
        at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:74)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:278)
        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:79)
        at org.jruby.ir.instructions.CallBase.interpret(CallBase.java:432)
        at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:360)
        at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:74)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:278)
        at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:79)
        at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:84)
        at org.jruby.ir.instructions.CallBase.interpret(CallBase.java:429)
        at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:360)
        at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:74)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
        at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
        at Embulk$$OutputPlugin$$JavaAdapter_161232248.transaction(Embulk$$OutputPlugin$$JavaAdapter_161232248.gen:13)
        at org.embulk.exec.BulkLoader$4$1$1.transaction(BulkLoader.java:520)
        at org.embulk.exec.LocalExecutorPlugin.transaction(LocalExecutorPlugin.java:49)
        at org.embulk.exec.BulkLoader$4$1.run(BulkLoader.java:515)
        at org.embulk.spi.util.Filters$RecursiveControl.transaction(Filters.java:84)
        at org.embulk.spi.util.Filters.transaction(Filters.java:42)
        at org.embulk.exec.BulkLoader$4.run(BulkLoader.java:510)
        at org.embulk.input.jdbc.AbstractJdbcInputPlugin.transaction(AbstractJdbcInputPlugin.java:206)
        at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:506)
        ... 11 more

Error: org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: `p12_keyfile` is required for auth_method private_key

C:\Users\yazaki\Desktop\embulk>

ymlファイルの定義です。

C:\Users\yazaki\Desktop\embulk>type seed_bq.yml
in:
  type: oracle
  driver_path: C:\Users\yazaki\Desktop\embulkDB\product\12.2.0\dbhome_1\sqldeveloper\jdbc\lib\ojdbc7.jar
  host: A0430-02396
  user: xxxx
  password: xxxx
  database: ORCL
  table: INPUT_TEST
out:
  type: bigquery
  project: fluid-emissary-216806
  dataset: embulk_test
  auto_create_table: true
  table: users
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

outにauth_methodが省略されているので、defaultのprivate_keyになって、設定を要求されています。

auth_method: json_key


を追加してみて下さい。

多分、他にも色々指定が必要な気がします。

READMEなどを確認して下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/06 16:01

    ご回答ありがとうございます。

    パラメータを見直しまして

    in:
    type: oracle
    driver_path: C:\Users\yazaki\Desktop\embulkDB\product\12.2.0\dbhome_1\sqldeveloper\jdbc\lib\ojdbc7.jar
    host: xxxx
    user: xxxx
    password: xxxx
    database: ORCL
    table: INPUT_TEST
    out:
    type: bigquery
    auth_method: json_key
    json_keyfile: C:\Users\yazaki\Desktop\embulk\xxxxxxxxx.json
    project: fluid-emissary-xxxx
    dataset: embulk_test
    auto_create_table: true
    table: users

    として

    GCP上で作成したjsonファイルを追加しました。

    再実行しますと別のエラーが出力され調査中の状況です。

    キャンセル

  • 2018/11/06 16:02

    再実行時のエラー

    C:\Users\yazaki\Desktop\embulk>embulk-0.9.8.bat run config_bq.yml
    2018-11-06 15:48:44.455 +0900: Embulk v0.9.8
    2018-11-06 15:48:45.547 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected.
    2018-11-06 15:48:49.396 +0900 [INFO] (main): Gem's home and path are set by default: "C:\Users\yazaki\.embulk\lib\gems"
    2018-11-06 15:48:51.228 +0900 [INFO] (main): Started Embulk v0.9.8
    2018-11-06 15:48:51.355 +0900 [INFO] (0001:transaction): Loaded plugin embulk-input-oracle (0.9.3)
    2018-11-06 15:48:57.189 +0900 [INFO] (0001:transaction): Loaded plugin embulk-output-bigquery (0.4.9)
    2018-11-06 15:48:57.258 +0900 [INFO] (0001:transaction): Connecting to jdbc:oracle:thin:@A0430-02396:1521:ORCL options {oracle.jdbc.ReadTimeout=1800000, user=system, password=***, oracle.net.CONNECT_TIMEOUT=300000}
    2018-11-06 15:48:57.891 +0900 [INFO] (0001:transaction): Using JDBC Driver 12.1.0.2.0
    2018-11-06 15:48:58.021 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / output tasks 4 = input tasks 1 * 4
    2018-11-06 15:48:58.137 +0900 [INFO] (0001:transaction): embulk-output-bigquery: Get dataset... fluid-emissary-216806:embulk_test
    org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (SSLError) 既存の接続はリモート ホストに強制的に切断されました。
    at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:339)
    at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:565)
    at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:34)
    at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:352)
    at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:349)
    at org.embulk.spi.Exec.doWith(Exec.java:22)
    at org.embulk.exec.BulkLoader.run(BulkLoader.java:349)
    at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:161)
    at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:292)
    at org.embulk.EmbulkRunner.run(EmbulkRunner.java:156)
    at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:436)
    at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:91)
    at org.embulk.cli.Main.main(Main.java:26)
    Suppressed: java.lang.NullPointerException
    at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:462)
    at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:396)
    at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:393)
    at org.embulk.spi.Exec.doWith(Exec.java:22)
    at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:393)
    at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:164)
    ... 5 more
    Caused by: org.jruby.exceptions.RaiseException: (SSLError) 既存の接続はリモート ホストに強制的に切断されました。
    at RUBY.block in call(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/adapter/net_http.rb:46)
    at RUBY.with_net_http_connection(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/adapter/net_http.rb:92)
    at RUBY.call(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/adapter/net_http.rb:38)
    at RUBY.call(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/request/url_encoded.rb:15)
    at RUBY.build_response(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/rack_builder.rb:143)
    at RUBY.run_request(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/connection.rb:387)
    at RUBY.post(C:/Users/yazaki/.embulk/lib/gems/gems/faraday-0.15.3/lib/faraday/connection.rb:175)
    at RUBY.fetch_access_token(C:/Users/yazaki/.embulk/lib/gems/gems/signet-0.11.0/lib/signet/oauth_2/client.rb:996)
    at RUBY.fetch_access_token!(C:/Users/yazaki/.embulk/lib/gems/gems/signet-0.11.0/lib/signet/oauth_2/client.rb:1036)
    at RUBY.fetch_access_token!(C:/Users/yazaki/.embulk/lib/gems/gems/googleauth-0.6.7/lib/googleauth/signet.rb:69)
    at RUBY.apply!(C:/Users/yazaki/.embulk/lib/gems/gems/googleauth-0.6.7/lib/googleauth/signet.rb:45)
    at RUBY.apply!(C:/Users/yazaki/.embulk/lib/gems/gems/googleauth-0.6.7/lib/googleauth/service_account.rb:95)
    at RUBY.apply_request_options(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/http_command.rb:313)
    at RUBY.execute_once(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/http_command.rb:289)
    at RUBY.block in execute(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/http_command.rb:104)
    at RUBY.block in retriable(C:/Users/yazaki/.embulk/lib/gems/gems/retriable-3.1.2/lib/retriable.rb:61)
    at org.jruby.RubyFixnum.times(org/jruby/RubyFixnum.java:305)
    at RUBY.retriable(C:/Users/yazaki/.embulk/lib/gems/gems/retriable-3.1.2/lib/retriable.rb:56)
    at RUBY.block in execute(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/http_command.rb:101)
    at RUBY.block in retriable(C:/Users/yazaki/.embulk/lib/gems/gems/retriable-3.1.2/lib/retriable.rb:61)
    at org.jruby.RubyFixnum.times(org/jruby/RubyFixnum.java:305)
    at RUBY.retriable(C:/Users/yazaki/.embulk/lib/gems/gems/retriable-3.1.2/lib/retriable.rb:56)
    at RUBY.execute(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/http_command.rb:93)
    at RUBY.execute_or_queue_command(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/lib/google/apis/core/base_service.rb:360)
    at RUBY.get_dataset(C:/Users/yazaki/.embulk/lib/gems/gems/google-api-client-0.24.3/generated/google/apis/bigquery_v2/service.rb:128)
    at RUBY.block in get_dataset(C:/Users/yazaki/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:394)
    at RUBY.with_network_retry(C:/Users/yazaki/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/google_client.rb:82)
    at RUBY.get_dataset(C:/Users/yazaki/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:394)
    at RUBY.auto_create(C:/Users/yazaki/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery.rb:289)
    at RUBY.transaction(C:/Users/yazaki/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery.rb:344)
    at RUBY.transaction(uri:classloader:/gems/embulk-0.9.8-java/lib/embulk/output_plugin.rb:64)

    Error: org.jruby.exceptions.RaiseException: (SSLError) 既存の接続はリモート ホストに強制的に切断されました。

    キャンセル

check解決した方法

-1

ネットワークの状態が不安定で接続断が発生しておりました。
現在は、正常にBigQueryへデータのバルクインサートが成功しております。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/06 17:47 編集

    ymlは、auth_methodの追加は不要で、質問の内容に対して変更は無かったということですか?

    キャンセル

  • 2018/11/06 18:00

    ymlファイルへ、auth_methodは追加しました。
    その後の再実行時のエラーは出力されなくなりました。

    キャンセル

  • 2018/11/06 18:02

    質問に対してのクローズのさせ方が変です。
    この自己解決は質問のエラーに対する解決方法ではありませんね。
    その後のエラーに対するものです。
    ※後学者の為、コメントしておきます。

    キャンセル

  • 2018/11/06 18:08

    ご指摘ありがとうございます。
    以後、注意致します。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる