Requisitos previos
- Una clave de API con los permisos adecuados
- Un rol de Admin Console
Permisos mínimosPara consultar un endpoint de API, la clave de API necesita el rol de organización
Member con acceso al servicio Query Endpoints. El rol de la base de datos se configura cuando creas el endpoint.1
Crear una consulta guardada
Si ya tienes una consulta guardada, puedes omitir este paso.Abre una nueva pestaña de consulta. Para esta demostración, usaremos el dataset de YouTube, que contiene aproximadamente 4,5 mil millones de registros. Sigue los pasos de la sección “Create table” para crear la tabla en tu servicio Cloud e insertar datos en ella.Como consulta de ejemplo, devolveremos los 10uploaders con mayor promedio de visualizaciones por vídeo, usando un parámetro year introducido por el usuario.year), que aparece resaltado en el fragmento anterior.
Puedes especificar parámetros de consulta usando { } junto con el tipo del parámetro.
El editor de consultas de la consola SQL detecta automáticamente las expresiones de parámetros de consulta de ClickHouse y proporciona un campo de entrada para cada parámetro.Vamos a ejecutar rápidamente esta consulta para asegurarnos de que funciona, especificando el año 2010 en el campo de variables de consulta situado a la derecha del editor SQL:A continuación, guarda la consulta:Puedes encontrar más documentación sobre las consultas guardadas en la sección “Saving a query”.2
Configurar el endpoint de la API de consultas
Los endpoints de la API de consultas se pueden configurar directamente desde la vista de consulta haciendo clic en el botón Share y seleccionandoAPI Endpoint.
Se te pedirá que especifiques qué claves API podrán acceder al endpoint:Después de seleccionar una clave API, se te pedirá que:- Selecciones el rol de base de datos que se usará para ejecutar la consulta (
Full access,Read onlyoCreate a custom role) - Especifiques los dominios permitidos para el uso compartido de recursos entre orígenes (CORS)
curl de ejemplo para que puedas enviar una solicitud de prueba:A continuación se muestra, para mayor comodidad, el comando curl que aparece en la interfaz:3
Parámetros de la API de consultas
Los parámetros de consulta pueden especificarse con la sintaxis{parameter_name: type}. Estos parámetros se detectarán automáticamente y el payload de solicitud de ejemplo contendrá un objeto queryVariables mediante el cual podrás pasarlos.4
Pruebas y monitorización
Una vez creado un endpoint de la API de consultas, puedes comprobar que funciona usandocurl o cualquier otro cliente HTTP:Después de enviar tu primera solicitud, debería aparecer de inmediato un nuevo botón a la derecha del botón Share. Al hacer clic en él, se abrirá un panel lateral con datos de monitorización sobre la consulta:Detalles de implementación
Métodos HTTP
Cuándo usar GET:
- Consultas simples sin datos anidados complejos
- Los parámetros pueden codificarse fácilmente en la URL
- El almacenamiento en caché se beneficia de la semántica de HTTP GET
- Variables de consulta complejas (arrays, objetos, cadenas largas)
- Cuando se prefiere el cuerpo de la solicitud por motivos de seguridad o privacidad
- Subida de archivos en streaming o grandes volúmenes de datos
Autenticación
Configuración de la solicitud
Parámetros de URL
Parámetros de consulta
Cabeceras
Cuerpo de la solicitud
Parámetros
Formatos compatibles
Respuestas
Éxito
200 OK
La consulta se ejecutó correctamente.
Códigos de error
Buenas prácticas para la gestión de errores
- Asegúrese de incluir credenciales de autenticación válidas en la solicitud
- Valide
queryEndpointIdyqueryVariablesantes de enviarlos - Implemente una gestión de errores adecuada con mensajes de error claros
Actualización de versiones del endpoint
- Incluya el encabezado
x-clickhouse-endpoint-upgradeestablecido en1 - Incluya el encabezado
x-clickhouse-endpoint-versionestablecido en2
- Compatibilidad con todos los formatos de ClickHouse
- Capacidades de streaming de respuestas
- Mejoras de rendimiento y funcionalidad
Ejemplos
Solicitud básica
Versión 1
- cURL
- JavaScript
Versión 2
- GET (cURL)
- POST (cURL)
- JavaScript
Respuesta
Solicitud con variables de consulta y versión 2 en formato JSONCompactEachRow
- GET (cURL)
- POST (cURL)
- JavaScript
Respuesta
Solicitud con un array en las variables de la consulta para insertar datos en una tabla
- cURL
- JavaScript
Solicitud con el ajuste de ClickHouse max_threads establecido en 8
- GET (cURL)
- POST (cURL)
- JavaScript
Solicitar y procesar la respuesta como un flujo
- TypeScript
Salida
Insertar un flujo de datos desde un archivo en una tabla
./samples/my_first_table_2024-07-11.csv con el siguiente contenido: