CREATE CONNECTION

Область применения:флажок «Да» Databricks SQL флажок «Да» Databricks Runtime 13.3 LTS и более поздние версии флажок «Да» только для Unity Catalog

Эта команда создает внешнее подключение (или сервер), представляющее удаленную систему данных определенного типа, используя системные параметры, которые предоставляют расположение удаленной системы и сведения о проверке подлинности.

Внешние подключения обеспечивают федеративные запросы.

Note

CREATE CONNECTION предназначен для подключений Федерации Lakehouse (федеративный запрос). Чтобы создать подключения для конвейеров приема управляемых данных в Lakeflow Connect, используйте REST API подключений или интерфейс командной строки Databricks (databricks connections create). См. раздел "Развертывание".

Important

При установке параметров подключения, которые несут учетные данные, такие как пароль или маркер, чтобы обеспечить их безопасность, укажите значение, используя secret функцию, а не ввод литерального значения непосредственно в предложении OPTIONS . Это позволяет ссылать на секрет, хранящийся в секретной службе Databricks , а не включать значение учетных данных в инструкцию. См. примеры.

Синтаксис

CREATE CONNECTION [IF NOT EXISTS] connection_name
  TYPE connection_type
  OPTIONS ( option value [, ...] )
  [ COMMENT comment ]

Для соответствия стандартам можно также использовать SERVER вместо CONNECTION.

Параметры

  • connection_name

    Уникальный идентификатор подключения на уровне хранилища метаданных каталога Unity.

  • connection_type

    Определяет тип подключения и должен быть одним из следующих элементов:

    • DATABRICKS
    • HTTP применимо: Databricks SQL помечено как Databricks Runtime 16.2 и выше
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Задает connection_type определенные параметры, необходимые для установления подключения.

    • Параметр

      Ключ свойства. Ключ может состоять из одного или нескольких идентификаторов, разделенных точкой или STRING литералом.

      Ключи свойств должны быть уникальными и чувствительны к регистру.

    • значение

      Значение для свойства. Значение должно быть выражением BOOLEAN, STRINGINTEGERили DECIMALконстантой.

      Для любого варианта, который содержит учетные данные, например пароль или маркер, используйте secret функцию вместо прямого ввода значения. Например, укажите value значение passwordsecret('secrets.r.us', 'postgresPassword') вместо ввода литерального пароля.

Параметры HTTP

Применимо: Databricks SQL отмеченный флажок Databricks Runtime 16.2 и более новые версии

Тип ПОДКЛЮЧЕНИЯ HTTP поддерживает следующие ключи и значения параметров:

  • host

    Литерал STRING. Указывает host_name для внешнего сервиса. Исключение возникает, если путь к узлу не является нормализованным URL-адресом.

  • bearer_token

    Токен аутентификации, используемый для вызова внешней службы. Укажите маркер с помощью функции SECRET , а не в качестве STRING литерала. Например, значение может состоять secret('secrets.r.us', 'httpPassword') в отличие от ввода литерального токена.

  • port необязательный литерал INTEGER, указывающий порт. Значение по умолчанию — 443;

  • base_path

    Необязательный литерал STRING. Значение по умолчанию — /. Исключение возникает, если путь содержит пустую строку или неправильный путь с пробелами или специальными символами.

Примеры

Укажите учетные данные с помощью 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",
    )
  );