http_request Función

Se aplica a:marcado con sí Databricks SQL marcado con sí Databricks Runtime 16.2 y versiones posteriores

Realiza una solicitud HTTP mediante una conexión HTTP definida.

Esta función requiere la invocación de parámetros con nombre.

Sintaxis

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

Argumentos

Se produce un error si se especifica un parámetro más de una vez.

  • connectionName

    Constante STRING que hace referencia a un identificador de conexión HTTP existente. Este argumento es obligatorio

  • httpMethod

    Expresión STRINGconstante que representa el método HTTP que se va a usar. Se admiten los métodos siguientes: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH'. Este argumento es obligatorio.

  • path

    Expresión STRINGconstante que se anexa a la base_path de la dirección URL de conexión. La ruta de acceso no debe contener recorrido de directorios (../..). Este argumento es obligatorio.

  • headerMap

    Un MAP<STRING, STRING> opcional que contiene encabezados de solicitud. El valor predeterminado es NULL.

  • paramMap

    Un MAP<STRING, STRING> opcional con los parámetros de consulta de petición en formato JSON. El valor predeterminado es NULL.

  • jsonStr

    Expresión de cadena JSON opcional con el cuerpo de la solicitud.

Devoluciones

Un STRUCT<status_code INT, text STRING> donde

  • status_code es el código de estado HTTP de la respuesta del servicio externo. Por ejemplo: 200 o 403.
  • text es la respuesta devuelta por el servicio externo. Normalmente, se trata de una cadena JSON.

Ejemplos

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

Limitaciones

  • La http_request función está limitada por velocidad. Está diseñado para casos de uso interactivos y basados en agentes, no para consultas por lotes de gran volumen. Si se ejecuta http_request en muchas filas en una sola consulta, es posible que las solicitudes se limite y produzcan errores. Para solucionar este problema, use el SDK de Databricks para Python enviar solicitudes en lotes más pequeños con retrasos entre ellos. Para el nuevo código, Databricks recomienda usar el punto de conexión de proxy de conexiones del catálogo de Unity con el SDK del proveedor en lugar de .http_request