下载/集成 JDBC 驱动程序

JDBC 驱动程序 (snowflake-jdbc) 以 JAR 文件的形式提供,可以作为 Maven 中的构件下载或直接集成到基于 Java 的项目中。

在下载或集成驱动程序之前,可能需要首先验证当前使用的驱动程序版本。要验证驱动程序版本,请通过使用驱动程序的客户端应用程序连接到 Snowflake,并检查驱动程序版本。如果应用程序支持执行 SQL 查询,可以通过调用 CURRENT_CLIENT 函数来实现这一点。

本主题内容:

要求

有关 Snowflake 客户端支持的操作系统列表,请参阅 操作系统支持

下载驱动程序

要下载驱动程序,请执行以下操作:

  1. 转到 Maven 中央存储库。

  2. 点击所需版本的目录。

    最新版本 (3.16.0) 并不总是位于列表的末尾。版本按 :emph:` 字母顺序 ` (而不是按数字顺序)列出。例如,3.10.x 位于 3.1.x 之后,而不是 3.9.x 之后。

  3. 下载 snowflake-jdbc-#.#.#.jar 文件。

    备注

    如果需要,可以通过输入以下命令来验证 JDBC 驱动程序版本:

    java -jar snowflake-jdbc-#.#.#.jar --version,其中 #.#.# 与下载的文件名中的版本号匹配。

  4. 如果计划 :ref:` 验证驱动程序包签名 <label-jdbc-driver-verify-package>`,请下载 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.16.0.jar.asc snowflake-jdbc-3.16.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.16.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.16.0</version>
  </dependency>
  ...
</dependencies>

其中, <version> 标签指定要集成的驱动程序版本。请注意,本示例中使用的版本 3.16.0 仅用于说明目的。驱动程序的最新可用版本可能更高。

开发者说明与源代码一起托管在 ` GitHub<https://github.com/snowflakedb/snowflake-jdbc (https://github.com/snowflakedb/snowflake-jdbc)> `_ 上。

将 JNA 类添加到类路径

:ref:` 基于浏览器的 SSO 的连接缓存 <label-browser_based_sso_connection_caching>` 和 :ref:` 多重身份验证 (MFA) 的令牌缓存 <label-mfa_token_caching>` 需要使用 ` Java 本地访问 (JNA) 类 <https://github.com/java-native-access/jna/blob/master/README.md (https://github.com/java-native-access/jna/blob/master/README.md)>`_ 将数据安全地保存到文件系统中。

从 JDBC 驱动程序版本 3.12.18 开始, JNA 类不再打包在 JDBC 驱动程序 JAR 文件中。在 JDBC 驱动程序 pom.xml 文件中,对这些类的依赖项标记为可选。

如果需要使用连接缓存或令牌缓存,则必须将以下库添加到类路径中:

  • 对于 Mac 和 Linux:

    • JNA

  • 对于 Windows:

    • JNA

    • JNA 平台

JDBC 驱动程序的 pom.xml 文件指定已使用 JDBC 驱动程序测试的 JNA 类的版本。Snowflake 建议使用 JNA 类的此版本(或相同的主要版本)。

备注

对于使用 aarch64 架构的系统(例如 Apple M1 芯片),请使用版本 5.7.0 或更高版本的 JNA 库。(v5.7.0 之前的 JNA 版本与在 aarch64 中运行的 Windows 和 macOS 系统不兼容。)

语言: 中文