CREATE EXTERNAL DATA SOURCE (Transact-SQL) の CONNECTION_OPTIONS

この記事では、プロバイダーによって異なる CONNECTION_OPTIONS の詳細について説明します。 CREATE EXTERNAL DATA SOURCE の CONNECTION_OPTIONS 引数は、外部のデータ プロバイダーによって異なる場合があります。

CREATE EXTERNAL DATA SOURCE の CONNECTION_OPTIONS 引数は、SQL Server 2019 (15.x) で初めて導入されました。 このドキュメントは、Windows および Linux 用の SQL Server 2019 (15.x) と、SQL Server 2019 ビッグ データ クラスターに適用されます。

  • key_value_pair は、キーワードであり、特定の接続オプションの値です。
  • 複数の接続オプションを使用するには、セミコロンで区切ります。
  • 使えるキーと値のペアは、ドライバーに固有です。

この記事の残りの部分では、ベンダー固有の接続オプションを示します。

SQL Server の外部データ ソース

キーと値のペアとして指定できるのは、「DSN と接続文字列のキーワードと属性」の「DSN / 接続文字列のキーワード」列にエントリがあるもののみです。 たとえば、SQL_ATTR_TXN_ISOLATION キーワードは、接続文字列内ではなく、SQLSetConnectAttr を使用して設定される属性なので、サポートされていません。

Microsoft OLE DB プロバイダーの接続文字列キーワードとオプション:

Microsoft ODBC DB プロバイダーの接続文字列キーワードとオプション:

Oracle

キーと値のペアとして指定できるのは、以下に示す Oracle ワイヤ プロトコルの表にエントリがあるもののみです。

