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

ご希望のタイプのドライバーのダウンロード

ドライバーをダウンロードするには、希望のドライバータイプの手順に従ってください。

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

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

  1. 標準ドライバーの Maven Central Repository に移動します。

  2. 必要なバージョンのディレクトリを選択してください。

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

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

    注釈

    JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。

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

  4. オプション: ドライバー・パッケージの署名 を検証するには、対応する:codenowrap:snowflake-jdbc-#.#.#.jar.asc ファイルをダウンロードします。

FIPS-準拠ドライバーのダウンロード

FIPS-準拠のドライバーをダウンロードするには:

  1. Maven Central Repositoryにアクセスして、 FIPS-準拠ドライバーを探します。

  2. 必要なバージョンのディレクトリを選択してください。

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

  3. 適切な:codenowrap:snowflake-jdbc-fips-#.#.#.jar ファイルをダウンロードします。

    注釈

    JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。

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

  4. オプションとして、 ドライバーパッケージの署名を確認し、対応する:codenowrap:Snowflake-jdbc-fips-#.#.#.jar.asc ファイルをダウンロードします。

thin-jarドライバーのダウンロード

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

  1. thin-jarドライバーのMaven Central Repositoryに移動します。

  2. 必要なバージョンのディレクトリを選択してください。

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

  3. 適切な:codenowrap:snowflake-jdbc-thin-#.#.#.jar ファイルをダウンロードします。

    注釈

    JDBC ドライバーのバージョンは、以下のコマンドを入力することで確認できます。

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

  4. オプションとして、 ドライバーパッケージの署名を確認し、対応する:codenowrap:snowflake-jdbc-thin-#.#.#.jar.asc ファイルをダウンロードします。

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

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

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

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

    gpg --keyserver hkp://keyserver.ubuntu.com:80  ...
    
    Copy
  2. 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.
    
    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.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 ファイルでは、これらのクラスへの依存関係はオプションとしてマークされています。

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

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 システムと非互換。)