适用于:
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标识连接的类型,并且必须是以下类型之一:
DATABRICKS- 适用于:
HTTPDatabricks 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('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",
)
);