CREATE CONNECTION

Berlaku untuk:ditandai dengan tanda centang ya Databricks SQL ditandai dengan tanda centang ya Databricks Runtime 13.3 LTS ke atas ditandai dengan tanda centang ya Unity Catalog saja

Perintah ini membuat koneksi asing (atau server), yang mewakili sistem data jarak jauh dari jenis tertentu, menggunakan opsi khusus sistem yang menyediakan lokasi sistem jarak jauh dan detail autentikasi.

Koneksi eksternal memungkinkan kueri terfederasi .

Note

CREATE CONNECTION adalah untuk koneksi Federasi Lakehouse (kueri federasi). Untuk membuat koneksi untuk alur penyerapan terkelola di Lakeflow Connect, gunakan Koneksi REST API atau Databricks CLI (databricks connections create). Lihat Penyebaran.

Important

Saat Anda mengatur opsi koneksi yang membawa kredensial, seperti kata sandi atau token, untuk menjaganya tetap aman, berikan nilai menggunakan secret fungsi daripada memasukkan nilai harfiah langsung dalam OPTIONS klausul. Ini memungkinkan Anda mereferensikan rahasia yang disimpan di layanan rahasia Databricks alih-alih menyertakan nilai kredensial dalam pernyataan Anda. Lihat contohnya.

Sintaks

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

Untuk kepatuhan standar, Anda juga dapat menggunakan SERVER alih-alih CONNECTION.

Parameter

  • connection_name

    Pengidentifikasi unik koneksi di tingkat metastore Unity Catalog.

  • connection_type

    Mengidentifikasi jenis koneksi dan harus salah satu dari:

    • DATABRICKS
    • HTTP Berlaku bagi: Databricks SQL ditandai ya Databricks Runtime 16.2 ke atas
    • MYSQL
    • POSTGRESQL
    • REDSHIFT
    • SNOWFLAKE
    • SQLDW (Synapse)
    • SQLSERVER
  • OPTIONS

    Mengatur parameter spesifik connection_type yang diperlukan untuk membuat koneksi.

    • pilihan

      Kunci atribut. Kunci dapat terdiri dari satu atau beberapa pengidentifikasi yang dipisahkan oleh titik, atau STRING harfiah.

      Kunci properti harus unik dan peka terhadap huruf besar/kecil.

    • nilai

      Nilai dari properti. Nilai harus berupa BOOLEANekspresi , STRING, INTEGER, atau DECIMALkonstanta.

      Untuk opsi apa pun yang membawa kredensial, seperti kata sandi atau token, gunakan secret fungsi alih-alih memasukkan nilai secara langsung. Misalnya, berikan value sebagai passwordsecret('secrets.r.us', 'postgresPassword') daripada memasukkan kata sandi harfiah.

Opsi HTTP

Berlaku untuk: Databricks SQL ditandai dicentang ya Databricks Runtime 16.2 ke atas

Jenis koneksi HTTP mendukung kunci dan nilai opsi berikut:

  • host

    Sebuah STRING harfiah. Menentukan host_name untuk layanan eksternal. Pengecualian akan dilemparkan jika jalur host bukan URL yang dinormalisasi.

  • bearer_token

    Token autentikasi yang akan digunakan saat melakukan panggilan layanan eksternal. Berikan token menggunakan fungsi SECRET daripada sebagai STRING harfiah. Misalnya, nilainya mungkin terdiri secret('secrets.r.us', 'httpPassword') dari memasukkan token harfiah.

  • port INTEGER opsional yang menentukan port. Defaultnya adalah 443;

  • base_path

    Teks literal opsional STRING. Defaultnya adalah /. Pengecualian dilemparkan jika jalur berisi string kosong, atau jalur yang salah dengan spasi atau karakter khusus.

Contoh

Berikan kredensial menggunakan fungsi , seperti yang secret ditunjukkan dalam contoh berikut, daripada memasukkan kata sandi atau token secara langsung.

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