
# AuraJobV2作业接口应用示例
#### 概述
本文指导用户通过调用API的方式，介绍使用AuraJobV2作业的完整流程，包括创建会话、执行SQL、查看SQL执行结果、关闭会话等。
本流程假设终端租户已经在Console界面完成AI DataLake的服务授权，且已创建工作空间和会话端点。API的调用方法请参见[如何调用API](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0004.html)。
#### 前提条件
- Aura端点已创建成功并处于"运行中"。
- 已获取待创建会话Aura的引擎地址。
- 已获取待创建会话的工作空间ID。
- 已获取待创建会话的端点名称。
- 已获取待创建会话的lakeformation的catalog名称。
 
#### 创建会话
- 接口相关信息 URI格式：POST /v2/workspaces/{workspace_id}/aura-sessions
  详情请参见[创建Session - CreateAuraV2SqlSession](https://support.huaweicloud.com/api-aidatalake/CreateAuraV2SqlSession.html)。
  
- 请求示例 POST /v2/workspaces/{workspace_id}/aura-sessions
  {workspace_id}：端点所在工作空间ID。
  Body：
  ```
  {
      "endpoint_name":"aura-job-vzhh",
      "catalog_context":{
          "catalog_name": "xxx_default",
       }
  }
  ```
  
- 响应示例
  ```
  {
    "session_id": "019ec92b-f4cc-xxxx-xxxx-C46dcdd60929",
    "status": "RUNNING"
  }
  ```
  
 
#### 执行SQL
- 接口相关信息 URI格式：POST /v2/workspaces/{workspace_id}/aura-sessions/statements
  详情请参见[在指定Session中执行SQL - ExecuteAuraV2SqlStatement](https://support.huaweicloud.com/api-aidatalake/ExecuteAuraV2SqlStatement.html)。
  
- 请求示例 POST /v2/workspaces/{workspace_id}/aura-sessions/statements
  {workspace_id}：端点所在工作空间ID。
  Body：
  ```
  {
      "statement":"DROP SCHEMA IF EXISTS abcdefgh CASCADE;CREATE SCHEMA abcdefgh;drop function if exists test gpu;CREATE FUNCTION test_gpu(x INTEGER)\nRETURNS TEXT\nhandler = .check gpu simple'\nruntime version = '3.11'\nAS $$\ndef check gpu_simple(x):\nreturn \"hello world\"\n$S LANGUAGE python;",
      "limit":"1",
      "session_id": "019ec92b-f4cc-xxxx-xxxx-C46dcdd60929",
      "is_sync": false
  }
  ```
  
- 响应示例
  ```
  {
    "session_id": "019ec92b-f4cc-xxxx-xxxx-C46dcdd60929",
    "statement_id": "019eb5fb-871d-xxxx-xxxx-68534fa6f089",
    "status": 1
  }
  ```
  
  
 
#### 查看SQL执行结果
- 接口相关信息 URI格式：POST /v2/workspaces/{workspace_id}/aura-sessions/statements/{statement_id}
  详情请参见[查看SQL执行结果 - ShowAuraV2SqlStatementResult](https://support.huaweicloud.com/api-aidatalake/ShowAuraV2SqlStatementResult.html)。
  
- 请求示例 POST /v2/workspaces/{workspace_id}/aura-sessions/statements/{statement_id}
  - {workspace_id}信息为端点所在工作空间ID。
  
  - {statement_id}信息为SQL执行的任务ID。
   
- 响应示例。
  ```
  {
    "status" : 0,
    "session_id" : "019ec92b-f4cc-xxxx-xxxx-C46dcdd60929",
    "statement_id" : "019eb5fb-871d-xxxx-xxxx-68534fa6f089",
    "results" : [ {
      "status" : "PGRES_TUPLES_OK",
      "statement_id" : "019eb5fb-871d-xxxx-xxxx-68534fa6f089",
      "num_rows" : 1,
      "row_count" : 1,
      "page_count" : 1,
      "page_no" : 1,
      "err_code" : "0",
      "sql_state" : "0",
      "message" : "",
      "result_set" : {
        "columns" : [ {
          "name" : "test_gpu",
          "table_id" : 0,
          "column_id" : 0,
          "format" : 0,
          "type" : 25,
          "size" : -1,
          "type_mod" : -1
        } ],
        "rows" : [ [ "0000000" ] ]
      }
    } ]
  }
  ```
  
 
#### 关闭会话
- 接口相关信息 URI格式：DELETE /v2/workspaces/{workspace_id}/aura-sessions/{session_id}
  详情请参见[关闭Session - CloseAuraV2SqlSession](https://support.huaweicloud.com/api-aidatalake/CloseAuraV2SqlSession.html)。
  
- 请求示例 DELETE /v2/workspaces/{workspace_id}/aura-sessions/{session_id}
  - {workspace_id}信息为端点所在工作空间ID。
  
  - {statement_id}信息为SQL执行的任务ID。
   
 
