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参照情報 をご参照ください)。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 および SnowflakeConnectionPoolDataSource はインターフェースになりました。直接インスタンス化の代わりにファクトリークラスを使用します。
コンポーネント |
ファクトリーメソッド |
|---|---|
:codenowrap: |
|
:codenowrap: |
|
認証タイプの変更¶
認証タイプが SNOWFLAKE から SNOWFLAKE_JDBC に変更されました。
前(3.x) |
後(4.x) |
|---|---|
|
:codenowrap: |
その他の認証タイプには、次が含まれます。
:codenowrap:
SNOWFLAKE:codenowrap:
OKTA:codenowrap:
EXTERNAL_BROWSER:codenowrap:
OAUTH:codenowrap:
SNOWFLAKE_JWT:codenowrap:
ID_TOKEN:codenowrap:
USERNAME_PASSWORD_MFA:codenowrap:
OAUTH_AUTHORIZATION_CODE:codenowrap:
OAUTH_CLIENT_CREDENTIALS:codenowrap:
PROGRAMMATIC_ACCESS_TOKEN:codenowrap:
WORKLOAD_IDENTITY
ストリームのアップロードとダウンロードの変更¶
codenowrap:SnowflakeConnection インターフェースでストリーム操作のオーバーロードが簡素化されます。
アップロード:
uploadStream(stageName, destFileName, inputStream)uploadStream(stageName, destFileName, inputStream, UploadStreamConfig)UploadStreamConfigオプション:destPrefix、compressData(デフォルト:true)
ダウンロード:
downloadStream(stageName, sourceFileName)downloadStream(stageName, sourceFileName, DownloadStreamConfig)DownloadStreamConfigオプション:decompress(デフォルト:false)
codenowrap:SnowflakeType の変更¶
codenowrap:SnowflakeType 列挙型は削除されました。型の値は同じですが、列挙型はサポートされなくなりました。
codenowrap:QueryStatus および SnowflakeAsyncResultSet の変更¶
バージョン4.0.0では、クエリと結果セットに関して次の変更が行われました。
codenowrap:
QueryStatus列挙型がDTO(以前の呼称はQueryStatusV2)に置き換えられました。同じデータを転送しますが、スレッドセーフな方法で実行されます。クエリのステータスを取得するには、結果セットをSnowflakeAsyncResultSetにラップ解除し、getStatusを呼び出します。結果セットの codenowrap:
getQueryErrorMessageは削除されますが、QueryStatusに対するgetErrorMessageから直接取得できます。
ステータスを表す列挙値が必要な場合は、QueryStatus に対して getStatus を呼び出します。