2024년 .NET Driver 릴리스 정보¶
이 문서에는 .NET Driver 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.
동작 변경 사항
새로운 기능
고객이 직면한 버그 수정
Snowflake는 .NET Driver 업데이트에 의미 체계 버전 관리를 사용합니다.
설명서는 .NET 드라이버 섹션을 참조하십시오.
버전 4.1.0(2024년 8월 5일)¶
새로운 기능 및 개선 사항¶
드라이버가 연결 중인 도메인 대상에 대한 로그 메시지를 추가했습니다.
:codenowrap:`DbCommand.Prepare()`를 업데이트하여 예외를 발생시키는 대신 아무것도 하지 않도록 했습니다.
버그 수정 사항¶
OpenAsync
작업을 취소할 때 취소 예외가 손실되는 문제를 해결했습니다.
버전 4.0.0(2024년 7월 8일)¶
BCR(동작 변경 릴리스) 변경 사항¶
버전 4.0.0부터 .NET 드라이버에는 다음과 같은 중요한 변경 사항이 도입되었습니다.
연결 풀 동작 변경 사항:
이제 이 드라이버는 각각의 고유 연결 문자열에 대해 별개의 풀을 사용합니다. 이전에는 이 드라이버가 모든 연결 문자열에 풀을 하나만 사용했습니다.
maxPoolSize
매개 변수 변경 사항:이전에는 이 매개 변수가 풀에 저장할 연결 수를 나타냈습니다. 현재는 주어진 풀에 대해 열 수 있는 최대 연결 수를 정의합니다(각 고유 연결 문자열마다 다른 풀이 있으므로 각각에 대해 다르게 설정할 수 있음).
maxPoolSize
에 도달하면 새로운 연결을 요청하는 스레드가 제한을 초과하지 않고 풀에서 연결을 재사용할 수 있게 될 때까지 기다립니다. 시간 초과가 발생하면 예외가 발생합니다.waitingForIdleSessionTimeout
속성을 설정하여 연결 문자열에서 대기 시간을 구성할 수 있습니다. 시간 초과 기본값은 30초입니다. 0으로 변경하면 대기 기능을 비활성화할 수 있습니다.maxPoolSize
의 기본값은 10입니다. 스레드 중단 또는 시간 초과 예외를 방지하기 위해maxPoolSize
값이 필요에 맞게 적절히 설정되었는지 확인합니다.maxPoolSize
속성은minPoolSize
보다 크거나 같아야 합니다.
특정 연결 문자열에 대해 첫 번째 연결을 열 때 드라이버가 2개의 연결(두 번째 연결은 백그라운드에서 수행됨)을 열도록 하는 기본값 2의 새로운
minPoolSize
매개 변수를 추가했습니다.minPoolSize
기능을 비활성화하려면 연결 문자열에서 이 값을 0으로 설정할 수 있습니다.풀 구성이 연결 문자열 기반 접근 방식으로 변경되었습니다. 연결 풀 동작을 제어하는 모든 속성을 이제 연결 문자열에 전달할 수 있습니다.
SnowflakeDbConnectionPool.SetTimeout
,SetPooling
또는SetMaxPoolSize
와 같은SnowflakeDbConnectionPool
setter로 연결 풀 속성을 설정하는 것은 더 이상 가능하지 않습니다. 이제는SnowflakeDbConnectionPool
setter를 사용하면 예외가 발생합니다.이전에는 (예: ALTER SESSION SET 명령을 실행하여) 데이터베이스, 스키마, 역할 또는 웨어하우스 매개 변수를 변경하는 연결이 풀링되었습니다. 이러한 경우에 대한 새로운 기본 동작은 변경된 연결을 닫아도 풀로 반환되지 않을 때 해당 연결을 제거하는 것입니다. 풀에서 변경된 연결을 사용하려면 연결 문자열에
ChangedSession=OriginalPool
을 추가해야 합니다.외부 브라우저 인증을 통한 연결이나 일부 KeyPair/JWT 토큰 인증은 기본적으로 풀에 더 이상 저장되지 않습니다. 이러한 연결 풀링을 활성화하려면 연결 문자열에
poolingEnabled=true
를 추가해야 합니다. 다른 인증 방법의 경우 풀링이 기본적으로 활성화되어 있습니다.연결 풀 사용에 대한 자세한 내용은 연결 풀 사용하기 섹션을 참조하십시오.
NONPOXYHOSTS
매개 변수 동작 변경 사항:NONPROXYHOSTS
매개 변수의 동작이 변경되었습니다. 이전에는 호스트 이름에 이 매개 변수에 지정된 값이 포함된 경우 호스트가 프록시되지 않았습니다. 이제 호스트는 이 매개 변수에 지정된 값과 정확히 일치할 경우 프록시되지 않습니다. 예를 들어, 이전에는NONPROXYHOSTS=c
가 “your-account.snowflakecomputing.com”과 같이 “c”를 포함하는 모든 호스트와도 일치했습니다. 변경 후에는 :codenowrap:`NONPROXYHOSTS=your-account.snowflakecomputing.com`과 같이 전체 호스트를 지정해야 프록시가 적용되지 않습니다.
새로운 기능 및 개선 사항¶
여러 풀(고유한 연결 문자열당 하나씩)과 연결 문자열 기반 구성을 사용하여 연결 풀 동작을 변경했습니다. 연결 풀 사용에 대한 자세한 내용은 연결 풀 사용하기 섹션을 참조하십시오.
.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 연결 문자열 매개 변수에서 큰따옴표 지원을 수정했습니다.
ServiceUrl
에 “https://”가 없는 경우 이를 추가하여 S3 클라이언트를 수정했습니다.로그에 기록할 때 시크릿을 더 효과적으로 마스킹하기 위해 시크릿 감지기를 업데이트했습니다.
적절한
SnowflakeDbParameter.DbType
값 설정을 추가했습니다.retryTimeout
값이 무한한 경우connectionTimeout
을retryTimeout
만큼 단축하는 논리를 수정했습니다.maxHttpRetries
를 HTTP 클라이언트의 기본값으로 늘리는 논리를 적용했습니다. 이전에는 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 실패에 대해
QueryID
와 함께SnowflakeDbException
을 발생시킵니다. 이전에는 드라이버가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 재시도 문제를 수정했습니다.
텍스트 실행이 없는 명령에 대한 빠른 실패를 추가했습니다.
가능한 경우
QueryId
를 포함하도록 PUT/GET 실행 실패로 인해 발생한 예외를 수정했습니다.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
구성 매개 변수를 추가했습니다. 이 매개 변수를 사용하면 이 릴리스와 관련된 동작 변경 사항을 재정의할 수 있습니다.
버그 수정 사항¶
연결 시간 초과 문제를 수정하기 위해 이제 드라이버는 연결 시 만료된 세션을 비동기적으로 닫습니다.