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. 必要なバージョンのディレクトリをクリックします。

    The most recent version (3.13.29) is not always at the end of the list. Versions are listed alphabetically, not numerically. For example, 3.10.x comes after 3.1.x, not after 3.9.x.

  3. snowflake-jdbc-#.#.#.jar ファイルをダウンロードします。

    注釈

    必要に応じて、次のコマンドを入力して、 JDBC ドライバーのバージョンを確認できます。

    java -jar snowflake-jdbc-#.#.#.jar --version。ここで、 #.#.# は、ダウンロードしたファイル名のバージョン番号と一致します。

  4. ドライバーパッケージの署名を確認する 場合は、 snowflake-jdbc-#.#.#.jar.asc ファイルをダウンロードします。

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

JDBC ドライバーパッケージの署名を確認するには、

  1. 公開キーサーバーから、使用している 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
    
    Copy

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

    gpg --keyserver hkp://keyserver.ubuntu.com:80  ...
    
    Copy
  2. gpg --verify コマンドを実行して、パッケージの署名を確認します。

    --verify コマンドラインフラグには、署名ファイルとして 以前にダウンロード した .asc ファイルを指定し、署名済みデータを含むファイルとして JAR ファイルを指定します。

    例:

    $ gpg --verify snowflake-jdbc-3.13.29.jar.asc snowflake-jdbc-3.13.29.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>"

    Specify the correct version numbers for the JDBC driver package you are verifying. Version 3.13.29 is used in this example for illustration purposes only. The latest available version of the driver may be higher.

    注釈

    署名を確認すると、次のような警告が生成されます。

    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.
    
    Copy

    警告を回避するために、Snowflake GPG 公開キーの暗黙的な信頼を付与できます。

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

    $ gpg --delete-key "Snowflake Computing"
    
    Copy

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

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

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

Where the <version> tag specifies the version of the driver you wish to integrate. Note that version 3.13.29 is used in this example for illustration purposes only. The latest available version of the driver may be higher.

開発者ノートは、ソースコードとともに 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 システムと非互換。)