はじめに
ご無沙汰しております。
2025年もいろいろありましたが、平穏無事とはいかないまでも、なんとか生きています。
しかし、「歳を取ると時間の流れが早く感じるようになる」という主旨のことはよく言われますが、本当にその通りだなと最近つくづく感じています。
さて、前置きはこのくらいにして、今回は
Talend→Snowflakeのキーペア認証方式での接続をしようとしたところ、とあるパターンで詰んで、なんとか解消した話
をしようと思います。
Talend→Snowflakeのキーペア認証方式での接続
弊社の優秀な若手社員が投稿した、以下の記事が参考になります。
上記の記事に記載された方法で実行すれば、特に問題なく接続できるかと思います。
普通なら。
今回詰んだ箇所
- iniファイル
- 実行タブの「詳細実行」
のどちらでもいいのですが、tSnowflakeConnectionの実行前に
-Dnet.snowflake.jdbc.enableBouncyCastle=true
を追加する必要があります。
これを追加せずに実行すると、
java.lang.RuntimeException: net.snowflake.client.jdbc.SnowflakeSQLLoggedException: Private key provided is invalid or not supported: PBES2 SecretKeyFactory not available at ...
というエラーが出て接続に失敗します。
基本的には上記のどちらかにJVMオプションを指定することで回避できるのですが、
TalendでJavaデバッグを実行する際は、上記が機能しない
という事象にぶち当たりました。
回避策
回避策は簡単で、
tSnowflakeConnectionの前にtJavaを入れて
System.setProperty("net.snowflake.jdbc.enableBouncyCastle", "true");
とするだけです。
おわりに
というわけで、ちょっと詰んだけど解決しました、という備忘録的な記事でした。
すごく軽いですが、今回はこの辺でお暇させていただきます。