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.15.0)が常にリストの最後にあるとは限りません。バージョンは、数値ではなく、 アルファベット順 にリストされています。たとえば、3.10.xは3.9.xではなく、3.1.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.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.
    
    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.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 ファイルでは、これらのクラスへの依存関係はオプションとしてマークされています。

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

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

注釈

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