JDBC 드라이버 다운로드/통합하기¶
JDBC 드라이버(snowflake-jdbc
)는 JAR 파일로 제공되며, Maven에서 아티팩트로 사용하여 다운로드하거나 Java 기반 프로젝트에 직접 통합하는 것이 가능합니다. 또한 Maven에서 다음 유형의 드라이버를 다운로드할 수도 있습니다.
:codenowrap:`snowflake-jdbc-fips`라는 FIPS 호환 fat jar.
snowflake-jdbc-thin
이라는 thin jar.
추가 유형에 대한 원본 코드는 동일하지만 종속성 구성은 다음과 같이 다릅니다.
FIPS 호환 fat jar는 FIPS Bouncy Castle 종속성을 내장하지 않으므로 런타임 중에 종속성을 제공해야 합니다.
Thin jar에는 일부 종속성만 포함되어 있으므로 pom 파일 선언에 따라 다른 종속성을 제공해야 합니다.
모든 JAR 유형은 동일한 버전 번호로 함께 릴리스됩니다.
드라이버를 다운로드하거나 통합하기 전, 현재 사용 중인 드라이버 버전을 확인해야 합니다. 드라이버 버전을 확인하려면 드라이버를 사용하는 클라이언트 애플리케이션을 통해 Snowflake에 연결한 후 드라이버 버전을 확인합니다. 애플리케이션이 SQL 쿼리의 실행을 지원하는 경우에는 CURRENT_CLIENT 함수를 호출하여 확인할 수 있습니다.
이 항목의 내용:
요구 사항¶
Snowflake 클라이언트에서 지원되는 운영 체제 목록은 운영 체제 지원 을 참조하십시오.
원하는 드라이버 유형 다운로드하기¶
드라이버를 다운로드하려면 원하는 드라이버 유형에 대한 단계를 따르십시오.
표준 드라이버 다운로드¶
표준 드라이버를 다운로드하는 방법:
표준 드라이버는 Maven Central Repository로 이동하십시오.
필요한 버전의 디렉터리를 선택합니다.
가장 최신 버전(3.22.0)이 목록의 마지막에 표시되지 않을 수도 있습니다. 버전은 숫자 순서가 아닌 알파벳 순서 로 나열됩니다. 예를 들어, 3.10.x은 3.9.x의 다음이 아닌 3.1.x의 다음에 제공됩니다.
적절한
snowflake-jdbc-#.#.#.jar
파일을 다운로드합니다.참고
다음 명령을 입력하여 JDBC 드라이버 버전을 확인할 수 있습니다.
java -jar snowflake-jdbc-#.#.#.jar --version
. 여기서#.#.#
는 다운로드한 파일 이름의 버전 번호와 일치합니다.선택 사항: 드라이버 패키지 서명을 확인하려면 해당
snowball-jdbc-#.#.#.jar.asc
파일을 다운로드합니다.
FIPS 호환 드라이버 다운로드¶
FIPS 호환 드라이버를 다운로드하는 방법:
FIPS 호환 드라이버의 Maven Central Repository로 이동합니다.
필요한 버전의 디렉터리를 선택합니다.
가장 최신 버전(3.22.0)이 목록의 마지막에 표시되지 않을 수도 있습니다. 버전은 숫자 순서가 아닌 알파벳 순서 로 나열됩니다. 예를 들어, 3.10.x은 3.9.x의 다음이 아닌 3.1.x의 다음에 제공됩니다.
적절한
snowflake-jdbc-fips-#.#.#.jar
파일을 다운로드합니다.참고
다음 명령을 입력하여 JDBC 드라이버 버전을 확인할 수 있습니다.
java -jar snowflake-jdbc-fips-#.#.#.jar --version
. 여기서#.#.#
는 다운로드한 파일 이름의 버전 번호와 일치합니다.선택적으로, 드라이버 패키지 서명을 확인하고, 해당
snowflake-jdbc-fips-#.#.#.jar.asc
파일을 다운로드할 수 있습니다.
thin-jar 드라이버 다운로드¶
thin-jar 드라이버를 다운로드하는 방법:
Maven Central Repository로 이동하여 thin-jar 드라이버를 다운로드하십시오.
필요한 버전의 디렉터리를 선택합니다.
가장 최신 버전(3.22.0)이 목록의 마지막에 표시되지 않을 수도 있습니다. 버전은 숫자 순서가 아닌 알파벳 순서 로 나열됩니다. 예를 들어, 3.10.x은 3.9.x의 다음이 아닌 3.1.x의 다음에 제공됩니다.
적절한
snowflake-jdbc-thin-#.#.#.jar
파일을 다운로드합니다.참고
다음 명령을 입력하여 JDBC 드라이버 버전을 확인할 수 있습니다.
java -jar snowflake-jdbc-thin-#.#.#.jar --version
. 여기서#.#.#
는 다운로드한 파일 이름의 버전 번호와 일치합니다.선택적으로, 드라이버 패키지 서명을 확인하고, 해당
snowflake-jdbc-thin-#.#.#.jar.asc
파일을 다운로드할 수 있습니다.
선택 사항: 드라이버 패키지 서명 확인¶
JDBC 드라이버 패키지 서명을 확인하는 방법은 다음과 같습니다.
공개 키 서버에서 자신이 사용 중인 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
그리고 키 서버에 포트 80을 사용하도록 지정합니다.
gpg --keyserver hkp://keyserver.ubuntu.com:80 ...
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.
경고를 방지하려면, Snowflake GPG 공개 키에 암시적 신뢰를 부여할 수 있습니다.
로컬 환경에는 여러 개의 GPG 키가 포함될 수 있지만, 보안상의 이유로 Snowflake는 공개 GPG 키를 주기적으로 순환합니다. 가장 좋은 방법은 서명된 최신 패키지에서 최신 키가 작동하는지 확인한 후 기존 공개 키를 삭제하는 것입니다.
$ gpg --delete-key "Snowflake Computing"
드라이버를 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)용 토큰 캐싱 을 사용하려면 JNA(Java Native Access) 클래스를 사용하여 데이터를 파일 시스템에 안전하게 저장해야 합니다.
JDBC 드라이버 버전 3.12.18 현재, JNA 클래스는 더 이상 JDBC 드라이버 JAR 파일에 패키징되지 않습니다. JDBC 드라이버 pom.xml
파일에서 이러한 클래스에 대한 종속성은 선택 사항으로 표시됩니다.
연결 캐싱 또는 토큰 캐싱을 사용해야 하는 경우에는 다음 라이브러리를 클래스 경로에 추가해야 합니다.
JDBC Driver용 pom.xml
파일은 JDBC Driver를 사용하여 테스트된 JNA 클래스의 버전을 지정합니다. Snowflake는 이 버전(또는 동일한 주 버전)의 JNA 클래스를 사용하는 것을 권장합니다.
자세한 내용은 Maven Central Repository의 JDBC 드라이버 페이지 를 참조하십시오.
참고
aarch64 아키텍처를 사용하는 시스템(예: Apple M1 칩)에서는 JNA 라이브러리 버전 5.7.0 이상을 사용하십시오. (v5.7.0 이전의 JNA 버전은 Windows 및 macOS arch64에서 실행되는 시스템과 호환되지 않습니다.)