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.