CREATE CONNECTION

Se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 13.3 LTS y versiones posteriores casilla marcada como Sí solo a Unity Catalog

Este comando crea una conexión externa (o servidor), que representa un sistema de datos remoto de un tipo específico, utilizando opciones específicas del sistema que proporcionan la ubicación del sistema remoto y los detalles de autenticación.

Las conexiones externas habilitan las consultas federadas.

Importante

Al establecer opciones de conexión que llevan una credencial, como una contraseña o un token, para mantenerlos seguros, proporcione el valor mediante la secret función en lugar de escribir el valor literal directamente en la OPTIONS cláusula . Esto le permite hacer referencia a un secreto almacenado en el servicio secreto de Databricks en lugar de incluir el valor de credencial en la instrucción. Vea los ejemplos.

Sintaxis

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

Para el cumplimiento de estándares, también puede usar SERVER en lugar de CONNECTION.

Parámetros

  • connection_name

    Identificador único de la conexión en el nivel de metastore del catálogo de Unity.

  • connection_type

    Identifica el tipo de conexión y debe ser uno de los siguientes:

    • DATABRICKS
    • HTTP Se aplica a: Databricks SQL comprobar sí marcado Databricks Runtime 16.2 y versiones posteriores
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Establece connection_type los parámetros específicos necesarios para establecer la conexión.

    • opción

      Clave de propiedad. La clave puede constar de uno o más identificadores separados por un punto o un literal de STRING.

      Las claves de propiedad deben ser únicas y distinguen mayúsculas de minúsculas.

    • valor

      El valor de la propiedad. El valor debe ser una BOOLEANSTRING , INTEGER, DECIMALo .

      Para cualquier opción que contenga una credencial, como una contraseña o un token, use la secret función en lugar de escribir el valor directamente. Por ejemplo, proporcione value para como passwordsecret('secrets.r.us', 'postgresPassword') en lugar de escribir la contraseña literal.

Opciones http

Se aplica a: Databricks SQL comprobar sí marcado Databricks Runtime 16.2 y versiones posteriores

El tipo de conexión HTTP admite las siguientes claves y valores de opción:

  • host

    Un literal de STRING. Especifica el host_name para el servicio externo. Se producirá una excepción si la ruta de acceso del host no es una dirección URL normalizada.

  • bearer_token

    Token de autenticación que se va a usar al realizar la llamada al servicio externo. Proporcione el token mediante la función SECRET en lugar de como un STRING literal. Por ejemplo, el valor puede comprender secret('secrets.r.us', 'httpPassword') en lugar de escribir el token literal.

  • portUn literal de INTEGER opcional que especifica el puerto. El valor predeterminado es 443;

  • base_path

    Literal STRING opcional. El valor predeterminado es /. Se produce una excepción si la ruta de acceso contiene una cadena vacía o una ruta de acceso incorrecta con espacios o caracteres especiales.

Ejemplos

Proporcione credenciales mediante la secret función , como se muestra en los ejemplos siguientes, en lugar de escribir contraseñas o tokens directamente.

-- 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",
    )
  );