更新时间:2022-12-07 GMT+08:00

创建表

功能介绍

该API用于创建新的表。

URI

  • URI格式:

    POST /v1.0/{project_id}/databases/{database_name}/tables

  • 参数说明
    表1 URI 参数

    参数名称

    是否必选

    参数类型

    说明

    project_id

    String

    项目编号,用于资源隔离。获取方式请参考获取项目ID

    database_name

    String

    新增表所在的数据库名称。

请求消息

表2 请求参数

参数名称

是否必选

参数类型

说明

table_name

String

新增表名称。

  • 表名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。
  • 表名称大小写不敏感且不能为空。
  • 表名称支持包含“$”符号。例如:$test。
  • 输入长度不能超过128个字符。

data_location

String

数据存储的地方。范围为:

  • OBS:OBS表。
  • DLI:DLI表。
  • VIEW:VIEW表。

description

String

新增表的描述信息。

columns

Array of Objects

新增表的列。列相关参数请参考表3。data_location为VIEW时可不填写。

select_statement

String

创建视图时依赖的查找语句。查找语句中的表需要附加所属数据库,即 “数据库.数据表”格式。data_location为VIEW时填写。

data_type

String

新增OBS表数据的类型,目前支持:Parquet、ORC、CSV、JSON和Avro格式。

说明:

OBS表必选参数。

data_path

String

新增OBS表数据的存储路径,必须是OBS的路径。

说明:

OBS表必选参数。

data_path配置的OBS桶路径不建议为根目录,否则清空表数据的时候,就会把根目录内的数据全部清除,导致数据丢失。

with_column_header

Boolean

OBS表数据是否包含表头。只有CSV类型数据具有该属性。data_location为OBS时填写。

delimiter

String

用户自定义数据分隔符。只有CSV类型数据具有该属性。data_location为OBS时填写。

quote_char

String

用户自定义引用字符,默认为双引号(即“\"”)。只有CSV类型数据具有该属性。data_location为OBS时填写。

escape_char

String

用户自定义转义字符,默认为反斜杠(即"\\")。只有CSV类型数据具有该属性。data_location为OBS时填写。

date_format

String

用户自定义日期类型,默认格式为“yyyy-MM-dd”。日期格式字符定义详见表3。只有CSV和JSON类型数据具有该属性。data_location为OBS时填写。

timestamp_format

String

用户自定义时间类型。默认格式为“yyyy-MM-dd HH:mm:ss”。时间戳格式字符定义详见表3。只有CSV和JSON类型数据具有该属性。data_location为OBS时填写。

表3 columns参数

参数名称

是否必选

参数类型

说明

column_name

String

列的名称。

type

String

列的数据类型。

description

String

列的描述信息。

is_partition_column

Boolean

表示该列是否为分区列。“true”表示为分区列,“false”为非分区列,默认为“false”。

说明:

创建分区表时,需要保证表中至少有一列为非分区列。详见“请求样例”。

响应消息

表4 响应参数

参数名称

是否必选

参数类型

说明

is_success

Boolean

执行请求是否成功。“true”表示请求执行成功。

message

String

系统提示信息,执行成功时,信息可能为空。

请求示例

  • data_location为OBS时的请求样例:
    {
      "table_name": "tb1",
      "data_location": "OBS",
      "description": "",
      "data_type": "csv",
      "data_path": "obs://obs/path1",
      "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"
    }

    “date_format”“timestamp_format”的格式需与导入的csv文件中的时间格式一致。

  • data_location为VIEW时的请求样例:
    {
      "table_name": "view1",
      "data_location": "VIEW",
      "columns": [
      {
         "column_name": "column1",
         "type": "string",
         "description": "",
         "is_partition_column": true
      },
      {
         "column_name": "column2",
         "type": "string",
         "description": "",
         "is_partition_column": false
      }
      ],
      "select_statement": "select * from db1.tb1"
    }

响应示例

{
  "is_success": true,
  "message": ""
}

状态码

状态码如表5所示。

表5 状态码

状态码

描述

200

创建成功。

400

请求错误。

500

内部服务器错误。

错误码

调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码