Envío de una sentencia SQL
Función
Esta API se utiliza para enviar y ejecutar una sentencia SQL en un clúster MRS.
Restricciones
Ninguna
Depuración
Puede depurar esta API a través de la autenticación automática en API Explorer. API Explorer puede generar automáticamente código SDK de ejemplo y proporcionar la depuración de código SDK de ejemplo.
URI
- Formato
- Descripción de parámetro
Tabla 1 Parámetros de URI Parámetro
Obligatorio
Tipo
Descripción
project_id
Sí
String
El ID del proyecto. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.
cluster_id
Sí
String
El ID del clúster. Para obtener más información acerca de cómo obtener el ID de clúster, consulte Obtención de un ID de clúster.
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
sql_type |
Sí |
String |
El tipo SQL. Actualmente, solo se soporta el SQL del tipo presto.
NOTA:
|
sql_content |
Sí |
String |
La sentencia SQL que se va a ejecutar.
NOTA:
Actualmente, solo se puede ejecutar una única sentencia SQL a la vez, y la sentencia no puede contener un punto y coma (;). |
database |
No |
String |
La base de datos donde se encuentra la sentencia SQL que se va a ejecutar. El valor predeterminado es default. |
archive_path |
No |
String |
El directorio para almacenar los resultados de ejecución SQL volcados.
NOTA:
Sólo la sentencia SELECT volca los resultados de la consulta. Actualmente, los resultados de la consulta solo se pueden volcar a OBS. |
Parámetros de respuesta
Código de estado: 200
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de ejecución de una sentencia SQL. El ID sólo se genera cuando se ejecuta la sentencia SELECT, SHOW o DESC. Para otras operaciones, el ID está vacío. |
message |
String |
El mensaje de error. |
statement |
String |
La sentencia SQL que se va a ejecutar. |
status |
String |
El estado de ejecución de una sentencia SQL. Valores posibles:
|
result_location |
String |
Ruta de acceso para archivar los resultados finales de la sentencia de consulta SQL.
NOTA:
Solo la sentencia SELECT volca los resultados de la ejecución de SQL a result_location. |
content |
Array<Array<String>> |
Resultado de la ejecución de la sentencia SQL.
NOTA:
Solo las sentencias que no sean SELECT devuelven resultados en content. Si la sentencia SQL no devuelve resultados, content está vacío. |
Código de estado: 400
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
El código de error. |
error_msg |
String |
El mensaje de error. |
Solicitud de ejemplo
Ejemplo de solicitud para enviar una sentencia SQL
POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/sql-execution { "sql_type" : "presto", "sql_content" : "show tables", "database" : "default", "archive_path" : "obs://my-bucket/path" }
Ejemplo de respuesta
Código de estado: 200
La sentencia SQL se envía correctamente.
{ "id" : "20190909_011820_00151_xxxxx", "statement" : "show tables", "status" : "FINISHED", "result_location" : " obs://my_bucket/uuid_date/xxxx.csv", "content" : [ [ "t1", null ], [ null, "t2" ], [ null, "t3" ] ] }
Código de estado: 400
Error al enviar la sentencia SQL.
{ "error_code" : "MRS.0011", "message": "Failed to submit SQL to the executor. The cluster ID is xxxx" }
Códigos de estado
Consulte Códigos de estado.
Códigos de error
Consulte Códigos de error.