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への変更は、以下の表に示されています。

パッケージ

説明

api.driver

JDBCドライバーの登録およびエントリーポイント

api.connection

Snowflake固有の接続およびデータベースメタデータインターフェース、ストリーム転送構成

api.datasource

接続の作成と管理のためのDataSource実装

api.pooling

プールされた接続を必要とするアプリケーションの接続プールデータソース

api.resultset

結果セットインターフェース、フィールドメタデータ、Snowflakeデータ型、非同期クエリステータス

api.auth

認証方法の定義

api.loader

進行コールバックを使用した大量のインジェスチョンのためのデータの一括ロードAPI

さらに、ドライバーにはパブリックAPIの一部ではない net.snowflake.client.internal パッケージのクラスが含まれます。これらのクラスは、ドライバーによって内部的に使用され、アプリケーション開発者による使用を目的としていません。自分の責任で内部APIsを使用してください。これらは通知なしに変更される場合があり、下位互換性の保証はありません。

JDBCドライバー3.xからJDBCドライバー4.xでのコード変更

ドライバークラス名の変更

ドライバークラス名が変更されました。

前(3.x)

後(4.x)

com.snowflake.client.jdbc.SnowflakeDriver

net.snowflake.client.api.driver.SnowflakeDriver

データソース作成の変更

SnowflakeDataSource および SnowflakeConnectionPoolDataSource はインターフェースになりました。直接インスタンス化の代わりにファクトリークラスを使用します。

コンポーネント

ファクトリーメソッド

:codenowrap:SnowflakeDataSource

SnowflakeDataSourceFactory.createDataSource()

:codenowrap:SnowflakeConnectionPoolDataSource

SnowflakeConnectionPoolDataSourceFactory.createConnectionPoolDataSource()

認証タイプの変更

認証タイプが SNOWFLAKE から SNOWFLAKE_JDBC に変更されました。

前(3.x)

後(4.x)

externalbrowser

:codenowrap:EXTERNAL_BROWSER

その他の認証タイプには、次が含まれます。

  • :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 オプション: destPrefixcompressData (デフォルト: 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 を呼び出します。