ODBC 構成および接続パラメーター¶
Snowflake ODBC ドライバーは、構成パラメーターと接続パラメーターの両方を利用します。パラメーターを設定する方法は、ドライバーがインストールされている環境によって異なります。
注釈
ODBC クライアント接続文字列内に SEARCH_PATH パラメーターを設定することはできません。検索パスを設定する前にセッションを確立する必要があります。
Windowsでのパラメーターの設定¶
Windowsの場合:
構成パラメーター は、 regedit と次のレジストリパスを使用してWindowsレジストリに設定されます。
[HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
接続パラメーター はデータソース名(DSNs)で設定されます。
DSNs は通常、Windows Data Source Administration ツールを使用して作成および編集されます。
必要に応じて regedit を使用して、 DSNs のレジストリキーをWindowsレジストリで直接編集できます。キーへのレジストリパスは、64ビットと32ビットのWindowsを使用しているか、ユーザーまたはシステム DSN を編集しているかによって異なります。
64ビットWindows:
[HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
32ビットWindows:
[HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
regedit を使用して接続パラメーターを追加するには、新しい String Value を追加し、作成した値をダブルクリックして、 ODBC パラメーターを Value name として、そしてパラメーター値を Value data として入力します。
macOS またはLinuxでのパラメーターの設定¶
macOS またはLinuxの場合:
構成パラメーター¶
CABundleFile証明機関(CA)のバンドルファイルの場所を設定します。CA 証明書の有効なリストを含むファイルを参照する必要があります。
Linuxの場合、 RPM および DEB インストーラーは自動的にファイルをコピーし、このパラメーターを設定します。
Macの場合、 PKG インストーラーはファイルをコピーし、このパラメーターを設定します。
Windowsの場合、 MSI インストーラーはファイルをコピーし、このパラメーターを設定します。
手動インストールでは、 https://curl.haxx.se/docs/caextract.html からファイルをダウンロードし、ファイルの場所を設定する必要があります。
client_config_fileログレベルとログファイルを保存するディレクトリを定義するために使用する ログ構成ファイル のパスを指定します。
CURLVerboseModecURL の詳細ログを有効にするには、
trueに設定します。ログファイルsnowflake_odbc_curl.dmpが作成および更新されます。Snowflake ODBC ドライバーは、 cURL を HTTP および TLS ライブラリとして使用します。このパラメーターは、ネットワークの問題の診断に役立ちます。DisableOCSPChecktrueに設定して、オンライン証明書状態プロトコル(OCSP)による TLS 証明書の失効ステータスチェックを無効にします。通常の状況では、このフラグは設定しないでください。ただし、 OCSP の可用性の問題が解決しないときは、アプリケーションがこのパラメーターを一時的に設定して、接続の問題のブロックを解除し、 OCSP の可用性の問題が解決されたときに削除する場合があります。- :codenowrap:
DisableTelemetry インバンドテレメトリーハンドラーの切り替えを有効にするかどうかを指定します。このドライバー構成設定が:codenowrap:
trueに設定されている場合、テレメトリーハンドラーはドライバー内に作成されません。DriverManagerOverrideデフォルトでは、ドライバーは、使用するドライバーマネージャーを自動検出します。ただし、特定の状況でそれが必要な場合は、 ODBC ドライバーバージョン3.9.0以降では、この自動検出を無効にして、使用するドライバーマネージャーを手動で指定できます。
可能な値は UnixODBC と iODBC です。
DriverManagerOverrideが指定されていない場合、ドライバーは、ドライバー管理の自動検出を使用(バックトレース())して、ドライバーマネージャー情報を取得します。これがデフォルトの動作です。パラメーターはLinuxおよび MacOS でのみ動作します。
EnableAutoIpdByDefaultODBC ドライバーを構成するために
falseに設定して、 SQL_ATTR_ENABLE_AUTO_IPD をfalse(ODBC 標準のデフォルト値)に設定します。それ以外の場合、デフォルトでは、ODBC ドライバーはサードパーティツールとの互換性のために SQL_ATTR_ENABLE_AUTO_IPD をtrueに設定します。
このパラメーターは、ODBC ドライバーのバージョン2.22.0で導入されました。
EnablePidLogFileNamestrueに設定して、ログファイルの名前にプロセス ID を含めます。たとえば、プロセス ID が7394の場合、ログファイルには次の名前が付けられます。snowflake_odbc_connection_7394_0.logsnowflake_odbc_generic7394_0.logsnowflake_odbc_curl_7394.dmp
このパラメーターを設定して、異なるプロセスが同じログファイルを上書きしないようにすることができます。各プロセスは、独自のログファイルのセットを生成します。
デフォルトでは、このパラメーターの値は
falseです。このパラメーターは、 ODBC ドライバーのバージョン2.22.2で導入されました。
get_size_thresholdGET コマンドでファイルをダウンロードするときに、ファイルを小さな部分に分割する最小ファイルサイズをメガバイト(MB)単位で指定します。このしきい値より小さいサイズのファイルは、マルチパートダウンロードを使用しません。
デフォルトは 5 (MB)です。
注釈
対応する しきい値サイズ取得 接続パラメーターを設定すると、特定のケースでこの値を上書きできます。
KeepLeadingTrailingZeros文字列値としてフォーマットされた数値の先頭または後続のゼロの処理方法を決定します。デフォルトでは、パラメーターは
trueに設定されます。これは、ドライバーが先頭または後続のゼロを保持することを意味します。パラメーターをfalseに設定して、先頭または後続のゼロを削除します。たとえば、0.23は.23に変更7.00は7に変更
LogFileCount新しいログファイル用のスペースを確保するため、古いファイルをローテーションする前に、保持するログファイルの最大数を設定します。
LogFileSizeログファイルの最大サイズをバイト単位で指定します。ログファイルが指定されたサイズに達すると、 ODBC ドライバーは自動的に新しいログファイルを作成します。
デフォルトは 20971520 です。
LogLevelODBC ドライバーを使用するクライアントについて記録される詳細レベルを指定します。
0 = オフ
1 = 致命的
2 = エラー
3 = 警告
4 = 情報
5 = デバッグ
6 = トレース
LogPathODBC ドライバーを使用するクライアントのSnowflakeログファイルの場所を指定します。
MapToLongVarcharデフォルトの ODBC
SQL_CHARまたはSQL_VARCHARデータ型ではなく、 ODBCSQL_LONGVARCHARデータ型への文字列値のマッピングを開始する文字列の長さを指定します。< 0 (または設定解除): 文字列値をデフォルトの ODBC データ型にマップします。デフォルト = -1。
>= 0: デフォルトの ODBC 文字列データ型にマップする文字列文字の最大数を指定します。この値より大きいすべての文字列は、
SQL_LONGVARCHARにマップされます。
このパラメーターを接続パラメーターとして指定することもできます。(Windows、 macOS およびLinuxnai 内にあるパラメーターの設定の手順をご参照ください。)接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。
このパラメーターは、 ODBC ドライバーのバージョン2.24.3で導入されました。
NoExecuteInSQLPreparetrueに設定して、 ODBC ドライバーを構成し、 DDL ステートメント(CREATE や DROP など)をSQLPrepare()とSQLExecute()に渡すときに標準の ODBC 動作を使用します。Snowflakeでは、デフォルトで、 DDL ステートメントを
SQLPrepare()に渡すと、 ODBC ドライバーはデータソースにステートメントを送信して(準備ではなく)実行します。DDL ステートメントをSQLExecute()に渡すと、 ODBC ドライバーはステートメントをデータソースに送信しません。NoExecuteInSQLPrepareをtrueに設定すると、 ODBC ドライバーは標準の ODBC 動作に従います。SQLPrepare()を呼び出すと、ステートメントがデータソースに送信され、準備されます(実行はしない)。SQLExecute()を呼び出すと、ステートメントがデータソースに送信されて実行されます。このパラメーターは、ODBC ドライバーのバージョン2.21.6で導入されました。
NoProxyプロキシサーバーをバイパスするホスト名パターンを指定します(例:Amazon S3アクセスをバイパスするには、
.amazonaws.com)。注釈
Snowflake ODBC ドライバーは、
NoProxy値をカールオプションCURLOPT_NOPROXYに渡します。NoProxy値の形式については、 CURLOPT_NOPROXY の説明の をご参照ください。ProxyODBC ドライバーを使用するクライアント用に、プロキシサーバーを
<ホスト>:<ポート>の形式で指定します。注釈
Windowsでは、 ODBC ドライバーがインストールされると、
LogLevelおよびLogPathのエントリが作成され、デフォルト値が入力されます。ただし、インストール中にProxyのエントリは作成されません。ドライバーで使用するプロキシを指定するには、ドライバーレジストリキーにエントリを手動で追加する必要があります。1つ以上の IP アドレスまたは URLs のプロキシをバイパスするには、 NoProxy パラメーターを追加します。
- :codenowrap:
SSLVersion TLS ハンドシェイクを開始するときに使用する最小の SSL/TLS バージョンを指定します。これらの値は、libcurlの機能に対応しています。詳細については、 <https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_ で説明された
CURLOPT_SSLVERSION の:codenowrap:`CURL_SSLVERSION_*エントリをご参照ください。可能な値: TLSv1、 SSLv2、 SSLv3、 TLSv1_0、 TLSv1_1、 TLSv1_2、 TLSv1_3のいずれか(デフォルト: TLSv1_2)。
Snowflakeは、特に変更する必要がない場合は、この設定をデフォルトのままにすることをお勧めします。
- :codenowrap:
SSLVersionMax TLS ハンドシェイクを開始するときに使用する最大の SSL/TLS バージョンを指定します。これらの値は、libcurlの機能に対応しています。詳細については、 <https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_ で説明された
CURLOPT_SSLVERSION の:codenowrap:`CURL_SSLVERSION_MAX_*エントリをご参照ください。可能な値:TLSv1_0、 TLSv1_1、 TLSv1_2、 TLSv1_3のいずれか(デフォルト: TLSv1_3)。
Snowflakeは、特に変更する必要がない場合は、この設定をデフォルトのままにすることをお勧めします。
接続パラメーター¶
重要
Snowflakeバージョン8.24から、ネットワーク管理者は、Snowflakeへのすべての接続に多要素認証 (MFA) を要求するオプションがあります。管理者がこの機能を有効にすることを決定した場合、Snowflakeへの接続時に MFA を使用するようにクライアントまたはドライバを設定する必要があります。詳細については、次をご参照ください:
必須の接続パラメーター¶
<名前>(データソース)DSN の名前を指定します。
port(ポート)ドライバーがSnowflake通信をリッスンするポートを指定します。
注釈
443のデフォルトのPort値を変更する必要はありません。pwd(パスワード)Snowflakeに接続するにはパスワードが必要です。ただし、セキュリティおよび認証上の理由により、 DSN 定義内にパスワード認証情報を直接保存することを強くお勧めします。
通常、認証情報は、Snowflakeへの接続を試行しているクライアントアプリケーションによってプログラムでドライバーに渡されます。
注釈
Windowsでは、 ODBC ドライバーは Data Source Administration ツールの Password フィールドを表示します。ただし、ドライバーはフィールドに入力された値を保存 しません 。代わりに、ドライバーは接続時にログイン認証情報を提供する必要があります。
server(サーバー)アカウントの ホスト名 を次の形式で指定します。
account_identifier.snowflakecomputing.com使用するアカウント識別子を決定するには、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 を参照してください。
uid(ユーザー)認証するSnowflakeユーザーのログイン名を指定します。
オプションの接続パラメーター¶
BROWSER_RESPONSE_TIMEOUT外部ブラウザーで認証応答を待つ秒数を指定します。
デフォルトは120です。
CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<Boolean>アウトオブバンドテレメトリを有効にするかどうかを指定します。
デフォルトは
trueです
CLIENT_SESSION_KEEP_ALIVE=<Boolean>非アクティブな状態が一定時間続いた後、現在のセッションをアクティブのままにするか、ユーザーに再度ログインさせるかを指定します。値が
trueの場合、Snowflakeは、ユーザーからのアクティビティがない場合でも、セッションを無期限にアクティブに保ちます。値がfalseの場合、ユーザーは4時間の非アクティブ後に再度ログインする必要があります。デフォルトは
falseです。
database(データベース)ドライバーによって開始されたセッションに使用するデフォルトのデータベースを指定します。
disableSamlUrlCheckSAML URLs の検証を無効にするかどうかを指定します。デフォルトでは、ドライバーは SAML URLs を検証します。
デフォルトは
falseです。
maxHttpRetries(データベース)HTTP リクエストに失敗したクエリに対して、エラーを返すまでの HTTP の最大再試行回数を指定します。
maxHttpRetries=0に設定すると再試行制限が解除されますが、その場合は、失敗した HTTP 呼び出しをドライバーが無限に再試行する危険があります。デフォルト値は7です。
role(ロール)ドライバーによって開始されたセッションに使用する既定のロールを指定します。指定されたロールは、ドライバーの指定されたユーザーに割り当てられたロールでなければなりません。指定されたロールがユーザーに割り当てられたロールのいずれとも一致しない場合、ドライバーによって開始されたセッションには最初はロールがありません。ただし、ロールはセッション内からいつでも指定できます。
schema(スキーマ)ドライバーによって開始されたセッションに使用するデフォルトのスキーマを指定します。
デフォルトは
publicです。
SecondaryRoles(ロール)ドライバーによって開始されたセッションに使用するセカンダリロールを指定します。ロールは、ドライバーの指定されたユーザーにすでに付与されている必要があります。セカンダリロールは、
USE SECONDARY ROLESコマンドを使用して、ユーザーセッション内からアクティブ化することもできます。可能な値は次のとおりです。
すべて: ユーザーに付与されたすべてのロール。
なし: ロールの許可なし(セカンダリロールを無効化)。
tracing(トレース)ドライバートレースファイルに記録される詳細レベル:
0 = トレースの無効化
1 = 致命的なエラーのみトレース
2 = エラートレース
3 = 警告トレース
4 = 情報トレース
5 = デバッグトレース
6 =詳細トレース
warehouse(ウェアハウス)ドライバーによって開始されたセッションに使用するデフォルトのウェアハウスを指定します。
Certificate revocation list (CRL) options¶
These options are available in driver versions 3.13.0 and later.
CRL_CHECKSpecifies whether to enable or disable CRL checking. When set to
true, the driver checks the CRL to verify the server certificate has not been revoked. The connection fails if the server's certificate is revoked or another revocation check issue (such as downloading or parsing) occurs.デフォルトは
falseです。
CRL_ADVISORYModifies the CRL connection checking to fail only when the certificate is revoked explicitly. When any other problem (such as parsing errors or download errors) is present, the connection is allowed.
デフォルトは
falseです。
CRL_ALLOW_NO_CRLSpecifies whether to allow connections when no CRL is found. When set to
true, the driver allows connections when no CRL is found.デフォルトは
falseです。
CRL_DISK_CACHINGSpecifies whether to enable or disable disk caching of CRLs. When set to
true, the driver caches CRLs on disk, which reduces the time spent re-downloading the certificate distribution lists.The driver stores the cached CRLs in the following directories:
MacOS:
$HOME/Library/Caches/Snowflake/crlsLinux:
$HOME/.cache/snowflake/crlsWindows:
%LOCALAPPDATA%SnowflakeCachescrls
Default is
true.You can override the default disk cache location by setting the
SF_CRL_RESPONSE_CACHE_DIRenvironment variable.
CRL_MEMORY_CACHINGSpecifies whether to enable or disable memory caching of CRLs. When set to
true, the driver caches CRLs in memory.Default is
true.
CRL_DOWNLOAD_TIMEOUTSpecifies the timeout, in seconds, for downloading CRLs. If the download does not complete within the specified time, the connection fails.
Default is 120 (seconds).
追加の接続パラメーター¶
注釈
Windowsでは、これらの追加の接続パラメーターは、Windowsレジストリで(regedit を使用して)設定できます。
macOS またはLinuxでは、他の接続パラメーターと同様に、 odbc.ini ファイルで設定します。
allowEmptyProxy以下のセクションで説明するように、 proxy と no_proxy 接続パラメーターに空の値を許可するかどうかを指定します。
この値を設定すると、以下のような効果が得られます。
true: ドライバーは空のプロキシ値を有効なプロキシ設定として扱い、既存の設定や環境変数を上書きします。false: ドライバーは空のプロキシ値を無視し、指定された構成パラメータまたは環境変数を使用します。
デフォルトは
trueです。applicationSnowflakeパートナーによる使用のみ : ODBC を介して接続するパートナーアプリケーションの名前を指定します。
このパラメーターは、
SQLSetConnectAttr()関数を呼び出すことでも設定できます。詳細については、 Snowflake固有のSQLSetConnectAttr 関数の動作 をご参照ください。authenticatorユーザーのログイン認証情報の確認に使用する認証方式を指定します。
snowflake(デフォルト)は、内部Snowflake認証方式を使用します。externalbrowserから 自分のウェブブラウザーを使用 して、Okta、AD FS、またはアカウントのために定義されている他の SAML 2.0準拠の識別プロバイダー(IdP)を認証します。注釈
Snowflake ODBC ドライバーは、Microsoft Excelと MacOS を使用した
externalbrowser認証をサポートしていません。https://<okta_account_name>.okta.com(つまり、ご使用のOktaの URL エンドポイント)から ネイティブOktaを介して認証 します(IdP がOktaの場合にのみサポート)。OAuthを使用して認証する
oauth。OAuth が認証コードとして指定されている場合は、 OAuth トークンを指定するためにtokenパラメーターも設定する必要があります( 以下を参照)。username_password_mfaは MFA トークンキャッシングで認証します。詳細については、 多要素認証の使用 (このトピック内)をご参照ください。oauth_authorization_codeWebブラウザーと選択したIDプロバイダー(IdP としてSnowflakeを含む)で、 OAuth 認証コードを使用して手動で認証します。詳細については、 OAuth 2.0 認証コードフローの使用 をご参照ください。oauth_client_credentials選択したIDプロバイダーで OAuth クライアント認証を使用して自動的に認証します(Snowflakeは IdP として、クライアント認証フローをサポートしていません)。詳細については、 OAuth 2.0 クライアント認証フローの使用 をご参照ください。programmatic_access_tokenは、プログラムアクセストークン(PAT)で認証します。ワークロードIDフェデレーション(WIF) 認証コードで認証するための:codenowrap:
workload_identity。
デフォルトは
snowflakeです。Windowsでは、 ODBC データソース管理ツール を使用してこのパラメーターを設定できます。
認証の詳細については、 フェデレーション認証の管理/使用 および クライアント、ドライバー、およびコネクタ をご参照ください。
default_binary_size、 .default_varchar_sizeサイズが不明な BINARY または VARCHAR 列から値を取得および変換するときに、ドライバーが使用するデフォルトサイズをバイト単位で指定します。これらの型の列から値を取得するときにこれを設定します。
デフォルトでは、ドライバーは、サイズが決定されていない列の値を取得するためにメモリを割り当てるときに、デフォルトのサイズとして
67108864(BINARY 列の場合)および134217728(VARCHAR 列の場合)を使用します。これらの値に割り当てられるメモリの量を減らすために、
default_binary_sizeとdefault_varchar_sizeをこれらの型の列にある値の最大サイズに設定できます。注釈
これらの値を設定すると、実装行記述子(IRD)の
SQL_DESC_LENGTHフィールドと、SQLDescribeCol/SQLColAttribute/SQLColAttributesから返される対応する値のみが変更されます。長さが設定を超えても、ドライバーはデータ全体を返します。一方、アプリケーションは、これらのパラメーターで指定された長さに基づいてデータバッファーを割り当てることができ、バッファー内のスペースが不足していると、データが切り捨てられる可能性があります。ベストプラクティスとして、Snowflakeは、メモリの使用量を大幅に削減し、データ切り捨ての可能性を最小化するため、元のデフォルト値の134217728/67108864バイトの代わりに、通常のデータの最大サイズ(例:4000または8000バイト)よりも大きめのデフォルトサイズに設定することをお勧めします。
これらの設定を使用して、SnowflakeデータベースでMicrosoft OLE DB プロバイダー(MSDASQL)を使用するときに発生する可能性がある、次のエラーを回避することもできます。
Requested conversion is not supported Cannot get the current row value of column
これらのパラメーターは、接続 構成パラメーター として指定できます(たとえば、 macOS およびLinux の
simba.snowflake.iniにおいて)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。これらのパラメーターは、 ODBC ドライバーのバージョン2.23.2で導入されました。
get_size_thresholdGET コマンドでファイルをダウンロードするときに、ファイルを小さな部分に分割する最小ファイルサイズをメガバイト(MB)単位で指定します。このしきい値より小さいサイズのファイルは、マルチパートダウンロードを使用しません。
デフォルトは 5 (MB)です。
注釈
この値を接続パラメーターとして設定すると、対応する しきい値サイズ取得 構成パラメーターの値が上書きされます。
login_timeoutログイン失敗エラーを返す前に、Snowflakeサービスに接続する際の応答を待機する時間を秒単位で指定します。
デフォルトは 300 (秒)です。
network_timeoutSnowflakeサービスと対話するときにエラーを返すまでの応答を待機する時間を秒単位で指定します。ゼロ(0)は、ネットワークタイムアウトが設定されていないことを示します。
デフォルトは 0 (秒)です。
retryTimeout失敗した HTTP リクエストのあるクエリから HTTP の再試行エラーを返すまでの待機時間を秒単位で指定します。ゼロ(0)は、再試行タイムアウトが設定されていないことを示します。
デフォルトは 300 (秒)です。
no_proxyプロキシサーバーのバイパスを許可するホスト名の末尾を指定します(例:
no_proxy=.amazonaws.comは、Amazon S3アクセスがプロキシを通過する必要がないことを意味)。このパラメーターはワイルドカードをサポートしていません。指定する各値は、次のいずれかである必要があります。
ホスト名の末尾(または完全なホスト名)。例:
.amazonaws.com
myorganization-myaccount.snowflakecomputing.com
IP アドレス。例:
192.196.1.15
複数の値を指定する場合、値はコンマで区切る必要があります。次に例を示します。
no_proxy=localhost,.example.com,myorganization-myaccount.snowflakecomputing.com,192.168.1.15,192.168.1.16
注釈
このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。
odbc_use_standard_timestamp_columnsizeこのブール値パラメーターは、 SQL_TYPE_TIMESTAMPに対して返される列サイズ(文字数)に影響します。このパラメーターをtrueに設定すると、ドライバーは ODBC 標準に従って29を返します。このパラメーターを
falseに設定すると、ドライバーは35を返します。これにより、タイムゾーンオフセット用のスペースが許可されます(例: 「-08:00」)。この値は、odbc.iniファイル(LinuxまたはmacOS)またはMicrosoft Windowsレジストリだけでなく、接続文字列経由でも設定できます。
デフォルトは
falseです。passcode多要素認証に使用するパスコードを指定します。
多要素認証の詳細については、 多要素認証(MFA) をご参照ください。
passcodeInPassword多要素認証のパスコードをパスワードに追加するかどうかを指定します。
on(またはtrue)は、パスコードが追加されることを指定します。off(またはfalse)またはその他の値は、パスコードが追加されないことを指定します。
デフォルト値は
offです。
proxyODBC からのすべての通信がプロキシサーバーを使用するように、プロキシサーバー URL を
http://<ホスト名>:<ポート>/または<ホスト名>:<ポート番号>の形式で指定します。注釈
このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。
put_compresslvODBC ドライバーが PUT コマンドによりデータを転送するときに使用する圧縮率を指定します。このパラメーターは、デフォルトのgzip圧縮レベルを上書きします。
put_compresslvを指定しない場合、 ODBC ドライバーはデフォルトの圧縮レベルを使用します。有効な値は、
-1から9です。デフォルト値は-1で、デフォルトのZ_DEFAULT_COMPRESSIONを指定します。値
0から9は、カスタム圧縮率を指定します。0により、 ODBC ドライバーはより低い圧縮率を使用し、9はより高い圧縮率を使用します。より高い圧縮率を使用すると、データ転送速度が遅くなります。このパラメーターは、 構成パラメーター として指定することもできます(例: macOS およびLinux の
simba.snowflake.ini内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。このパラメーターは、 ODBC ドライバーのバージョン2.23.3で導入されました。
put_fastfailPUT コマンドとワイルドカード文字を使用して一度に複数のファイルをアップロードし、エラーが発生したときにドライバーがファイルのアップロードを停止するようにする場合は、これを
trueに設定します。デフォルト値は
falseです。これは、1つのファイルでエラーが発生した場合、ドライバーは残りのファイルのアップロードを続行することを意味します。このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。
ODBC ドライバーのバージョン2.22.5では、このパラメーターを 構成パラメーター として指定することもできます(たとえば、 macOS およびLinux の
simba.snowflake.ini内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。
put_maxretriesコマンドが失敗した場合に、ドライバーが PUT コマンドを再試行する回数を指定します。
デフォルト値は 5 です。
このパラメーターの有効な値の範囲は
0から100です。この範囲外の値を指定すると、ドライバーはデフォルト値の5を使用します。このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。
ODBC ドライバーのバージョン2.22.5では、このパラメーターを 構成パラメーター として指定することもできます(たとえば、 macOS およびLinux の
simba.snowflake.ini内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。
put_tempdirPUT コマンドリクエストに使用する一時ディレクトリを指定します。ドライバーは、この一時ディレクトリを使用して一時圧縮ファイルを作成してから、それらのファイルをSnowflakeにアップロードします。
このパラメーターが設定されていない場合、ドライバーは、一時ディレクトリ
/tmp/snowflakeTmp_usernameを作成して使用します。ここで、usernameは、オペレーティングシステムにおける現在のユーザーのユーザー名です。このパラメーターは、 構成パラメーター として指定することもできます(例: macOS およびLinux の
simba.snowflake.ini内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。このパラメーターは、 ODBC ドライバーのバージョン2.23.1で導入されました。
token=<文字列>OAuth または PAT 認証のトークンを指定します。
<string>がトークンです。このパラメーターは、authenticator=oauthまたはauthenticator=programmatic_access_tokenのパラメーターが設定されている場合にのみ必要です。デフォルトはありません。
query_timeoutエラーを返す前に、クエリが完了するまで待機する時間を秒単位で指定します。ゼロ(0)は無期限に待機することを示します。
デフォルトは 0 (秒)です。
validateSessionParam次の セッション接続パラメーター のいずれかが無効な場合の応答方法を指定します。
enable_connection_diagコネクタが接続診断レポートを生成するかどうかを指定します。
デフォルトは
falseです。connection_diag_log_path接続レポートが保存される絶対パスを指定します。
enable_connection_diagがtrueの場合にのみ有効です。例:
connection_diag_log_path=C:\\reportsconnection_diag_allowlist_pathSYSTEM$ALLOWLIST()またはSYSTEM$ALLOWLIST_PRIVATELINK()の出力を含む JSON ファイルへの絶対パスを指定します。enable_connection_diagがtrueの場合にのみ有効です。例:
connection_diag_log_path=C:\\allowlist.jsonOAUTH_CLIENT_IDIDプロバイダーがSnowflake統合用に提供する
client idの値(Snowflakeセキュリティ統合メタデータ)。デフォルト:
LOCAL_APPLICATION。OAUTH_CLIENT_SECRETIDプロバイダーがSnowflake統合用に提供する
client secretの値(Snowflakeセキュリティ統合メタデータ)。デフォルト:
LOCAL_APPLICATION。OAUTH_AUTHORIZATION_URL認証コードをドライバーに提供する ID プロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は
serverまたはaccountパラメーターから取得されます。OAUTH_TOKEN_REQUEST_URLドライバーにアクセストークンを供給する ID プロバイダーのエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は
serverまたはaccountパラメーターから取得されます。OAUTH_SCOPEID プロバイダー承認リクエストで要求された範囲。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。
OAUTH_REDIRECT_URI認証コードリダイレクトに使用する URI (Snowflakeセキュリティ統合メタデータ)。デフォルト:
http://127.0.0.1:{randomAvailablePort}。- :codenowrap:
WORKLOAD_IDENTITY_PROVIDER ワークロードIDプロバイダーのプラットフォーム。可能な値は次のとおりです。
AWS、AZURE、GCPおよび:codenowrap:OIDC。PRIV_KEY_BASE64Base64でエンコードされたプライベートキー。
- :codenowrap:
PRIV_KEY_PWD Base64でエンコードされたプライベートキーのパスワード。
connections.toml ファイルを使用した接続¶
ODBC により、 connections.toml 構成ファイルに接続定義を追加できます。接続定義とは、接続に関連するパラメーターのコレクションのことです。ドライバは現在、 TOML バージョン1.0.0 をサポートしています。
toml ファイルフォーマットの詳細については、 TOML (Tom's Obvious Minimal Language) をご参照ください。
Driver パラメーターのみを含む接続文字列は、、定義済みの(デフォルトの)ファイルから接続設定を探すようドライバーに指示します。ODBC ドライバは、 connections.toml ファイルを以下の場所で順に探します。
マシンに
~/.snowflakeディレクトリが存在する場合、 ODBC は~/.snowflake/connections.tomlファイルを使用します。SNOWFLAKE_HOME環境変数で指定された場所。そうでない場合、 ODBC はオペレーティングシステムに応じて、次のいずれかの場所にある
connections.tomlファイルを使用します。Linux:
~/.config/snowflake/connections.toml、ただし、 XDG 変数で更新可Windows:
%USERPROFILE%\AppData\Local\snowflake\connections.tomlMac:
~/Library/Application Support/snowflake/connections.toml
Snowsight で TOML 構成ファイルの基本設定を生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。
既存の複数の接続を切り替える場合は、 connections.toml ファイルで設定できます。デフォルトのキーは default ですが、 SNOWFLAKE_DEFAULT_CONNECTION_NAME シェル環境変数を設定することで、デフォルトの接続名を変更できます。
以下のサンプル・ファイル(connections.toml)では、2つの接続を定義しています。
[default]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
[aws-oauth-file]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
authenticator = 'oauth'
token_file_path = '/Users/test/.snowflake/token'
接続文字列のパラメーター指定¶
接続パラメーター は、接続文字列の名前と値のペアとして指定できます。各パラメーターと値の間には等号 (=) を使用し、パラメーター間にはセミコロン (;) を使用します。例:
driver={SnowflakeDSIIDriver};server=myorganization-myaccount.snowflakecomputing.com;uid=myloginname;pwd=mypassword;database=mydatabase;schema=myschema;warehouse=mywarehouse;role=myrole;...
Snowsight で基本接続文字列を生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。
SnowCD を使用したSnowflakeへのネットワーク接続の確認¶
ドライバーを設定したら、 SnowCD を使用して、Snowflakeへのネットワーク接続を評価およびトラブルシューティングできます。
初期設定プロセス中にオンデマンドで SnowCD をいつでも使用して、Snowflakeへのネットワーク接続を評価およびトラブルシューティングできます。
プロキシサーバー経由での接続¶
プロキシサーバー接続を構成する手順は、オペレーティングシステムとドライバーのバージョンによって異なります。
オペレーティングシステム |
ドライバーのバージョン |
サポートされている手順 |
|---|---|---|
Linux |
2.16.0(2018年5月3日リリース)またはそれ以上 |
|
2.13.18(2018年2月7日リリース)~2.15.0(2018年4月30日リリース) |
||
2.13.17またはそれ以下 |
||
macOS |
2.16.0(2018年5月3日リリース)またはそれ以上 |
|
2.14.0(2018年3月28日リリース)~2.15.0(2018年4月30日リリース) |
||
2.13.21またはそれ以下 |
||
Windows |
2.16.0(2018年5月3日リリース)またはそれ以上 |
|
2.15.0(2018年4月30日リリース) |
||
2.14.0またはそれ以下 |
注釈
上記の ODBC ドライバーの最新バージョンは、リストされている構成オプションのいずれかをサポートしています。オプションは優先順にリストされています。複数のオプションが定義されている場合、優先順位が最も高い設定が適用されます。
接続パラメーターの使用¶
プロキシサーバー経由で接続するには、次の接続パラメーターを DSN に追加します。
proxyno_proxy
例:
[connection] Description = SnowflakeDB Driver = SnowflakeDSIIDriver Locale = en-US server = myorganization-myaccount.snowflakecomputing.com proxy = http://proxyserver.company:80 no_proxy = .amazonaws.com
パラメーターの説明については、 接続パラメーター をご参照ください。
構成パラメーターの使用¶
プロキシサーバー経由で接続するには、次の構成パラメーターを追加します。
ProxyNoProxy
パラメーターの説明については、 構成パラメーター をご参照ください。
環境変数の使用¶
プロキシサーバー経由で接続するには、次の環境変数を構成します。
http_proxyhttps_proxyno_proxy
注釈
これらの環境変数は、Linuxおよび macOSで大文字と小文字が区別されるため、小文字で設定する必要があります。Windowsの場合、環境変数は大文字と小文字を区別しません。
例:
Linuxまたは macOS:
export http_proxy=http://proxyserver.example.com:80 export https_proxy=http://proxyserver.example.com:80
プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、
export https_proxy=http://username:password@proxyserver.example.com:80
Windows:
set http_proxy=http://proxyserver.example.com:80 set https_proxy=http://proxyserver.example.com:80
プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、
set https_proxy=http://username:password@proxyserver.example.com:80
オプション: 特定の通信でプロキシをバイパスするには、 no_proxy をセットします(たとえば、Amazon S3 アクセスをバイパスするには、 no_proxy=.amazonaws.com を使用します)。
認証でのシングルサインオン(SSO)の使用¶
シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合、認証に SSO を使用するようにクライアントアプリケーションを構成できます。詳細については Snowflakeに接続するクライアントアプリケーションでの SSO の使用 をご参照ください。
多要素認証の使用¶
Snowflakeは、 MFA トークンキャッシングと SSO の組み合わせを含む、 MFA トークンのキャッシングをサポートしています。
詳細については、 MFA トークンキャッシングを使用して認証中のプロンプトの数を最小限に抑える --- オプション をご参照ください。
キーペア認証の使用¶
ODBC ドライバーは、キーペア認証とキーローテーションをサポートします。
開始するには、 キーペア認証とキーペアローテーション に示すように、キーペア認証の初期構成を完了します。
ドライバーのデータソース名(DSN)エントリを変更します。DSN エントリの詳細については、ご使用のオペレーティングシステムに該当するトピックをご参照ください。
次の(大文字と小文字を区別する)パラメーターを追加します。
AUTHENTICATOR = SNOWFLAKE_JWTJSON Webトークン(JWT)でのキーペア認証を使用してSnowflake接続を認証するように指定します。
JWT_TIME_OUT = integerオプション。Snowflakeがタイムアウトになるまで JWT の受信を待機する時間の長さ(秒単位)を指定します。その場合、認証は失敗し、ドライバーは
Invalid JWT tokenエラーを返します。エラーの繰り返し発生を解決するには、パラメーター値を増やします。デフォルト:30PRIV_KEY_FILE = path/rsa_key.p8作成した秘密キーファイル(つまり、
rsa_key.p8)へのローカルパスを指定します。DSN に設定された値は、
SQLSetConnectAttr()関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。PRIV_KEY_FILE_PWD = <password>秘密キーファイルをデコードするパスコードを指定します。
このパラメーターは、パラメーター PRIV_KEY_FILE も設定されている場合にのみ設定する必要があります。
DSN に設定された値は、
SQLSetConnectAttr()関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。
設定を保存します。
OAuth 2.0 クライアント認証フローの使用¶
OAuth 2.0クライアント認証情報フローは、Python用Snowflake Connectorがバックエンドサービスに接続するような、マシン間(M2M)認証のためのセキュアな方法を提供します。OAuth 2.0認証コードフローとは異なり、このメソッドはユーザー固有のデータに依存しません。
OAuth 2.0 クライアント認証フローを有効にするには:
codenowrap:
authenticator接続パラメーターをoauth_client_credentialsに設定します。以下の OAuth 接続パラメーターをセットします。
OAUTH_CLIENT_ID: IDプロバイダーがSnowflake統合用に提供するclient idの値(Snowflakeセキュリティ統合メタデータ)。OAUTH_CLIENT_SECRET: IDプロバイダーがSnowflake統合用に提供するclient secretの値(Snowflakeセキュリティ統合メタデータ)OAUTH_TOKEN_REQUEST_URL: ドライバーにアクセストークンを供給するIDプロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値はserverまたはaccountパラメーターから取得されます。OAUTH_SCOPE: IDプロバイダーの認可リクエストで要求されたスコープ。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。
プログラムアクセストークンによる認証コード (PAT)¶
プログラムアクセストークン(PAT)は、Snowflake固有の認証方法です。この機能は使用前にアカウントで有効にする必要があります(詳細は 前提条件 を参照してください)。PAT での認証コードには、人とのやりとりは一切ありません。
ワークロードIDフェデレーション(WIF)による認証¶
ワークロードIDフェデレーション は、Snowflakeのサービス間の認証方法を提供します。この方法により、アプリケーション、サービス、コンテナは、 AWSIAM、Microsoft Entra ID またはGoogle CloudサービスアカウントのようなクラウドプロバイダーのネイティブIDシステムを活用して、Snowflakeで認証することができます。このアプローチでは、長期間有効な認証情報を管理する必要がなくなり、外部 OAuth のような他の方法と比較して、認証情報の取得が簡素化されます。Snowflakeコネクタは、プラットフォームのIDプロバイダーから有効期間が短い認証情報を自動的に取得するように設計されています。
ワークロードIDフェデレーション認証コードを有効にするには、以下を実行します。
ログファイルの管理¶
発生する可能性のある問題を追跡するために、 ODBC ドライバーへのログインを有効にすることができます。ODBC ドライバーは、ログの設定とログファイルの管理に使用できる次の構成オプションを提供します。
EnablePidLogFileNames: プロセス ID をログファイルの名前に追加します。
LogFileCount: 保存するログファイルの最大数を設定します。
LogFileSize: ログファイルの最大サイズを指定します。
LogLevel: ログに記録する情報のタイプを指定します。
LogPath: ログファイルの場所を設定します。
これらのパラメーターを使用して、ログファイルの名前付け、格納、およびローテーションの方法を管理できます。新しく作成されたログファイルに置き換える前に、保持するログファイルのサイズと数を指定できます。次の例では、プロセス ID をファイル名に追加して一意性を確保し、最大ファイルサイズを 30MB に設定し、100個の最新のログファイルを保持します。
EnablePidLogFileNames = true # Appends the process ID to each log file
LogFileSize = 30,145,728 # Sets log files size to 30MB
LogFileCount = 100 # Saves the 100 most recent log files
ログ構成ファイル¶
あるいは、 sf_client_config.json 構成ファイルでログレベルとログファイルを保存するディレクトリを簡単に指定することもできます。
注釈
このログ構成ファイル機能は、以下のログレベルのみをサポートします。
DEBUG
ERROR
INFO
OFF
TRACE
WARNING
FATAL
この構成ファイルは、 JSON を使用して、 log_level と log_path のログパラメーターを以下のように定義します。
{
"common": {
"log_level": "DEBUG",
"log_path": "/home/user/logs"
}
}
ドライバーは、以下の順序で構成ファイルの場所を検索します。
client_config_fileには構成ファイルへの完全なパスが含まれます。SF_CLIENT_CONFIG_FILE環境変数。構成ファイルへの完全なパスが含まれます。ODBC ドライバーのインストールディレクトリ。ファイル名は
sf_client_config.jsonにする必要があります。ユーザーのホームディレクトリ。ファイル名は
sf_client_config.jsonにする必要があります。
注釈
sf_client_config.jsonファイルで定義された値よりも、LogLevelとLogPathの値が優先されます。client_config_file接続パラメーターまたはSF_CLIENT_CONFIG_FILE環境変数で指定された構成ファイルが見つからないか、読み取れない場合、ドライバーはエラーメッセージをスローします。
OCSP コネクタまたはドライバーバージョンの確認¶
Snowflakeは、Snowflakeへの接続の際、 OCSP を使用して証明書チェーンを評価します。ドライバーまたはコネクタのバージョンとその構成により、 OCSP の動作が決まります。ドライバーまたはコネクタのバージョン、それらの構成、および OCSP の動作の詳細については、 OCSP 設定 をご参照ください。
OCSP 応答キャッシュサーバー¶
注釈
OCSP 応答キャッシュサーバーは現在、Snowflake ODBC ドライバー2.15.0以上でサポートされています。
Snowflakeクライアントは、実際にデータを転送する前に安全な接続を確立する「ハンドシェイク」を使用して、Snowflakeサービスエンドポイントへのすべての接続を開始します。ハンドシェイクの一部として、クライアントはサービスエンドポイントの TLS 証明書を認証します。証明書の失効ステータスは、 CA (認証機関)の OCSP (オンライン証明書ステータスプロトコル)サーバーの1つにクライアント証明書リクエストを送信することにより確認されます。
OCSP サーバーからの応答が妥当な時間を超えて遅延すると、接続エラーが発生します。次のキャッシュは失効ステータスを保持し、これらの問題の軽減に役立ちます。
プロセスの存続期間中保持されるメモリキャッシュ。
ファイルキャッシュ。キャッシュディレクトリ(例:
~/.cache/snowflakeまたは~/.snowsql/ocsp_response_cache)が削除されるまで保持します。Snowflake OCSP 応答キャッシュサーバー。CA の OCSP サーバーから OCSP 応答を1時間ごとに取得し、24時間保存します。クライアントは、このサーバーキャッシュから特定のSnowflake証明書の検証ステータスをリクエストできます。
重要
サーバーポリシーでほとんどまたはすべての外部 IP アドレスおよびウェブサイトへのアクセスが拒否された場合、通常のサービス操作を許可するには、キャッシュサーバーアドレスを許可リストに登録することが 必須 です。キャッシュサーバーのホスト名は
ocsp*.snowflakecomputing.com:80です。何らかの理由でキャッシュサーバーを無効化する必要がある場合は、
SF_OCSP_RESPONSE_CACHE_SERVER_ENABLED環境変数をfalseに設定します。値は大文字と小文字が区別され、小文字にする 必要がある ことに注意してください。
キャッシュレイヤーに OCSP 応答が含まれていない場合、クライアントは CAの OCSP サーバーから検証ステータスを直接取得しようとします。