CREATE CONNECTION

S’applique à :coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 13.3 LTS et versions ultérieures case marquée oui Unity Catalog uniquement

Cette commande crée une connexion étrangère (ou un serveur), qui représente un système de données distant d’un type spécifique, à l’aide d’options spécifiques au système qui fournissent l’emplacement du système distant et les détails d’authentification.

Les connexions étrangères activent les requêtes fédérées.

Importante

Pour sécuriser les informations d’identification telles que les mots de passe et les jetons, fournissez-les à l’aide de la secret fonction plutôt que d’entrer les valeurs littérales directement dans la OPTIONS clause. Cela vous permet de référencer un secret stocké dans le service secret Databricks au lieu d’inclure la valeur d’informations d’identification dans votre instruction. Consultez les exemples.

Syntaxe

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

Pour la conformité aux normes, vous pouvez également utiliser SERVER au lieu de CONNECTION.

Paramètres

  • connection_name

    Identificateur unique de la connexion au niveau du metastore Unity Catalog.

  • connection_type

    Identifie le type de connexion et doit être l’un des éléments suivants :

    • DATABRICKS
    • HTTP S’applique à : Databricks SQL coché oui Databricks Runtime 16.2 et versions ultérieures
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Définie les paramètres spécifiques connection_type obligatoires pour établir la connexion.

    • option

      Clé de la propriété. La clé peut comporter un ou plusieurs identificateurs séparés par un point, ou un littéral STRING.

      Les clés de propriété doivent être uniques et respectent la casse.

    • valeur

      Valeur de la propriété. La valeur doit être une BOOLEANSTRING , INTEGERDECIMALou constante.

      Pour toute option qui contient des informations d’identification, telles qu’un mot de passe ou un jeton, utilisez la secret fonction au lieu d’entrer la valeur directement. Par exemple, indiquez le value mot passwordsecret('secrets.r.us', 'postgresPassword') de passe littéral plutôt que d’entrer le mot de passe littéral.

Options HTTP

S’applique à : Databricks SQL coché oui Databricks Runtime 16.2 et versions ultérieures

Le type de connexion HTTP prend en charge les clés d’option et les valeurs suivantes :

  • host

    Un littéral STRING. Spécifie le « host_name » pour le service externe. Une exception est levée si le chemin d’accès de l’hôte n’est pas une URL normalisée.

  • bearer_token

    Jeton d’authentification à utiliser lors de l’appel de service externe. Fournissez le jeton à l’aide de la fonction SECRET plutôt que comme STRING littéral. Par exemple, la valeur peut comprendre secret('secrets.r.us', 'httpPassword') plutôt que d’entrer le jeton littéral.

  • port Littéral facultatif INTEGER spécifiant le port. La valeur par défaut est 443;

  • base_path

    Littéral STRING facultatif. La valeur par défaut est /. Une exception est levée si le chemin contient une chaîne vide ou un chemin incorrect avec des espaces ou des caractères spéciaux.

Examples

Fournissez des informations d’identification à l’aide de la secret fonction, comme indiqué dans les exemples suivants, plutôt que d’entrer directement des mots de passe ou des jetons.

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