http_request işlevi

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

Tanımlı bir HTTP bağlantısı kullanarak HTTP isteğinde bulunur.

Bu işlev adlandırılmış parametre çağırması gerektirir.

Sözdizimi

http_request( { CONN => connectionName |
                METHOD => httpMethod |
                PATH => path |
                HEADERS => headerMap |
                PARAMS => paramMap |
                JSON => jsonStr  } [, ..] )

Argümanlar

Bir parametre birden çok kez belirtilirse bir hata oluşur.

  • connectionName

    Var olan bir HTTP bağlantı tanımlayıcısını gösteren STRING sabiti. Bu argüman gereklidir

  • httpMethod

    STRING Kullanılacak HTTP yöntemini temsil eden sabit ifade. Aşağıdaki yöntemler desteklenir: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Bu argüman gereklidir.

  • path

    Bağlantı URL'sinin STRING sonuna eklenen base_path. Yol dizin geçişi (../..) içermemelidir. Bu argüman gereklidir.

  • headerMap

    İsteğe bağlı istek üst bilgilerini içeren bir MAP<STRING, STRING>. Varsayılan değer NULL.

  • paramMap

    JSON biçiminde istek sorgu parametrelerine sahip isteğe bağlı bir MAP<STRING, STRING>. Varsayılan değer NULL.

  • jsonStr

    İstek gövdesine sahip isteğe bağlı bir JSON dize ifadesi.

İadeler

Bir STRUCT<status_code INT, text STRING> olan yer

  • status_code, dış hizmetten gelen yanıtın HTTP durum kodudur. Örneğin: 200 veya 403.
  • text, dış hizmet tarafından döndürülen yanıttır. Bu genellikle bir JSON dizesidir.

Örnekler

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

Sınırlamalar

  • İşlev http_request hız sınırına sahiptir. Yüksek hacimli toplu iş sorguları için değil, etkileşimli ve aracı tabanlı kullanım örnekleri için tasarlanmıştır. Tek bir sorguda birçok satırda çalışıyorsanız http_request , istekler kısıtlanabilir ve hatalara neden olabilir. Bu sorunu geçici olarak çözmek için Python için Databricks SDK'sını kullanarak istekleri aralarında gecikmeler olan daha küçük toplu işlemler halinde gönderin. Databricks, yeni kod için yerine sağlayıcının SDK'sı http_requestile Unity Kataloğu bağlantıları ara uç noktasının kullanılmasını önerir.