CREATE CONNECTION

Aplica-se a:assinalado como sim Databricks SQL assinalado como sim Databricks Runtime 13.3 LTS e superior assinalado como sim apenas Unity Catalog

Este comando cria uma conexão externa (ou servidor), que representa um sistema de dados remoto de um tipo específico, usando opções específicas do sistema que fornecem a localização do sistema remoto e detalhes de autenticação.

As conexões externas permitem consultas federadas.

Note

CREATE CONNECTION é para ligações à Federação dos Lagos (consulta federada). Para criar ligações para pipelines de ingestão geridos no Lakeflow Connect, utilize a API REST de Connections ou a CLI Databricks (databricks connections create). Ver Desdobramento.

Important

Quando definir opções de ligação que transportam uma credencial, como uma palavra-passe ou token, para as manter seguras, forneça o valor usando a secret função em vez de inserir o valor literal diretamente na OPTIONS cláusula. Isto permite-lhe referenciar um segredo armazenado no serviço secreto Databricks em vez de incluir o valor da credencial na sua declaração. Veja os exemplos.

Sintaxe

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

Para conformidade com os padrões, você também pode usar SERVER em vez de CONNECTION.

Parâmetros

  • connection_name

    Um identificador exclusivo da conexão no nível do metastore do Unity Catalog.

  • connection_type

    Identifica o tipo de conexão e deve ser uma das seguintes:

    • DATABRICKS
    • HTTP Aplica-se a: Databricks SQL assinalado sim Databricks Runtime 16.2 e superior
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Sinapse)
    • SQLSERVER
  • OPTIONS

    Define connection_type parâmetros específicos necessários para estabelecer a conexão.

    • opção

      A chave da propriedade. A chave pode consistir em um ou mais identificadores separados por um ponto ou um STRING literal.

      As chaves de propriedade devem ser exclusivas e diferenciar maiúsculas de minúsculas.

    • valor

      O valor da propriedade. O valor deve ser uma BOOLEANSTRING , INTEGER, DECIMAL, ou constante.

      Para qualquer opção que contenha uma credencial, como uma palavra-passe ou token, use a secret função em vez de introduzir o valor diretamente. Por exemplo, forneça o value for password as secret('secrets.r.us', 'postgresPassword') em vez de introduzir a palavra-passe literal.

Opções por tipo de ligação

Cada um connection_type aceita o seu próprio conjunto de OPTIONS. A tabela seguinte lista as opções obrigatórias para cada tipo. Para definições opcionais, como TLS e modos alternativos de autenticação, e para os passos de configuração, consulte o guia de ligação de cada fonte de dados.

Tipo de ligação Opções necessárias Guia de ligação
DATABRICKS host, httpPath, personalAccessToken Databricks-para-Databricks
HTTP host, bearer_token Opções HTTP
MYSQL host, port, user, password MySQL
POSTGRESQL host, port, user, password PostgreSQL
REDSHIFT host, port, user, password Redshift
SNOWFLAKE host, port, sfWarehouse, user, password Snowflake
SQLDW host, port, user, password Azure Synapse
SQLSERVER host, port, user, password SQL Server

Note

Alguns tipos de ligação suportam modos de autenticação adicionais que utilizam diferentes opções. Por exemplo, MySQL e PostgreSQL suportam autenticação AWS IAM (com aws_region e credential), e Snowflake suporta OAuth (com client_id e client_secret). Consulte o guia de ligação para a fonte de dados.

Opções HTTP

Aplica-se a: Databricks SQL assinalada como sim Databricks Runtime 16.2 e superior

O tipo de conexão HTTP suporta as seguintes chaves e valores de opção:

  • host

    Um STRING literal. Especifica o host_name para o serviço externo. Uma exceção será lançada se o caminho do host não for uma URL normalizada.

  • bearer_token

    O token de autenticação a ser usado ao realizar a chamada para o serviço externo. Fornecer o token usando a função SECRET em vez de como literal STRING . Por exemplo, o valor pode compreender secret('secrets.r.us', 'httpPassword') , em vez de inserir o token literal.

  • port Um literal INTEGER opcional especificando a porta. O padrão é 443;

  • base_path

    Um literal opcional STRING. A predefinição é /. Uma exceção será lançada se o caminho contiver uma cadeia de caracteres vazia ou um caminho incorreto com espaços ou caracteres especiais.

Examples

Forneça credenciais usando a secret função, como mostrado nos exemplos seguintes, em vez de introduzir palavras-passe ou tokens diretamente.

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