適用対象:
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_nameUnity Catalog メタストア レベルでの接続の一意識別子。
connection_type接続の種類を識別し、次のうちの 1 つである必要があります。
DATABRICKS-
HTTP適用対象: Databricks SQL
Databricks Runtime 16.2 以降 MYSQLPOSTGRESQLREDSHIFTSNOWFLAKE-
SQLDW(Synapse) SQLSERVER
OPTIONS接続の確立に必要な
connection_type固有のパラメーターを設定します。
HTTP オプション
適用対象: Databricks SQL
Databricks Runtime 16.2 以降
HTTP 接続の種類では、次のオプション キーと値がサポートされています。
hostSTRINGリテラル。 外部サービスのhost_nameを指定します。 ホスト パスが正規化された URL でない場合は、例外がスローされます。bearer_tokenSTRINGリテラルまたは SECRET 関数の呼び出し。 外部サービス呼び出しを行うときに使用する認証トークン。 たとえば、値はリテラル パスワードを入力するのではなく、secret('secrets.r.us', 'httpPassword')で構成される場合があります。portポートを指定する省略可能なINTEGERリテラル。 既定値は443です。base_pathSTRINGリテラル (省略可能)。 既定値は/です。 パスに空の文字列が含まれている場合、またはスペースまたは特殊文字を含む正しくないパスが含まれている場合は、例外がスローされます。
例
-- 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",
)
);