更新时间:2024-03-15 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

新增表的列。列相关参数请参考表4。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时填写。

tags

Array of Objects

数据库的标签。具体请参考tags参数

表3 tags参数

参数名称

是否必选

参数类型

说明

key

String

标签的键。

说明:

标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格,不能以_sys_开头。

value

String

标签的值。

说明:

标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格。

表4 columns参数

参数名称

是否必选

参数类型

说明

column_name

String

列的名称。

type

String

列的数据类型。

description

String

列的描述信息。

is_partition_column

Boolean

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

说明:

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

响应消息

表5 响应参数

参数名称

是否必选

参数类型

说明

is_success

Boolean

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

message

String

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

请求示例

  • 创建一个data_location为OBS表,数据格式为CSV。
    {
      "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为DLI的表。
    {
      "table_name": "tb2", 
      "data_location": "DLI", 
      "columns": [
        {
          "column_name": "column1", 
          "type": "string", 
          "description": "", 
          "is_partition_column": true
        }, 
        {
          "column_name": "column2", 
          "type": "string", 
          "description": "", 
          "is_partition_column": false
        }
      ], 
      "tags": [
        {
          "key": "quarterly", 
          "value": "Q3"
        }, 
        {
          "key": "author", 
          "value": "user"
        }
      ]
    }
  • 创建一个data_location为VIEW表。
    {
      "table_name": "tb3",
      "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": ""
}

状态码

状态码如表6所示。

表6 状态码

状态码

描述

200

创建成功。

400

请求错误。

500

内部服务器错误。

错误码

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