JDBC 드라이버 3.x에서 JDBC 드라이버 4.x로 마이그레이션하기¶
JDBC 드라이버 4.x는 JDBC 드라이버 3.x에 비해 몇 가지 새로운 기능과 개선 사항을 도입했습니다. 이 항목에서는 공개 API 변경 사항과 새로운 기능에 대한 개요 및 JDBC 드라이버 3.x에서 JDBC 드라이버 4.x로 마이그레이션하는 방법에 대한 정보도 제공합니다.
공개 API 개요¶
Snowflake JDBC 드라이버 공개 API는 net.snowflake.client.api 패키지(`API 참조<https://docs.snowflake.com/developer-guide/jdbc/reference/java/v4.0/index.html>`_ 참조)에 있습니다. JDBC 드라이버 3.x 및 JDBC 드라이버 4.x 간의 공개 API에 대한 변경 사항은 다음 테이블에 나열되어 있습니다.
패키지 |
설명 |
|---|---|
JDBC 드라이버 등록 및 진입점 |
|
Snowflake 관련 연결 및 데이터베이스 메타데이터 인터페이스, 스트림 전송 구성 |
|
연결 생성 및 관리를 위한 DataSource 구현 |
|
풀링된 연결이 필요한 애플리케이션을 위한 연결 풀 데이터 소스 |
|
결과 세트 인터페이스, 필드 메타데이터, Snowflake 데이터 타입, 비동기 쿼리 상태 |
|
인증 방법 정의 |
|
진행률 콜백을 사용한 대량 수집용 대량 데이터 로딩 API |
또한, 드라이버는 공개 API의 일부가 아닌 net.snowflake.client.internal 패키지에 클래스를 포함합니다. 이러한 클래스는 드라이버에서 내부적으로 사용되며 애플리케이션 개발자가 사용할 수 없습니다. 내부 APIs 사용에 따른 위험은 사용자가 감수해야 합니다. 이는 이전 버전과의 호환성을 보장하지 않고 사전 고지 없이 변경될 수 있습니다.
JDBC 드라이버 3.x에서 JDBC 드라이버 4.x로의 코드 변경 사항¶
드라이버 클래스 이름 변경 사항¶
드라이버 클래스 이름이 변경되었습니다.
이전(3.x) |
이후(4.x) |
|---|---|
|
|
데이터 소스 생성 변경 사항¶
이제 SnowflakeDataSource 및 :codenowrap:`SnowflakeConnectionPoolDataSource`가 인터페이스입니다. 직접 인스턴스화하는 대신 팩토리 클래스를 사용합니다.
구성 요소 |
팩토리 메서드 |
|---|---|
|
|
|
|
인증 유형 변경 사항¶
인증 유형이 :codenowrap:`SNOWFLAKE`에서 :codenowrap:`SNOWFLAKE_JDBC`로 변경되었습니다.
이전(3.x) |
이후(4.x) |
|---|---|
|
|
다른 인증 유형에는 다음이 포함됩니다.
SNOWFLAKEOKTAEXTERNAL_BROWSEROAUTHSNOWFLAKE_JWTID_TOKENUSERNAME_PASSWORD_MFAOAUTH_AUTHORIZATION_CODEOAUTH_CLIENT_CREDENTIALSPROGRAMMATIC_ACCESS_TOKENWORKLOAD_IDENTITY
스트림 업로드 및 다운로드 변경 사항¶
SnowflakeConnection 인터페이스에서 스트림 작업을 위한 오버로드가 간소화되었습니다.
업로드:
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)UploadStreamConfigoptions:destPrefix,compressData`(기본값: :codenowrap:`true)
다운로드:
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)DownloadStreamConfig옵션:decompress`(기본값: :codenowrap:`false)
SnowflakeType 변경 사항¶
SnowflakeType 열거형이 제거되었습니다. 유형 값은 동일하게 유지되지만 열거형은 더 이상 지원되지 않습니다.
QueryStatus 및 SnowflakeAsyncResultSet 변경 사항¶
버전 4.0.0에서는 쿼리 및 결과 세트와 관련하여 다음과 같이 변경되었습니다.
QueryStatus열거형이 DTO(이전의 : codenowrap:QueryStatusV2)로 대체되었습니다. 동일한 데이터를 전달하지만 스레드로부터 안전한 방식으로 전달합니다. 쿼리 상태를 검색하려면 결과 세트를 :codenowrap:`SnowflakeAsyncResultSet`로 래핑 해제하고 :codenowrap:`getStatus`를 호출합니다.결과 세트의 :codenowrap:`getQueryErrorMessage`는 제거되지만 :codenowrap:`QueryStatus`의 :codenowrap:`getErrorMessage`에서 직접 검색할 수 있습니다.
상태를 나타내는 열거형 값이 필요한 경우 :codenowrap:`QueryStatus`에서 :codenowrap:`getStatus`를 호출합니다.