属性 (短縮名) Default
AccountingInfo (AI) なし
Action (ACT) なし
AlternateServers (ASRV) なし
AllowedOpenSSLVersions (AOV) latest
ApplicationName (AN) なし
ApplicationUsingThreads (AUT) 1 (有効)
ArraySize (AS) 60000
AuthenticationMethod (AM) 1 (Encrypt Password)
BatchFailureReturnsError (BFRE) 0 (無効)
BindParamsAsUnicode (BPAU) 0 (無効)
BulkBinaryThreshold (BBT) 32
BulkCharacterThreshold (BCT) -1
BulkLoadBatchSize (BLBS) 1024
BulkLoadFieldDelimiter (BLFD) なし
BulkLoadOptions (BLO) 0
BulkLoadRecordDelimiter (BLRD) なし
CachedCursorLimit (CCL) 32
CachedDescriptionLimit (CDL) 0
CatalogIncludesSynonyms (CIS) 1 (有効)
CatalogOptions (CO) 0 (無効)
ClientHostName (CHN) なし
ClientID (CID) なし
ClientUser (CU) なし
ConnectionReset (CR) 0 (無効)
ConnectionRetryCount (CRC) 0
ConnectionRetryDelay (CRD) 3
CredentialsWalletEntry (CWE) なし
CredentialsWalletPassword (CWPWD) なし
CredentialsWalletPath (CWPATH) なし
CryptoProtocolVersion (CPV) TLSv1.2、TLSv1.1、TLSv1
CryptoLibName (CLN) 空の文字列
DataIntegrityLevel (DIL) 1 (承認済み)
DataIntegrityTypes (DIT) MD5、SHA1、SHA256、SHA384、SHA512
DataSourceName (DSN) なし
DefaultLongDataBuffLen (DLDBL) 1024
DescribeAtPrepare (DAP) 0 (無効)
Description (該当なし) なし
EditionName (EN) なし
EnableBulkLoad (EBL) 0 (無効)
EnableDescribeParam (EDP) 0 (無効)
EnableNcharSupport (ENS) (非推奨) なし
EnableScrollableCursors (ESC) 1 (有効)
EnableServerResultCache (ESRC) 0 (無効)
EnableStaticCursorsForLongData (ESCLD) 0 (無効)
EnableTimestampwithTimezone (ETWT) (非推奨) なし
EncryptionLevel (EL) 1 (承認済み)
EncryptionMethod (EM) 0 (暗号化なし)
EncryptionTypes (ET) 暗号化方法は指定されません。 ドライバーから Oracle サーバーに、すべての暗号化方法の一覧が送信されます。
FailoverGranularity (FG) 0 (非アトミック)
FailoverMode (FM) 0 (接続)
FailoverPreconnect (FP) 0 (無効)
FetchTSWTZasTimestamp (FTSWTZAT) 0 (無効)
GSSClient (GSSC) native
HostName (HOST) なし
HostNameInCertificate (HNIC) なし
IANAAppCodePage (IACP) (UNIX および Linux のみ) 4 (ISO 8559-1 Latin-1)
ImpersonateUser (IU) なし
InitializationString (IS) なし
KeepAlive (KA) 0 (無効)
KeyPassword (KP) なし
Keystore (KS) なし
KeystorePassword (KSP) なし
LDAPDistinguishedName (LDAPDN) なし
LoadBalanceTimeout (LBT) 0
LoadBalancing (LB) 0 (無効)
LOBPrefetchSize (LPS) 4000
LocalTimezoneOffset (LTZO) "" (空の文字列)
LockTimeout (LTO) -1
LoginTimeout (LT) 15
LogonID (UID) なし
MaxPoolSize (MXPS) 100
MinPoolSize (MNPS) 0
Module (MOD) なし
Password (PWD) なし
Pooling (POOL) 0 (無効)
PortNumber (PORT) なし
PRNGSeedFile (PSF) (UNIX および Linux のみ) /dev/random
PRNGSeedSource (PSS) (UNIX および Linux のみ) 0 (ファイル)
ProcedureRetResults (PRR) 0 (無効)
ProgramID (PID) なし
ProxyHost (PXHN) 空の文字列
ProxyMode (PXM) 0 (なし)
ProxyPassword (PXPW) 空の文字列
ProxyPort (PXPT) 0
ProxyUser (PXU) 空の文字列
QueryTimeout (QT) 0
ReportCodepageConversionErrors (RCCE) 0 (エラーを無視する)
ReportRecycleBin (RRB) 0 (無効)
SDUSize (SDU) 16384
ServerName (SRVR) なし
ServerType (ST) 0 (サーバーの既定値)
ServiceName (SN) [なし] : SID、Service Name、TNSNames のいずれのオプションにも値が指定されていない場合、ドライバーは既定で ORCL SID への接続を試みます。
SID (SID) [なし] : SID、Service Name、TNSNames のいずれのオプションにも値が指定されていない場合、ドライバーは既定で ORCL SID への接続を試みます。
SSLLibName (SLN) 空の文字列
SupportBinaryXML (SBX) 0 (無効)
TimestampEscapeMapping (TEM) 0 (Oracle バージョン固有)
TNSNamesFile (TNF) [なし] : SID、Service Name、TNSNames のいずれのオプションにも値が指定されていない場合、ドライバーは既定で ORCL SID への接続を試みます。
Truststore (TS) なし
TruststorePassword (TSP) なし
UseCurrentSchema (UCS) 1 (有効)
UseDefaultEncryptionOptions 1 (有効)
ValidateServerCertificate (VSC) 1 (有効)
WireProtocolMode (WPM) 2

Teradata

キーと値のペアとして指定できるのは、Teradata のコネクタ構成オプションのページに記載されているコネクタ構成オプションにエントリがあるもののみです。

Cosmos DB 用 MongoDB API

キーと値のペアとして指定できるのは、以下のドライバー構成オプションにエントリがあるもののみです。

キー名 Default 必須 説明
DefaultStringColumnLength 255 いいえ STRING 列に含めることができる最大文字数です。 このオプションに設定できる最大値は 2147483647 です。
noCursorTimeout False いいえ このオプションでは、データ ソース サーバー上のアクティブ カーソルを期限切れにすることをドライバーで許可するかどうかを指定します。 FALSE の場合、データ ソース サーバーは、アイドル状態のカーソルがそのサーバーで設定された非アクティブ期間のしきい値を超えた場合に、そのカーソルをタイムアウトします。 TRUE に設定した場合、ドライバーは、アイドル状態のカーソルがデータ ソース サーバーによってタイムアウトされないようにします。そのため、ドライバーがサーバーへの接続を突然終了するか失った場合には、カーソルがサーバー上で無期限に開いたままになるリスクがあります。 アイドル状態のカーソルのタイムアウトしきい値は、MongoDB サーバーで調整できます。詳細については、https://docs.mongodb.com/v3.0/reference/parameters/ を参照してください。
SamplingLimit 100 いいえ ドライバーが一時スキーマ定義を生成するためにサンプリングできるレコードの最大数です。 このオプションを 0 に設定した場合、ドライバーはデータベース内のすべてのドキュメントをサンプリングします。

