Enviar consultas mediante REST API
Información general
Teradata Query Service es una REST API para Vantage que puede utilizar para ejecutar declaraciones SQL estándar sin administrar controladores del lado del cliente. Utilice el servicio de consulta si desea consultar y acceder a la base de datos de análisis a través de una REST API.
Este tutorial proporciona ejemplos de casos de uso comunes para ayudarlo a comenzar con Query Service API.
Prerrequisitos
Antes de comenzar, asegúrese de tener:
- Acceso a un sistema VantageCloud donde se proporcione Query Service, o un VantageCore con conectividad habilitada para Query Service. Si es administrador y necesita instalar Query Service, consulte la Guía de instalación, configuración y uso de Query Service.
Si necesita una instancia de prueba de Vantage, puede obtener una de forma gratuita en https://clearscape.teradata.com
- Nombre de host del servicio de consulta y nombre del sistema
- Credenciales de autorización para conectarse a la base de datos
¿Tiene problemas con los requisitos previos? Póngase en contacto con Teradata para obtener información de configuración.
Ejemplos de API de servicio de consulta
Al utilizar los ejemplos, tenga en cuenta que:
- Los ejemplos de este documento utilizan Python y puede utilizarlos para crear ejemplos en el idioma que elija.
- Los ejemplos proporcionados aquí están completos y listos para su uso, aunque la mayoría requiere un poco de personalización.
- Los ejemplos de este documento utilizan la URL
https://<QS_HOSTNAME>:1443/
. - Reemplace las siguientes variables con su propio valor:
<QS_HOSTNAME>
: Servidor donde está instalado Query Service<SYSTEM_NAME>
: Alias preconfigurado del sistema
- Los ejemplos de este documento utilizan la URL
Si su instancia de Vantage se proporciona a través de ClearScape Analytics Experience,<QS_HOSTNAME>
, es la URL del host de su entorno de ClearScape Analytics Experience, <SYSTEM_NAME>
es "local".
Conectarse a su instancia de Query Service
Proporcione credenciales válidas para acceder a la base de datos de Analytics de destino mediante la autenticación HTTP básica o JWT.
Autenticación básica HTTP
El nombre de usuario y la contraseña de la base de datos se combinan en una cadena ("username : password"
) que posteriormente se codifica mediante Base64. La respuesta de la API contiene el método de autorización y las credenciales codificadas.
Solicitud
Respuesta
Autenticación JWT
Prerequisites:
- El usuario ya debe existir en la base de datos.
- La base de datos debe estar habilitada para JWT.
Solicitud
Respuesta
Realice una solicitud API simple con opciones básicas
En el siguiente ejemplo, la solicitud incluye:
-
SELECT * FROM DBC.DBCInfo
: la consulta al sistema con el alias<SYSTEM_NAME>
. -
'format': 'OBJECT'
: El formato de respuesta. Los formatos admitidos son: objeto JSON, matriz JSON y CSV.NotaEl formato de objeto JSON crea un objeto JSON por fila donde el nombre de la columna es el nombre del campo y el valor de la columna es el valor del campo.
-
'includeColumns': true
: la solicitud para incluir metadatos de columna, como nombres y tipos de columnas, en la respuesta. -
'rowLimit': 4
: el número de filas que se devolverán de una consulta.
Solicitud
Respuesta
Para conocer los parámetros de respuesta, consulte la Guía de instalación, configuración y uso de Query Service.
Solicitar una respuesta en formato CSV
Para devolver una respuesta API en formato CSV, configure el campo *format*
en la solicitud con el valor *CSV*
.
El formato CSV contiene solo los resultados de la consulta y no los metadatos de respuesta. La respuesta contiene una línea para cada fila, donde cada línea contiene las columnas de la fila separadas por una coma. El siguiente ejemplo devuelve los datos como valores separados por comas.
Solicitud
Respuesta
Utilice una sesión explícita para enviar una consulta
Utilice sesiones explícitas cuando una transacción necesite abarcar varias solicitudes o cuando utilice tablas volátiles. Estas sesiones solo se reutilizan si hace referencia a las sesiones en una solicitud de consulta. La solicitud se pone en cola si hace referencia a una sesión explícita que ya está en uso.
-
Crear una sesión Envíe una solicitud POST al punto final
/system/<SYSTEM_NAME>/sessions
. La solicitud crea una nueva sesión de base de datos y devuelve los detalles de la sesión como respuesta.En el siguiente ejemplo, la solicitud incluye
'auto_commit': True
: la solicitud para confirmar la consulta al finalizar.Solicitud
Respuesta
-
Utilice la sesión creada en el Paso 1 para enviar consultas.
Envíe una solicitud POST al punto final
/system/<SYSTEM_NAME>/queries
.La solicitud envía consultas al sistema de destino y devuelve la versión y el número de versión del sistema de destino.
En el siguiente ejemplo, la solicitud incluye:
SELECT * FROM DBC.DBCInfo
: la consulta al sistema con el alias<SYSTEM_NAME>
.'format': 'OBJECT'
: el formato de respuesta.'Session' : <Session ID>
: el ID de sesión devuelto en el Paso 1 para crear una sesión explícita.
Solicitud
Respuesta
Utilizar consultas asincrónicas
Utilice consultas asincrónicas cuando el rendimiento de un sistema o red se vea afectado por la consulta de un gran grupo de datos o consultas de larga duración.
-
Envíe consultas asincrónicas al sistema de destino y recupere un ID de consulta Envíe una solicitud POST al punto final
/system/<SYSTEM_NAME>/queries
. En el siguiente ejemplo, la solicitud incluye: *SELECT * FROM DBC.DBCInfo
: la consulta al sistema con el alias<SYSTEM_NAME>
. *'format': 'OBJECT'
: el formato de respuesta. *'spooled_result_set': True
: la indicación de que la solicitud es asincrónica.Solicitud
Respuesta
-
Obtenga los detalles de la consulta utilizando el ID recuperado en el Paso 1
Envíe una solicitud GET al punto final
/system/<SYSTEM_NAME>/queries/<queryID>
, reemplazando<queryID>
con el ID recuperado en el Paso 1.La solicitud devuelve los detalles de la consulta específica, incluidos
queryState
,queueOrder
,queueDuration
, etc. Para obtener una lista completa de los campos de respuesta y sus descripciones, consulte la Guía de instalación, configuración y uso de Query Service.Solicitud
Respuesta
-
Ver el conjunto de resultados de la consulta asincrónica
Envíe una solicitud GET al punto final
/system/<SYSTEM_NAME>/queries/<queryID>/results
, reemplazando<queryID>
con el ID recuperado en el Paso 1.La solicitud devuelve una matriz de los conjuntos de resultados y los recuentos de actualizaciones producidos por la consulta enviada.
Solicitud
Respuesta
Obtener una lista de consultas activas o en cola
Envíe una solicitud GET al punto final /system/<SYSTEM_NAME>/queries
. La solicitud devuelve los ID de las consultas activas.
Solicitud
Respuesta
Recursos
- Características, ejemplos y referencias: Guía de instalación, configuración y uso de Query Service
- Especificación de OpenAPI de la API del servicio de consulta
Si tiene alguna pregunta o necesita más ayuda, visite nuestro foro de la comunidad donde podrá obtener ayuda e interactuar con otros miembros de la comunidad.