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.