JDBC ドライバーのダウンロード/統合¶
JDBC ドライバー(snowflake-jdbc
)は JAR ファイルとして提供され、Mavenのアーティファクトとしてダウンロードしたり、Javaベースのプロジェクトに直接統合したりできます。
ドライバーをダウンロードまたは統合する前に、現在使用しているドライバーのバージョンを最初に確認することをお勧めします。ドライバーのバージョンを確認するには、ドライバーを使用するクライアントアプリケーションを介してSnowflakeに接続し、ドライバーのバージョンを確認します。アプリケーションが SQL クエリの実行をサポートしている場合、 CURRENT_CLIENT 関数を呼び出してこれを確認できます。
このトピックの内容:
要件¶
Snowflakeクライアントでサポートされているオペレーティングシステムのリストについては、 オペレーティングシステムのサポート をご参照ください。
ドライバーのダウンロード¶
ドライバーをダウンロードするには:
Maven Central Repositoryにアクセスします。
必要なバージョンのディレクトリをクリックします。
最新バージョン(3.15.0)が常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。たとえば、3.10.xは3.9.xではなく、3.1.xの後になります。
snowflake-jdbc-#.#.#.jar
ファイルをダウンロードします。注釈
必要に応じて、次のコマンドを入力して、 JDBC ドライバーのバージョンを確認できます。
java -jar snowflake-jdbc-#.#.#.jar --version
。ここで、#.#.#
は、ダウンロードしたファイル名のバージョン番号と一致します。ドライバーパッケージの署名を確認する 場合は、
snowflake-jdbc-#.#.#.jar.asc
ファイルをダウンロードします。
ドライバーパッケージの署名の確認 --- オプション¶
JDBC ドライバーパッケージの署名を確認するには、
公開キーサーバーから、使用している JDBC ドライバーのバージョンのSnowflake GPG 公開キーをダウンロードしてインポートします。
バージョン3.13.23以上の場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 630D9F3CAB551AF3
バージョン3.12.13から3.13.22までの場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 37C7086698CB005C
バージョン3.6.26から3.12.12までの場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EC218558EABB25A1
バージョン3.6.25以下の場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 93DB296A69BE019A
注釈
このコマンドが次のエラーを発生して失敗した場合、
gpg: keyserver receive failed: Server indicated a failure
次に、キーサーバーにポート80を使用することを指定します。
gpg --keyserver hkp://keyserver.ubuntu.com:80 ...
gpg --verify
コマンドを実行して、パッケージの署名を確認します。--verify
コマンドラインフラグには、署名ファイルとして 以前にダウンロード した.asc
ファイルを指定し、署名済みデータを含むファイルとして JAR ファイルを指定します。例:
$ gpg --verify snowflake-jdbc-3.15.0.jar.asc snowflake-jdbc-3.15.0.jar gpg: Signature made Wed 22 Feb 2017 04:31:58 PM UTC using RSA key ID <gpg_key_id> gpg: Good signature from "Snowflake Computing <snowflake_gpg@snowflake.net>"
確認する JDBC ドライバーパッケージの正しいバージョン番号を指定します。この例では、バージョン 3.15.0 は説明のみを目的として使用されています。ドライバーの最新の利用可能なバージョンはそれ以上の場合があります。
注釈
署名を確認すると、次のような警告が生成されます。
gpg: Signature made Mon 24 Sep 2018 03:03:45 AM UTC using RSA key ID <gpg_key_id> gpg: Good signature from "Snowflake Computing <snowflake_gpg@snowflake.net>" unknown gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
警告を回避するために、Snowflake GPG 公開キーの暗黙的な信頼を付与できます。
ローカル環境には複数の GPG キーを含めることができます。ただし、セキュリティ上の理由から、Snowflakeは定期的に公開 GPG キーをローテーションします。ベストプラクティスとして、最新の署名済みパッケージで最新のキーが機能することを確認した後、既存の公開キーを削除することをお勧めします。
$ gpg --delete-key "Snowflake Computing"
Mavenプロジェクトへのドライバーの統合¶
ドライバーをMavenプロジェクトに統合するには、ドライバーを依存関係として pom.xml
ファイルに追加します。例:
<dependencies> ... <dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc</artifactId> <version>3.15.0</version> </dependency> ... </dependencies>
<バージョン>
タグは、統合するドライバーのバージョンを指定します。この例では、バージョン 3.15.0 は説明目的でのみ使用されています。ドライバーの最新の利用可能なバージョンはそれ以上の場合があります。
開発者ノートは、ソースコードとともに GitHub でホストされています。
クラスパスへの JNA クラスの追加¶
ブラウザーベースの SSO の接続キャッシュ と 多要素認証(MFA)のトークンキャッシュ には、ファイルシステムにデータを安全に保存するために Java Native Access(JNA)クラス を使用する必要があります。
JDBC ドライバーのバージョン3.12.18以降、 JNA クラスは JDBC ドライバー JAR ファイルにパッケージ化されなくなりました。JDBC ドライバー pom.xml
ファイルでは、これらのクラスへの依存関係はオプションとしてマークされています。
接続キャッシュまたはトークンキャッシュを使用する必要がある場合は、次のライブラリをクラスパスに追加する必要があります。
MacおよびLinuxの場合:
Windowsの場合:
JDBC ドライバー用の pom.xml
ファイルは、 JDBC ドライバーでテストされた JNA クラスのバージョンを指定します。(Maven Central Repository の JDBC ドライバーページ をご参照ください。)JNA クラスのこのバージョン(または同じメジャーバージョン)を使用することをお勧めします。
注釈
AArch64アーキテクチャを使用するシステム(例: Apple M1)の場合は、 JNA ライブラリのバージョン5.7.0以降を使用します。(v5.7.0より前の JNA バージョンは、AArch64で実行されるWindowsおよび macOS システムと非互換。)