必要なすべてのデータをサンプリングするようにドライバーを構成してください。 サンプリングされなかったドキュメントはスキーマ定義に含められないため、ODBC アプリケーションで使用できなくなります。

通常は、多数のドキュメントをサンプリングした方が、作成されるスキーマ定義で、データベース内のすべてのデータをより正確かつ適切に表わせるようになります。 ただし、多数のドキュメントをサンプリングすると、サンプリング プロセスに予想以上の時間がかかる場合があります。データベースに複雑な入れ子のデータ構造が含まれている場合は、これが特に顕著です。
SamplingStrategy 転送 いいえ このオプションでは、ドライバーが一時スキーマ定義を生成する際のデータのサンプリング方法を指定します。

Forward: ドライバーは、データベース内の最初のレコードからデータ サンプリングを開始し、その後、次のレコードを順にサンプリングしていきます。
Backward: ドライバーは、データベース内の最後のレコードからデータ サンプリングを開始し、その後、その前のレコードを順にサンプリングしていきます。
Random: ドライバーは、SamplingLimit に達するまで、データ ソースからランダムにサンプル レコードを選択していきます。
SSL Clear (0) いいえ このオプションでは、ドライバーがサーバーへの接続に SSL を使用するかどうかを指定します。 Enabled (1): ドライバーは SSL を使用してサーバーに接続します。Disabled (0): ドライバーはサーバーへの接続に SSL を使用しません。

汎用 ODBC

PolyBase の汎用 ODBC 外部データ ソースに指定できる有効な CONNECTION_OPTIONS は、ドライバー固有です。 Microsoft 提供の ODBC プロバイダーを使用していない場合 (前のセクションを参照)、有効なキーと値のペアについては、ドライバーのドキュメントを参照してください。

PolyBase には、すべての汎用 ODBC ドライバーで使用できる有効なキーと値のペアがいくつかあります。 SQL Server 2019 の CU5 には、次のキーが追加されました。

Key 指定できる値 説明
PolyBaseOdbcSupportsRowCount true、FALSE ODBC カタログ関数で呼び出される SQLRowCount 関数がドライバーでサポートされるかどうかを示します。 既定値は false です。 例: CONNECTION_OPTIONS='PolyBaseOdbcSupportsRowCount=TRUE'
PolyBaseOdbcSupportsMetadataIdAttributes true、FALSE METADATA_ID ステートメント属性の設定がドライバーでサポートされるかどうかを示します。 既定値は false です。 例: CONNECTION_OPTIONS='PolyBaseOdbcSupportsMetadataIdAttributes=TRUE'
PolyBaseOdbcSupportsBindOffset true、FALSE 結果セットの行方向のバインドに対するバインド オフセットがドライバーでサポートされるかどうかを示します。 サポートされない場合は、列バインドを使用してください。 既定値は false です。 例: CONNECTION_OPTIONS='PolyBaseOdbcSupportsBindOffset=TRUE'
PolyBaseQoTopPushdownSyntax TOP、LIMIT TOP 演算子をバックエンドにプッシュダウンする方法を指定する情報が含まれています。 既定値は空の文字列です。これは、TOP プッシュダウンのサポートがないことを示します。 ユーザーが TOP を指定した場合は、書式指定文字列として top {0} が使用されます。 ユーザーが LIMIT を指定した場合は、書式指定文字列として limit {0} が使用されます。 この実装はドライバー固有です。外部データ ソースやドライバーのドキュメントを参照してください。 (例: CONNECTION_OPTIONS= PolyBaseQoTopPushdownSyntax=TOP')。

次のステップ