適用対象:
Databricks SQL
Databricks Runtime 13.3 LTS 以上
Unity Catalog のみ
このコマンドによって、リモート システムの場所と認証の詳細を提供するシステム固有のオプションを使用して、特定の種類のリモート データ システムを表す外部接続 (またはサーバー) が作成されます。
外部接続により、フェデレーション クエリが有効になります。
Important
パスワードやトークンなどの資格情報をセキュリティで保護するには、OPTIONS句にリテラル値を直接入力するのではなく、secret関数を使用して資格情報を指定します。 これにより、ステートメントに資格情報の値を含めるのではなく、 Databricks シークレット サービス に格納されているシークレットを参照できます。
例を参照してください。
構文
CREATE CONNECTION [IF NOT EXISTS] connection_name
TYPE connection_type
OPTIONS ( option value [, ...] )
[ COMMENT comment ]
標準コンプライアンスの場合は、SERVER の代わりに CONNECTION を使用することもできます。
パラメーター
connection_nameUnity Catalog メタストア レベルでの接続の一意識別子。
connection_type接続の種類を識別し、次のうちの 1 つである必要があります。
DATABRICKS-
HTTP適用対象: Databricks SQL
Databricks Runtime 16.2 以降 MYSQLPOSTGRESQLREDSHIFTSNOWFLAKE-
SQLDW(Synapse) SQLSERVER
OPTIONS接続の確立に必要な
connection_type固有のパラメーターを設定します。オプション
プロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは
STRINGリテラルで構成できます。プロパティ キーは一意である必要があり、大文字と小文字が区別されます。
価値
プロパティの値。 値は、
BOOLEAN、STRING、INTEGER、またはDECIMAL定数式でなければなりません。パスワードやトークンなど、資格情報を保持するオプションの場合は、値を直接入力する代わりに、
secret関数を使用します。 たとえば、リテラル パスワードを入力するのではなく、valueのpasswordをsecret('secrets.r.us', 'postgresPassword')として指定します。
HTTP オプション
適用対象: Databricks SQL
Databricks Runtime 16.2 以降
HTTP 接続の種類では、次のオプション キーと値がサポートされています。
hostSTRINGリテラル。 外部サービスのhost_nameを指定します。 ホスト パスが正規化された URL でない場合は、例外がスローされます。bearer_token外部サービス呼び出しを行うときに使用する認証トークン。
STRINGリテラルとしてではなく、SECRET 関数を使用してトークンを指定します。 たとえば、値はリテラル トークンを入力するのではなく、secret('secrets.r.us', 'httpPassword')で構成される場合があります。portポートを指定する省略可能なINTEGERリテラル。 既定値は443です。base_pathSTRINGリテラル (省略可能)。 既定値は/です。 パスに空の文字列が含まれている場合、またはスペースまたは特殊文字を含む正しくないパスが含まれている場合は、例外がスローされます。
Examples
パスワードまたはトークンを直接入力するのではなく、次の例に示すように、 secret 関数を使用して資格情報を指定します。
-- Create a postgresql connection.
-- Provide the user and password using the secret function rather than
-- entering them directly.
> CREATE CONNECTION postgresql_connection
TYPE POSTGRESQL
OPTIONS (
host '<hostname>',
port '5432',
user secret('secrets.r.us', 'postgresUser'),
password secret('secrets.r.us', 'postgresPassword'));
-- Set up a connection to Slack.
-- Provide the bearer token using the secret function rather than a literal value.
> CREATE CONNECTION slack_conn
TYPE HTTP
OPTIONS (
host 'https://slack.com',
port '443',
base_path '/api/',
bearer_token secret('secrets.r.us', 'slackBearerToken')
);
-- Request to the external service
> SELECT http_request(
conn => 'slack_conn',
method => 'POST',
path => '/chat.postMessage',
json => to_json(named_struct(
'channel', channel,
'text', text
))
headers => map(
'Accept', "application/vnd.github+json",
)
);