CREATE CONNECTION

Gilt für:Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 13.3 LTS und höher durch Häkchen mit „Ja“ markiert Nur Unity Catalog

Dieser Befehl erstellt eine Fremdverbindung (oder einen Server), die ein Remotedatensystem eines bestimmten Typs darstellt, wobei systemspezifische Optionen verwendet werden, die den Speicherort des Remotesystems und Authentifizierungsdetails angeben.

Fremdverbindungen ermöglichen Verbundabfragen.

Von Bedeutung

Um Anmeldeinformationen wie Kennwörter und Token sicher zu halten, stellen Sie sie mithilfe der secret Funktion bereit, anstatt die Literalwerte direkt in die OPTIONS Klausel einzugeben. Auf diese Weise können Sie auf einen geheimen Schlüssel verweisen, der im Databricks-Geheimdienst gespeichert ist, anstatt den Anmeldeinformationswert in Ihre Anweisung einzuverlagern. Sehen Sie sich die Beispiele an.

Syntax

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

Zur Einhaltung von Standards können Sie auch SERVER anstelle von CONNECTION verwenden.

Parameter

  • connection_name

    Ein eindeutiger Bezeichner der Verbindung auf Unity Catalog-Metastoreebene.

  • connection_type

    Gibt den Typ der Verbindung an und muss einen der folgenden Typen aufweisen:

    • DATABRICKS
    • HTTP Gilt für: Databricks SQL Häkchen für „Ja“ Databricks Runtime 16.2 und höher
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Legt connection_type-spezifische Parameter fest, die zum Herstellen der Verbindung erforderlich sind.

    • Option

      Der Eigenschaftenschlüssel. Der Schlüssel kann aus einem oder mehreren Bezeichnern bestehen, die durch einen Punkt oder ein STRING-Literal getrennt sind.

      Eigenschaftenschlüssel müssen eindeutig sein, und die Groß-/Kleinschreibung muss beachtet werden.

    • Wert

      Der Wert für die Eigenschaft. Der Wert muss ein BOOLEAN, STRING, , INTEGERoder DECIMALkonstanter Ausdruck sein.

      Verwenden Sie für jede Option, die anmeldeinformationen enthält, z. B. ein Kennwort oder ein Token, die secret Funktion, anstatt den Wert direkt einzugeben. Geben Sie z. B. nicht das valuepasswordsecret('secrets.r.us', 'postgresPassword') Literalkennwort ein.

HTTP-Optionen

Gilt für: Databricks SQL gekennzeichnet als 'Ja' Databricks Runtime 16.2 und höher

Der HTTP-Verbindungstyp unterstützt die folgenden Optionsschlüssel und -werte:

  • host

    Ein STRING-Literal. Gibt host_name für den externen Dienst an. Eine Ausnahme wird ausgelöst, wenn der Hostpfad keine normalisierte URL ist.

  • bearer_token

    Das Authentifizierungstoken, das beim Aufruf des externen Diensts verwendet werden soll. Stellen Sie das Token mithilfe der FUNKTION GEHEIM anstelle eines STRING Literals bereit. Beispielsweise kann der Wert im Gegensatz zur Eingabe des Literaltokens bestehen secret('secrets.r.us', 'httpPassword') .

  • port Ein optionales INTEGER-Literal, das den Port angibt. Der Standardwert ist 443;

  • base_path

    Ein optionales STRING-Literal. Der Standardwert lautet /. Eine Ausnahme wird ausgelöst, wenn der Pfad eine leere Zeichenfolge oder einen falschen Pfad mit Leerzeichen oder Sonderzeichen enthält.

Beispiele

Geben Sie Anmeldeinformationen mithilfe der secret Funktion an, wie in den folgenden Beispielen dargestellt, anstatt Kennwörter oder Token direkt einzugeben.

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