共用方式為


CREATE CONNECTION

適用於:檢查標示為 [是] 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

    識別連線的類型,而且必須是下列其中一項:

    • DATABRICKS
    • HTTP 適用於: Databricks SQL 檢查標示為 yes Databricks Runtime 16.2 和更新版本
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    設定 connection_type 所需用於建立連線的特定參數。

    • 選項

      屬性鍵。 該鍵可以包含一或多個以點分隔的識別碼,或是 STRING 常值。

      屬性索引鍵必須是唯一的,而且區分大小寫。

    • 價值

      屬性的值。 值必須是 BOOLEAN、 、 STRINGINTEGERDECIMAL常數運算式。 此值也可能是 SECRET SQL 函式的呼叫。 例如,valuepassword 可能會包含 secret('secrets.r.us', 'postgresPassword'),無需輸入常值密碼。

HTTP 選項

適用於: Databricks SQL 檢查標示為 yes 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",
    )
  );