Herunterladen und Integrieren des JDBC-Treibers¶
Der JDBC -Treiber (snowflake-jdbc
) wird als JAR-Datei bereitgestellt, die in Maven zum Herunterladen oder zur direkten Integration in Ihre Java-basierten Projekte verfügbar ist.
Bevor Sie den Treiber herunterladen oder integrieren, sollten Sie zunächst die Version des Treibers überprüfen, den Sie gerade verwenden. Um Ihre Treiberversion zu überprüfen, verbinden Sie sich mit Snowflake über eine Clientanwendung, die den Treiber verwendet, und überprüfen Sie die Treiberversion. Wenn die Anwendung das Ausführen von SQL-Abfragen unterstützt, können Sie dies durch Aufruf der Funktion CURRENT_CLIENT tun.
Unter diesem Thema:
Anforderungen¶
Eine Liste der von Snowflake-Clients unterstützten Betriebssysteme finden Sie unter Betriebssystemunterstützung.
Herunterladen des Treibers¶
So laden Sie den Treiber herunter:
Wechseln Sie in das Maven Central Repository:
Klicken Sie auf das Verzeichnis für die gewünschte Version.
Die neueste Version (3.15.0) steht nicht immer am Ende der Liste. Versionen werden alphabetisch und nicht numerisch aufgelistet. Beispielsweise steht 3.10.x nach 3.1.x und nicht nach 3.9.x.
Laden Sie die
snowflake-jdbc-#.#.#.jar
-Datei herunter.Bemerkung
Falls gewünscht, können Sie die JDBC-Treiberversion durch Eingabe des folgenden Befehls überprüfen:
java -jar snowflake-jdbc-#.#.#.jar --version
, wobei#.#.#
mit den Versionsnummern im Namen der heruntergeladenen Datei übereinstimmt.Wenn Sie vorhaben, die Signatur des Treiberpakets zu überprüfen, laden Sie die
snowflake-jdbc-#.#.#.jar.asc
-Datei herunter.
Überprüfen der Signatur des Treiberpakets – Optional¶
So überprüfen Sie die Signatur des JDBC-Treiberpakets:
Laden Sie vom öffentlichen Keyserver den öffentlichen Snowflake-GPG-Schlüssel in der von Ihnen verwendeten JDBC-Treiberversion herunter, und importieren Sie diesen:
Für Version 3.13.23 und höher:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 630D9F3CAB551AF3
Für die Versionen 3.12.13 bis 3.13.22:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 37C7086698CB005C
Für die Versionen 3.6.26 bis 3.12.12:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EC218558EABB25A1
Für Version 3.6.25 und niedriger:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 93DB296A69BE019A
Bemerkung
Wenn dieser Befehl mit der folgenden Fehlermeldung fehlschlägt:
gpg: keyserver receive failed: Server indicated a failure
Geben Sie an, dass Sie für den Keyserver Port 80 verwenden möchten:
gpg --keyserver hkp://keyserver.ubuntu.com:80 ...
Führen Sie den Befehl
gpg --verify
aus, um die Signatur des Pakets zu überprüfen.Geben Sie für das Kommandozeilenflag
--verify
die.asc
-Datei, die sie zuvor heruntergeladen haben, als Signaturdatei an, und die JAR-Datei als Datei mit den signierten Daten.Beispiel:
$ 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>"
Stellen Sie sicher, dass Sie die korrekten Versionsnummern für das JDBC-Treiberpaket angeben, das Sie verifizieren. Version 3.15.0 wird in diesem Beispiel nur zu Illustrationszwecken verwendet. Die neueste verfügbare Version des Treibers ist möglicherweise höher.
Bemerkung
Die Überprüfung der Signatur führt zu einer Warnung ähnlich der folgenden:
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.
Um die Warnung zu vermeiden, können Sie dem öffentlichen Snowflake-GPG-Schlüssel implizites Vertrauen gewähren.
Ihre lokale Umgebung kann mehrere GPG-Schlüssel enthalten. Aus Sicherheitsgründen rotiert Snowflake jedoch regelmäßig den öffentlichen GPG-Schlüssel. Als Best Practice empfehlen wir, den vorhandenen öffentlichen Schlüssel zu löschen, nachdem Sie sicher sind, dass der aktuelle Schlüssel mit dem aktuellen, signierten Paket funktioniert:
$ gpg --delete-key "Snowflake Computing"
Integrieren des Treibers in ein Maven-Projekt¶
Um den Treiber in ein Maven-Projekt zu integrieren, fügen Sie den Treiber als Abhängigkeit zu Ihrer pom.xml
-Datei hinzu. Beispiel:
<dependencies> ... <dependency> <groupId>net.snowflake</groupId> <artifactId>snowflake-jdbc</artifactId> <version>3.15.0</version> </dependency> ... </dependencies>
Dabei gibt das <Version>
-Tag die Version des zu integrierenden Treibers an. Beachten Sie, dass Version 3.15.0 in diesem Beispiel nur zu Illustrationszwecken verwendet wird. Die neueste verfügbare Version des Treibers ist möglicherweise höher.
Die Entwicklerhinweise werden mit dem Quellcode auf GitHub gehostet.
Hinzufügen der JNA-Klassen zu Ihrem Klassenpfad¶
Verbindungscaching für browserbasiertes SSO und Tokencaching für mehrstufige Authentifizierung (MFA) erfordern die Verwendung der Java Native Access (JNA)-Klassen, um Daten sicher im Dateisystem zu speichern.
Ab Version 3.12.18 des JDBC-Treibers sind die JNA-Klassen nicht mehr in der JAR-Datei des JDBC-Treibers gepackt. In der JDBC-Treiberdatei pom.xml
sind die Abhängigkeiten von diesen Klassen als optional gekennzeichnet.
Wenn Sie Verbindungscaching oder Tokencaching verwenden müssen, müssen Sie die folgenden Bibliotheken zu Ihrem Klassenpfad hinzufügen:
Mac und Linux:
Windows:
Die pom.xml
-Datei für den JDBC-Treiber gibt die Version der JNA-Klassen an, die mit dem JDBC-Treiber getestet wurden. (Weitere Informationen dazu finden Sie auf der Seite zum JDBC-Treiber im Maven Central Repository.) Wir empfehlen, diese Version (oder dieselbe Hauptversion) der JNA-Klassen zu verwenden.
Bemerkung
Verwenden Sie bei Systemen mit aarch64-Architektur (z. B. den Apple M1-Chip) Version 5.7.0 oder höher der JNA-Bibliotheken. (JNA-Versionen vor v5.7.0 sind nicht kompatibel mit Windows- und macOS-Systemen, die auf der aarch64-Architektur ausgeführt werden.)