JDBC ドライバーのダウンロード/統合

JDBC ドライバー(snowflake-jdbc)は JAR ファイルとして提供され、Mavenのアーティファクトとしてダウンロードしたり、Javaベースのプロジェクトに直接統合したりできます。

ドライバーをダウンロードまたは統合する前に、現在使用しているドライバーのバージョンを最初に確認することをお勧めします。ドライバーのバージョンを確認するには、ドライバーを使用するクライアントアプリケーションを介してSnowflakeに接続し、ドライバーのバージョンを確認します。アプリケーションが SQL クエリの実行をサポートしている場合、 CURRENT_CLIENT 関数を呼び出してこれを確認できます。

このトピックの内容:

要件

Snowflakeクライアントでサポートされているオペレーティングシステムのリストについては、 オペレーティングシステムのサポート をご参照ください。

ドライバーのダウンロード

ドライバーをダウンロードするには:

  1. Maven Central Repositoryにアクセスします。

    https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc

  2. 必要なバージョンをクリックします。

    最新バージョンが常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。例えば、3.10.xは3.9.xではなく、3.1.xの後です。

  3. snowflake-jdbc-#.#.#.jarファイルをダウンロードします。(ディレクトリ全体をダウンロードする必要はありません。)

ドライバーパッケージの署名の確認 --- オプション

オプションで JDBC ドライバーパッケージの署名を確認するには、

  1. 公開キーサーバーから最新のSnowflake GPG 公開キーをダウンロードしてインポートします。

    $ gpg --keyserver hkp://keys.gnupg.net --recv-keys <GPG_KEY_ID>
    

    <GPG_KEY_ID> には、次のキー IDs のいずれかを指定します。

    JDBC ドライバーのバージョン

    GPG キー ID

    3.12.13以上

    37C7086698CB005C

    3.6.26 から 3.12.12

    EC218558EABB25A1

    3.6.25まで

    93DB296A69BE019A

    このコマンドが次のエラーを発生して失敗した場合、

    gpg: keyserver receive failed: Server indicated a failure
    

    次に、キーサーバーにポート80を使用することを指定します。

    gpg --keyserver hkp://keys.gnupg.net:80  ...
    
  2. bashインストーラーとともに GPG 署名をダウンロードし、署名を確認します。例:

    $ gpg --verify snowflake-jdbc-3.13.2.jar.asc snowflake-jdbc-3.13.2.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.13.2 は説明のみを目的として使用されています。ドライバーの最新の利用可能なバージョンはそれ以上の場合があります。

  3. ローカル環境には複数の GPG キーを含めることができます。ただし、セキュリティ上の理由から、Snowflakeは定期的に公開 GPG キーをローテーションします。ベストプラクティスとして、最新の署名済みパッケージで最新のキーが機能することを確認した後、既存の公開キーを削除することをお勧めします。

    $ gpg --delete-key "Snowflake Computing"
    

Mavenプロジェクトへのドライバーの統合

ドライバーをMavenプロジェクトに統合するには、ドライバーを依存関係として pom.xml ファイルに追加します。例:

<dependencies>
  ...
  <dependency>
    <groupId>net.snowflake</groupId>
    <artifactId>snowflake-jdbc</artifactId>
    <version>3.13.2</version>
  </dependency>
  ...
</dependencies>

<バージョン> タグは、統合するドライバーのバージョンを指定します。この例では、バージョン 3.13.2 は説明目的でのみ使用されています。ドライバーの最新の利用可能なバージョンはそれ以上の場合があります。

開発者ノートは、ソースコードとともに GitHub でホストされています。

クラスパスへの JNA クラスの追加

ブラウザーベースの SSO の接続キャッシュ多要素認証(MFA)のトークンキャッシュ には、ファイルシステムにデータを安全に保存するために Java Native Access(JNA)クラス を使用する必要があります。

JDBC ドライバーのバージョン3.12.18以降、 JNA クラスは JDBC ドライバー JAR ファイルにパッケージ化されなくなりました。JDBC ドライバー pom.xml ファイルでは、これらのクラスへの依存関係はオプションとしてマークされています。

接続キャッシュまたはトークンキャッシュを使用する必要がある場合は、次のライブラリをクラスパスに追加する必要があります。

JDBC ドライバー 用の pom.xml ファイルは、 JDBC ドライバーでテストされた JNA クラスのバージョンを指定します。JNA クラスのこのバージョン(または同じメジャーバージョン)を使用することをお勧めします。

注釈

AArch64アーキテクチャを使用するシステム(例: Apple M1)の場合は、 JNA ライブラリのバージョン5.7.0以降を使用します。(v5.7.0より前の JNA バージョンは、AArch64で実行されるWindowsおよび macOS システムと非互換。)