Funzione http_request

Si applica a:contrassegnato come sì Databricks SQL contrassegnato come sì Databricks Runtime 16.2 e versioni successive

Effettua una richiesta HTTP usando una connessione HTTP definita.

Questa funzione richiede la chiamata di parametri denominati.

Sintassi

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

Argomenti

Se un parametro viene specificato più volte, viene generato un errore.

  • connectionName

    Costante STRING che fa riferimento a un identificatore di connessione HTTP esistente. Questo argomento è obbligatorio

  • httpMethod

    Espressione STRINGcostante che rappresenta il metodo HTTP da utilizzare. Sono supportati i metodi seguenti: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Questo argomento è obbligatorio.

  • path

    Espressione STRINGcostante che viene aggiunta all'oggetto base_path dell'URL di connessione. Il percorso non deve contenere la traversata della directory (../..). Questo argomento è obbligatorio.

  • headerMap

    Un MAP<STRING, STRING> facoltativo contenente le intestazioni della richiesta. Il valore predefinito è NULL.

  • paramMap

    Un MAP<STRING, STRING> facoltativo con parametri di query della richiesta in formato JSON. Il valore predefinito è NULL.

  • jsonStr

    Espressione stringa JSON facoltativa con il corpo della richiesta.

Restituzioni

Un STRUCT<status_code INT, text STRING> in cui

  • status_code è il codice di stato HTTP della risposta dal servizio esterno. Ad esempio: 200 o 403.
  • text è la risposta restituita dal servizio esterno. In genere, si tratta di una stringa JSON.

Esempi

-- 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

  • La http_request funzione è limitata. È progettato per casi d'uso interattivi e basati su agente, non per le query batch con volumi elevati. Se si eseguono http_request in più righe in una singola query, le richieste potrebbero essere limitate e generare errori. Per risolvere questo problema, usare Databricks SDK per Python per inviare richieste in batch più piccoli con ritardi tra di essi. Per il nuovo codice, Databricks consiglia di usare l'endpoint proxy delle connessioni del catalogo Unity con l'SDK del provider anziché http_request.