更新时间:2022-02-22 GMT+08:00

创建并提交SQL作业

场景描述

本章节指导用户通过API创建并查询SQL作业。API的调用方法请参见如何调用API

约束限制

  • 新队列第一次运行作业时,需要一定的时间,通常为6~10分钟。

涉及接口

操作步骤

  1. 创建SQL队列。具体请参考创建队列
  2. 创建数据库。
    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/databases

    • 请求示例
      • 描述:在项目ID为48cc2c48765f481480c7db940d6409d1的项目下创建一个名称为db1的数据库。
      • 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/databases
      • Body:
        {
             "database_name": "db1",
             "description": "this is for test"
        }
    • 响应示例
      {
        "is_success": true,
        "message": ""
      }
  3. 创建表。
    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/databases/{database_name}/tables

    • 请求示例
      • 描述:在项目ID为48cc2c48765f481480c7db940d6409d1的项目下,在数据库db1中新建名称为tb1的表。
      • 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/databases/db1/tables
      • Body:
        {
          "table_name": "tb1",
          "data_location": "OBS",
          "description": "",
          "data_type": "csv",
          "data_path": "obs://obs/path1/test.csv",
          "columns": [
          {
             "column_name": "column1",
             "type": "string",
             "description": "",
             "is_partition_column": true
          },
          {
             "column_name": "column2",
             "type": "string",
             "description": "",
             "is_partition_column": false
          }
          ],
          "with_column_header": true,
          "delimiter": ",",
          "quote_char": "\"",
          "escape_char": "\\",
          "date_format": "yyyy-MM-dd",
          "timestamp_format": "yyyy-MM-dd HH:mm:ss"
        }
    • 响应示例
      {
        "is_success": true,
        "message": ""
      }
  4. (可选)如果创建表时,表中没有数据,可使用导入数据接口将数据导入表中。
  5. (可选)导入数据后,可使用查询作业详细信息接口确认导入的数据是否正确。
  6. 提交查询作业。
    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/jobs/submit-job

    • 请求示例
      • 描述:在项目ID为48cc2c48765f481480c7db940d6409d1的项目下,提交SQL作业,用户查询数据库db1中表tb1的数据。
      • 示例URL:POST https://{endpoint}/v1.0/48cc2c48765f481480c7db940d6409d1/jobs/submit-job
      • Body:
        {
            "currentdb": "db1",
            "sql": "select * from tb1 limit 10",
            "queue_name": "queue1"
        }
    • 响应示例
      {
        "is_success": true,
        "message": "",
        "job_id":""95fcc908-9f1b-446c-8643-5653891d9fd9",
        "job_type": "QUERY",
        "job_mode": "async"
      }