2024年の .NET Driver リリースノート¶
この記事には、 .NET Driver のリリースノートが含まれています。また、該当する場合は以下が含まれます。
動作の変更
新機能
顧客向けバグ修正
Snowflake は、 .NET Driver の更新にセマンティックバージョニングを使用します。
ドキュメントについては、 NET ドライバー をご参照ください。
バージョン4.1.0(2024年8月5日)¶
新機能および改善¶
ドライバーの接続先ドメインに関するログメッセージを追加しました。
DbCommand.Prepare()
を更新し、例外をスローする代わりに何もしないようになりました。
バグ修正¶
OpenAsync
の操作をキャンセルする際にキャンセル例外が失われる問題を修正しました。
バージョン4.0.0(2024年7月8日)¶
BCR (動作変更リリース)の変更¶
バージョン4.0.0以降、.NET ドライバーにより以下の変更が導入されました。
接続プールの動作変更:
ドライバーは、一意の接続文字列ごとに別々のプールを使用するようになりました。これまで、ドライバーはすべての接続文字列に対して1つのプールしか使用しませんでした。
maxPoolSize
パラメーターの変更:これまでは、プールに保存する接続数を表していました。今後は、指定されたプールに対して開くことのできる接続の最大数を定義します(一意の接続文字列ごとに異なるプールが存在するため、それぞれ異なる設定にすることができます)。
maxPoolSize
に達した場合、新しい接続をリクエストするスレッドは、プールからの接続が制限を超えることなく再利用可能になるまで待機します。タイムアウトの場合は例外がスローされます。waitingForIdleSessionTimeout
プロパティを設定して、接続文字列の待機時間を構成することができます。タイムアウトのデフォルト値は30秒です。これを0に変更すると、待機時間を無効にできます。maxPoolSize
のデフォルト値は10です。スレッドのハングやタイムアウト例外を避けるために、maxPoolSize
の値がニーズに合わせて適切に設定されていることを確認してください。maxPoolSize
プロパティは、minPoolSize
以上にする必要があります。
指定された接続文字列に対して最初の接続を開いたときに、ドライバーが2つの接続(2つ目はバックグラウンドで)を開くようにする、デフォルト値が2の新しい
minPoolSize
パラメーターを追加しました。minPoolSize
機能を無効にする場合は、接続文字列でこの値を0に設定できます。プールの構成は、接続文字列主導のアプローチに変更されました。接続プールの動作を制御するすべてのプロパティを接続文字列で渡せるようになりました。
SnowflakeDbConnectionPool.SetTimeout
、SetPooling
、SetMaxPoolSize
のように、SnowflakeDbConnectionPool
のセッターで接続プールのプロパティを設定することはできなくなりました。SnowflakeDbConnectionPool
セッターを使用すると例外がスローされるようになりました。これまで、データベース、スキーマ、ロール、またはウェアハウスのパラメーターを変更する(例: ALTER SESSION SET コマンドを実行することによって)接続はプールされていました。新しいデフォルトの動作では、このような場合、閉じる時に変更された接続を破棄し、プールには戻しません。プール内で変更された接続を使用する場合は、接続文字列に
ChangedSession=OriginalPool
を追加する必要があります。外部ブラウザー認証や、 KeyPair/JWT トークン認証による接続は、デフォルトではプールに保存されなくなりました。このような接続のプーリングを有効にするには、接続文字列に
poolingEnabled=true
を追加する必要があります。他の認証方式では、プーリングはデフォルトで有効になっています。接続プールの使用に関する詳細については、 接続プールの使用 をご参照ください。
NONPOXYHOSTS
パラメーターの動作変更:NONPROXYHOSTS
パラメーターの動作が変更されました。これまで、ホストの名前にこのパラメーターで指定された値が含まれている場合、ホストはプロキシになりませんでした。今後、ホストがパラメーターで指定された値とまったく同一の場合に、プロキシになりません。たとえば、以前はNONPROXYHOSTS=c
は、「your-account.snowflakecomputing.com」のような「c」を含むホストにもマッチしました。変更後は、NONPROXYHOSTS=your-account.snowflakecomputing.com
のように、ホスト全体を指定して、プロキシにならないようにする必要があります。
新機能および改善¶
複数の接続プール(一意の接続文字列ごとに1つ)と接続文字列駆動型の構成による接続プールの動作を変更しました。接続プールの使用に関する詳細については、 接続プールの使用 をご参照ください。
.netstandard 2.0をターゲットにします。
ドライバーアセンブリに強力な名前署名を追加しました。
接続文字列と
SnowflakeDbCommand
オブジェクトにQueryTag
パラメーターを設定し、接続とコマンドのクエリにタグを付ける機能を追加しました。BouncyCastle.Cryptography
の依存関係を変更しました。Google.Cloud.Storage.V1
の依存関係を変更しました。Oktaで認証する際に、 SAML ポストバック URL がホスト URL と一致するかどうかのチェックを無効にする新しいパラメーター
DISABLE_SAML_URL_CHECK
を導入しました。
バグ修正¶
バインドが非常に多い(
CLIENT_STAGE_ARRAY_BINDING_THRESHOLD
以上)クエリで、バインドと一緒に渡される日付と時刻の値の処理を修正しました。SQL クエリをサーバーに送信する際、トリミングされたクエリではなく元のクエリを送信するために、コメントで終わるクエリでエラーが発生する問題を修正しました。
NONPROXYHOSTS
パラメーターでホストを提供する、より信頼性の高い方法を実装しました。DB、 SCHEMA、 WAREHOUSE、 ROLE 接続文字列パラメーターの二重引用符のサポートを修正しました。
「https://」がない場合、これを
ServiceUrl
に追加するようにS3クライアントを修正しました。シークレットディテクターを更新し、ログ時にシークレットをより適切にマスクできるようにしました。
SnowflakeDbParameter.DbType
の適切な値の設定を追加しました。retryTimeout
値が無限の場合、retryTimeout
によってconnectionTimeout
を短縮するロジックを修正しました。HTTP クライアントのデフォルト値に
maxHttpRetries
を増やすロジックを適用しました。従来、これはOkta認証にのみ適用されていました。
バージョン3.1.0(2024年3月27日)¶
新機能および改善¶
非同期クエリの実行のサポートを追加しました。
バグ修正¶
Okta認証方式からスローされる例外を改善しました。
非常に短い(1~2文字)アカウント名の検証に関する問題を修正しました。
"WAREHOUSE=\"two words\""
のような引用符で囲まれた内容の接続文字列からWAREHOUSE
プロパティを取得する際の問題を修正しました。
バージョン3.0.0(2024年2月29日)¶
BCR (動作変更リリース)の変更¶
セキュリティを強化するため、ドライバーは、簡単なログ構成用の仮ディレクトリを検索しなくなりました。さらに、ドライバーには、ファイル所有者のみがファイルを変更できるようにファイル権限を制限するため、Unixスタイルのシステム上のログ構成ファイルが必要になりました(
chmod 0600
、chmod 0644
など)。ドライバーは PUT/GET の失敗に対して
SnowflakeDbException
とQueryID
をスローするようになりました。以前、ドライバーはFileNotFound
やDirectoryNotFound
といった異なるタイプの例外をスローしていました。アプリケーションがこれらの例外を確認した場合は、 PUT/GET の失敗に対してSnowflakeDbException
のみを処理するようにコードを更新する必要があります。ドライバーは、チャンクパーサー/ダウンローダーのV1やV2のような古いバージョンをサポートしなくなりました。バージョンV3へのアップグレードの一環として、ドライバーは
SFConfiguration.UseV2JsonParser
またはSFConfiguration.UseV2ChunkDownloader
構成オプションをサポートしなくなりました。以下のようなコマンドを使用していた場合は、削除する必要があります。SFConfiguration.Instance().ChunkParserVersion = 1;
またはSFConfiguration.Instance().ChunkParserVersion = 2;
SFConfiguration.Instance().ChunkDownloaderVersion = 1;
またはSFConfiguration.Instance().ChunkDownloaderVersion = 2;
SFConfiguration.Instance().UseV2JsonParser
SFConfiguration.Instance().UseV2ChunkDownloader
新機能および改善¶
複数の SAML 統合のサポートを追加しました。
バグ修正¶
簡単なログ機能におけるセキュリティの向上には次が含まれます。
クライアント構成ファイルを検索する際に、どのドライバーディレクトリを使用するかを決定する、より信頼性の高い方法を使用する。
構成検索に仮ディレクトリの使用をしなくなった。
セキュリティ強化のため、Unixで追加のファイル権限チェックを実施。
より詳細なログを追加。
SSO/SAML エンドポイント用Okta再試行の問題を修正。
テキスト実行を伴わないコマンドのフェールファストを追加。
PUT/GET の実行失敗時にスローされる例外に
QueryId
が含まれるように修正(可能な場合)。Portable.BouncyCastle
ライブラリをBouncyCastle.Cryptography
に置き換えました。
バージョン2.2.0(2024年1月17日)¶
BCR (動作変更リリース)の変更¶
バージョン 2.2.0 以降、.NET ドライバーはアカウント名に基づいてホスト名を構築する際に、アカウント名のアンダースコア(
_
)をハイフン(-
)に自動的に置き換えます。この変更は、アカウント名にアンダースコアが含まれる PrivateLink のお客様に影響します。この場合、allowUnderscoresInHost
をtrue
に設定してデフォルト値を上書きする必要があります。ConnectionString
でallowUnderscoresInHost=true
を設定して、この動作を上書きできます。この変更は、アカウント名にアンダースコアを含むSnowflakeアカウントでパブリックリンクを介して接続した場合に発生した、 DNS 解決エラーを修正するためのものです。
新機能および更新¶
Arrowパフォーマンスの改善
アカウント名に基づいてホスト名を作成する際に、アカウント名のアンダースコア(
_
)をハイフン(-
)に自動的に置き換えます。allowUnderscoresInHost
構成パラメーターを追加し、アカウント名のアンダースコア(_)を構築ホスト名で維持できるようにしました。このパラメーターを使用すると、本リリースに関連する動作変更を上書きできます。
バグ修正¶
接続タイムアウトの問題を修正するため、接続時にドライバーが期限切れセッションを非同期に閉じるようになりました。