JDBC ドライバーのダウンロード/統合¶
JDBC ドライバー (snowflake-jdbc
) は JAR ファイルとして提供され、Maven のアーティファクトとしてダウンロードしたり、Java ベースのプロジェクトに直接統合したりできます。さらに、Mavenから以下のタイプのドライバーをダウンロードすることもできます。
snowflake-jdbc-fips
という名前のFIPS-compliant fat jar。snowflake-jdbc-thin
という名前のthin jar。
追加タイプのソースコードは同じですが、依存関係の構成は以下のように異なります。
FIPS-compliant fat jarは FIPS Bouncy Castle の依存関係を埋め込んでいませんので、ランタイム中にそれらをプロバイダーする必要があります。
そのため、pomファイルの宣言に従って他の依存関係をプロバイダーする必要があります。
JAR タイプはすべて同じバージョン番号でリリースされます。
ドライバーをダウンロードまたは統合する前に、現在使用しているドライバーのバージョンを確認してください。ドライバーのバージョンを確認するには、ドライバーを使用するクライアントアプリケーションを介してSnowflakeに接続し、ドライバーのバージョンを確認します。アプリケーションが SQL クエリの実行をサポートしている場合、 CURRENT_CLIENT 関数を呼び出してこれを確認できます。
このトピックの内容:
要件¶
Snowflakeクライアントでサポートされているオペレーティングシステムのリストについては、 オペレーティングシステムのサポート をご参照ください。
ご希望のタイプのドライバーのダウンロード¶
ドライバーをダウンロードするには、希望のドライバータイプの手順に従ってください。
標準ドライバーのダウンロード¶
標準ドライバーをダウンロードするには:
標準ドライバーの Maven Central Repository に移動します。
必要なバージョンのディレクトリを選択してください。
最新バージョン(3.22.0)が常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。たとえば、3.10.xは3.9.xではなく、3.1.xの後になります。
適切な:codenowrap:
snowflake-jdbc-#.#.#.jar
ファイルをダウンロードします。注釈
JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。
java -jar snowflake-jdbc-#.#.#.jar --version
。ここで、#.#.#
は、ダウンロードしたファイル名のバージョン番号と一致します。オプション: ドライバー・パッケージの署名 を検証するには、対応する:codenowrap:
snowflake-jdbc-#.#.#.jar.asc
ファイルをダウンロードします。
FIPS-準拠ドライバーのダウンロード¶
FIPS-準拠のドライバーをダウンロードするには:
Maven Central Repositoryにアクセスして、 FIPS-準拠ドライバーを探します。
必要なバージョンのディレクトリを選択してください。
最新バージョン(3.22.0)が常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。たとえば、3.10.xは3.9.xではなく、3.1.xの後になります。
適切な:codenowrap:
snowflake-jdbc-fips-#.#.#.jar
ファイルをダウンロードします。注釈
JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。
java -jar snowflake-jdbc-fips-#.#.#.jar --version
。ここで、#.#.#
は、ダウンロードしたファイル名のバージョン番号と一致します。オプションとして、 ドライバーパッケージの署名を確認し、対応する:codenowrap:
Snowflake-jdbc-fips-#.#.#.jar.asc
ファイルをダウンロードします。
thin-jarドライバーのダウンロード¶
thin-jarドライバーをダウンロードするには:
thin-jarドライバーのMaven Central Repositoryに移動します。
必要なバージョンのディレクトリを選択してください。
最新バージョン(3.22.0)が常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。たとえば、3.10.xは3.9.xではなく、3.1.xの後になります。
適切な:codenowrap:
snowflake-jdbc-thin-#.#.#.jar
ファイルをダウンロードします。注釈
JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。
java -jar snowflake-jdbc-thin-#.#.#.jar --version
。ここで、#.#.#
は、ダウンロードしたファイル名のバージョン番号と一致します。オプションとして、 ドライバーパッケージの署名を確認し、対応する:codenowrap:
snowflake-jdbc-thin-#.#.#.jar.asc
ファイルをダウンロードします。
オプション:ドライバーパッケージの署名の確認¶
JDBC ドライバーパッケージの署名を確認するには、
公開キーサーバーから、使用している JDBC ドライバーのバージョンのSnowflake GPG 公開キーをダウンロードしてインポートします。
バージョン3.22.0以上の場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 2A3149C82551A34A
バージョン3.19.1から3.21.0までの場合:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 5A125630709DD64B
バージョン3.13.23から3.19.0までの場合:
$ 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.22.0.jar.asc snowflake-jdbc-3.22.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.22.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.22.0</version> </dependency> ... </dependencies>
FIPS-準拠ドライバー
<dependencies> ... <dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc-fips</artifactId> <version>3.22.0</version> </dependency> ... </dependencies>
Thin-jarドライバー
<dependencies> ... <dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc-thin</artifactId> <version>3.22.0</version> </dependency> ... </dependencies>
<version>
タグは、統合したいドライバーのバージョンを指定します。バージョン 3.22.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 クラスのバージョンを指定します。Snowflakeでは、 JNA クラスのこのバージョン(または同じメジャーバージョン)を使用することをお勧めします。
詳細については、 JDBC Maven Central Repositoryのドライバーページ をご参照ください。
注釈
AArch64アーキテクチャを使用するシステム(例: Apple M1)の場合は、 JNA ライブラリのバージョン5.7.0以降を使用します。(v5.7.0より前の JNA バージョンは、AArch64で実行されるWindowsおよび macOS システムと非互換。)