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 (Синапс)
    • SQLSERVER
  • OPTIONS

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

    • Параметр

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

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

    • значение

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

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

Варианты по типу соединения

Каждый connection_type принимает свой собственный набор OPTIONS. В следующей таблице перечислены необходимые опции для каждого типа. Для опциональных настроек, таких как TLS и альтернативные режимы аутентификации, а также для шагов настройки смотрите руководство по подключению для каждого источника данных.

Тип подключения Обязательные параметры Руководство по соединению
DATABRICKS host, httpPath, personalAccessToken Databricks-to-Databricks
HTTP host, bearer_token Опции HTTP
MYSQL host, port, user, password MySQL
POSTGRESQL host, port, user, password PostgreSQL
REDSHIFT host, port, user, password Красное смещение
SNOWFLAKE host, port, sfWarehouse, user, password Snowflake
SQLDW host, port, user, password Azure Synapse
SQLSERVER host, port, user, password SQL Server

Note

Некоторые типы соединения поддерживают дополнительные режимы аутентификации с разными опциями. Например, MySQL и PostgreSQL поддерживают аутентификацию AWS IAM (с aws_region и credential), а Snowflake поддерживает OAuth (с client_id и client_secret). Смотрите руководство по подключению источника данных.

Параметры 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",
    )
  );