CREATE CONNECTION

Şunlar için geçerlidir:evet ile işaretli Databricks SQL evet ile işaretli Databricks Runtime 13.3 LTS ve üzeri evet ile işaretli Yalnızca Unity Kataloğu

Bu komut, uzak sistemin konumunu ve kimlik doğrulama ayrıntılarını sağlayan sisteme özgü seçenekleri kullanarak belirli bir türdeki uzak veri sistemini temsil eden bir yabancı bağlantı (veya sunucu) oluşturur.

Yabancı bağlantılar federasyon sorgularını etkinleştirir.

Important

Parola veya belirteç gibi kimlik bilgilerini taşıyan bağlantı seçeneklerini güvenli tutmak için ayarladığınızdaOPTIONS, değişmez değeri doğrudan yan tümcesine girmek yerine işlevini kullanarak secret değeri sağlayın. Bu, deyiminize kimlik bilgisi değeri dahil olmak yerine Databricks gizli dizi hizmetinde depolanan bir gizli diziye başvurmanızı sağlar. Örneklere bakın.

Sözdizimi

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

Standartlara uyumluluk için yerine SERVERde kullanabilirsinizCONNECTION.

Parametreler

  • connection_name

    Unity Kataloğu meta veri deposu düzeyinde bağlantının benzersiz tanımlayıcısı.

  • connection_type

    Bağlantının türünü tanımlar ve aşağıdakilerden biri olmalıdır:

    • DATABRICKS
    • HTTP Şunlar için geçerlidir: Databricks SQL Databricks Runtime 16.2 ve üstü evet olarak işaretlendi
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Bağlantıyı kurmak için gereken belirli parametreleri ayarlar connection_type .

    • seçenek

      Özellik anahtarı. Anahtar, nokta ile ayrılmış bir veya daha fazla tanımlayıcı veya bir STRING literal değerden oluşabilir.

      Özellik anahtarları benzersiz olmalı ve büyük/küçük harfe duyarlı olmalıdır.

    • değer

      özelliğinin değeri. Değer bir BOOLEAN, STRING, INTEGERveya DECIMALsabit ifadesi olmalıdır.

      Parola veya belirteç gibi bir kimlik bilgisi taşıyan herhangi bir seçenek için, değeri doğrudan girmek yerine işlevini kullanın secret . Örneğin, değişmez parolayı girmek yerine olarak değerini girin valuepasswordsecret('secrets.r.us', 'postgresPassword') .

HTTP seçenekleri

Şunlar için geçerlidir: Databricks SQL evet olarak işaretlendi Databricks Runtime 16.2 ve üzeri

HTTP bağlantı türü aşağıdaki seçenek anahtarlarını ve değerlerini destekler:

  • host

    Bir STRING sabit. Dış hizmet için host_name belirtir. Ana bilgisayar yolu normalleştirilmiş bir URL değilse bir istisna fırlatılır.

  • bearer_token

    Dış hizmet çağrısı yapılırken kullanılacak kimlik doğrulama belirteci. Belirteci değişmez değer yerine STRING işlevini kullanarak sağlayın. Örneğin, değer değişmez belirteci girmek yerine oluşabilir secret('secrets.r.us', 'httpPassword') .

  • port Bağlantı noktasını belirten isteğe bağlı bir INTEGER sabit. Varsayılan değer 443;

  • base_path

    İsteğe bağlı STRING bir değişmez değer. Varsayılan değer: /. Yol boş bir dize içeriyorsa veya boşluklar ya da özel karakterler içeren yanlış bir yolsa, bir istisna fırlatılır.

Examples

Parolaları veya belirteçleri doğrudan girmek yerine aşağıdaki örneklerde gösterildiği gibi işlevini kullanarak secret kimlik bilgilerini sağlayın.

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