Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
fungsi
Berlaku untuk:
Databricks SQL
Databricks Runtime 16.2 dan versi lebih baru
Membuat permintaan HTTP menggunakan koneksi HTTP yang ditentukan.
Fungsi ini memerlukan pemanggilan parameter bernama.
Sintaksis
http_request( { CONN => connectionName |
METHOD => httpMethod |
PATH => path |
HEADERS => headerMap |
PARAMS => paramMap |
JSON => jsonStr } [, ..] )
Argumen
Kesalahan dimunculkan jika parameter ditentukan lebih dari sekali.
-
Konstanta
STRINGyang mengacu pada pengidentifikasi koneksi HTTP yang sudah ada. Argumen ini diperlukan httpMethodSTRINGEkspresi konstanta yang mewakili metode HTTP yang akan digunakan. Metode berikut didukung: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Argumen ini diperlukan.pathSTRINGEkspresi konstanta yang ditambahkan kebase_pathURL koneksi. Jalur tidak boleh berisi traversal direktori (../..). Argumen ini diperlukan.headerMapMAP<STRING, STRING>yang opsional berisi header permintaan. Defaultnya adalahNULL.paramMapMAP<STRING, STRING>opsional dengan parameter kueri permintaan dalam format JSON. Defaultnya adalahNULL.jsonStrEkspresi string JSON opsional dengan isi permintaan.
Pengembalian
STRUCT<status_code INT, text STRING> di mana
-
status_codeadalah kode status HTTP respons dari layanan eksternal. Misalnya: 200 atau 403. -
textadalah respons yang dikembalikan oleh layanan eksternal. Biasanya, ini adalah string JSON.
Contoh
-- Set up a connect to Slack.
> CREATE CONNECTION slack_conn
TYPE HTTP
OPTIONS (
host 'https://slack.com',
port '443',
base_path '/api/',
bearer_token 'xoxb-xxxxx'
);
-- 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",
)
);
Limitations
- Fungsi
http_requestini dibatasi lajunya. Ini dirancang untuk kasus penggunaan interaktif dan berbasis agen, bukan untuk kueri batch volume tinggi. Jika Anda menjalankanhttp_requestbanyak baris dalam satu kueri, permintaan mungkin dibatasi dan mengakibatkan kesalahan. Untuk mengatasi hal ini, gunakan Databricks SDK untuk Python mengirim permintaan dalam batch yang lebih kecil dengan penundaan di antara mereka. Untuk kode baru, Databricks merekomendasikan penggunaan titik akhir proksi koneksi Unity Catalog dengan SDK penyedia alih-alihhttp_request.