適用対象: Databricks SQL
Databricks Runtime 13.3 LTS 以上
Unity Catalog のみ
このコマンドによって、リモート システムの場所と認証の詳細を提供するシステム固有のオプションを使用して、特定の種類のリモート データ システムを表す外部接続 (またはサーバー) が作成されます。
外部接続により、フェデレーション クエリが有効になります。
構文
CREATE CONNECTION [IF NOT EXISTS] connection_name
TYPE connection_type
OPTIONS ( option value [, ...] )
[ COMMENT comment ]
標準コンプライアンスの場合は、SERVER
の代わりに CONNECTION
を使用することもできます。
パラメーター
connection_name
Unity Catalog メタストア レベルでの接続の一意識別子。
connection_type
接続の種類を識別し、次のうちの 1 つである必要があります。
DATABRICKS
-
HTTP
適用対象: Databricks SQLDatabricks Runtime 16.2 以降
MYSQL
POSTGRESQL
REDSHIFT
SNOWFLAKE
-
SQLDW
(Synapse) SQLSERVER
OPTIONS
接続の確立に必要な
connection_type
固有のパラメーターを設定します。オプション
プロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは
STRING
リテラルで構成できます。プロパティ キーは一意である必要があり、大文字と小文字が区別されます。
価値
プロパティの値。 値は、
BOOLEAN
、STRING
、INTEGER
、またはDECIMAL
定数式である必要があります。 値は、SQL 関数のSECRET
呼び出しである場合もあります。 たとえば、value
のpassword
は、リテラル パスワードを入力するのではなく、secret('secrets.r.us', 'postgresPassword')
で構成できます。
HTTP オプション
適用対象: Databricks SQL Databricks Runtime 16.2 以降
HTTP 接続の種類では、次のオプション キーと値がサポートされています。
host
STRING
リテラル。 外部サービスのhost_name
を指定します。 ホスト パスが正規化された URL でない場合は、例外がスローされます。bearer_token
STRING
リテラルまたは SECRET 関数の呼び出し。 外部サービス呼び出しを行うときに使用する認証トークン。 たとえば、値はリテラル パスワードを入力するのではなく、secret('secrets.r.us', 'httpPassword')
で構成される場合があります。port
ポートを指定する省略可能なINTEGER
リテラル。 既定値は443
です。base_path
STRING
リテラル (省略可能)。 既定値は/
です。 パスに空の文字列が含まれている場合、またはスペースまたは特殊文字を含む正しくないパスが含まれている場合は、例外がスローされます。
例
-- Create a postgresql connection
> CREATE CONNECTION postgresql_connection
TYPE POSTGRESQL
OPTIONS (
host 'qf-postgresql-demo.xxxxxx.us-west-2.rds.amazonaws.com',
port '5432',
user 'postgresql_user',
password 'password123');
-- Create a postgresql connection with secret scope
> CREATE CONNECTION postgresql_connection
TYPE POSTGRESQL
OPTIONS (
host 'qf-postgresql-demo.xxxxxx.us-west-2.rds.amazonaws.com',
port '5432',
user secret('secrets.r.us', 'postgresUser'),
password secret('secrets.r.us', 'postgresPassword'));
-- Set up a connect to Slack.
> CREATE CONNECTION slack_conn
TYPE HTTP
OPTIONS (
host 'https://slack.com',
port '443',
base_path '/api/',
bearer_token 'xoxb-xxxxx'
);
-- 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",
)
);