调用CreateTable创建一个MaxCompute的表或视图。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateTable

系统规定参数。取值:CreateTable

IsView Integer 0

指定创建视图或创建表:

  • 0为创建表。
  • 1为创建视图。
Visibility Integer 1

表或工作空间是否可见:

  • 0为表和工作空间均不可见。
  • 1为表和工作空间均可见。
  • 2为仅工作空间可见。
LifeCycle Integer 10

表的生命周期,单位为天。默认取值为空,表示永久存储。

CategoryId Long 101

关联类目的ID。您可以通过GetMetaCategory接口查询可以关联的类目ID。

LogicalLevelId Long 101

逻辑层级ID。

PhysicsLevelId Long 101

物理层级ID。

ExternalTableType String 0

外部表的存储类型。取值如下:

  • 0表示OSS。
  • 1表示TableStore。
  • 2表示Volume。
  • 3表示MySQL。
Location String location

外部表的存储地址。

ProjectId Long 23

DataWorks工作空间的ID。

TableName String tableName1

表的名称。

Endpoint String odps://abc

MaxCompute的Endpoint。

EnvType Integer 1

DataWorks工作空间的环境。取值如下:

  • 0表示开发环境。
  • 1表示生产环境。
AppGuid String odps.test

MaxCompute项目的ID,格式为odps.{projectName}。

Comment String 备注

备注信息。

HasPart Integer 0

创建的MaxCompute表是否为分区表,包括1(是)和0(否)。该字段已废弃,请勿使用。

目前代码会根据Column.N.isPartitionCol参数判断MaxCompute表是否为分区表,当Column.N.isPartitionCol参数取值为true时,则认为MaxCompute表为分区表。

ClientToken String 保留字段

保留字段。

Schema String default

表Schema信息。在ODPS,当您启动了三层模型时需要填写Schema信息。

Columns.N.ColumnNameCn String 中文名

字段的中文名称。

Columns.N.ColumnName String columnName1

字段的名称。

CreateTable API当前最多支持配置1000个字段。

Columns.N.Comment String 备注

字段的备注信息。

Columns.N.ColumnType String string

字段的类型。

Columns.N.SeqNumber Integer 1

字段的序列号。您可以指定字段在表中的排序,默认按照创建请求的顺序排序。

如果字段为分区字段,则不支持配置Columns.N.SeqNumber。

Columns.N.Length Integer 10

字段的长度,详情请参见:数据类型版本

Columns.N.IsPartitionCol Boolean true

当前字段是否为分区字段。

Themes.N.ThemeId Long 101

主题ID。

Themes.N.ThemeLevel Integer 101

主题ID对应的主题层级。

返回数据

名称 类型 示例值 描述
RequestId String abcdef

请求ID。

TaskInfo Object

请求任务的信息。

请求任务提交成功后,会被分为多个子任务有序执行。当前子任务执行成功后,才会继续执行下一个子任务,所有子任务执行完毕,该请求任务结束。

如下情况,请求任务会终止,您需要根据错误码信息解决问题后重新发起请求任务:

  • 请求任务提交失败。
  • 请求任务提交成功后,任意子任务执行失败。
Status String success

当前执行的子任务的状态信息。取值如下:

  • operating表示子任务正在执行中。
  • success表示子任务执行成功。
  • failure表示子任务执行失败。详细的报错信息请参见Content参数。
NextTaskId String abc1

即将执行的子任务ID。如果该字段为空,则表示所有子任务均已结束。您可以使用获取到的ID,从GetDDLJobStatus接口查询对应子任务的状态。

TaskId String abc

当前执行的子任务ID。

Content String success

当前子任务的执行状态详细信息。具体如下:

  • 执行成功,则显示success。
  • 执行失败则显示对应的报错详情。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateTable
&Columns.1.ColumnName=columnName1
&Columns.1.ColumnType=string
&RegionId=cn-shanghai
&TableName=tableName1
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateTableResponse>
    <TaskInfo>
        <Status>success</Status>
        <TaskId>abc</TaskId>
        <Content>success</Content>
        <NextTaskId>abc1</NextTaskId>
    </TaskInfo>
    <RequestId>abcdef</RequestId>
</CreateTableResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "TaskInfo" : {
    "Status" : "success",
    "TaskId" : "abc",
    "Content" : "success",
    "NextTaskId" : "abc1"
  },
  "RequestId" : "abcdef"
}

错误码

HttpCode 错误码 错误信息 描述
403 Forbidden.Access Access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition. 您被限制访问,请开通DataWorks企业版或旗舰版。
429 Throttling.Api The request for this resource has exceeded your available limit. 对该资源的请求已超过您的可用上限。
429 Throttling.Api.Risk The request for this resource has exceeded your daily available limit. 对该资源的请求已超过您的每日可用上限。
429 Throttling.System The DataWorks system is busy. Try again later. DataWorks系统繁忙,请稍后再试。
429 Throttling.User Your request is too frequent. Try again later. 您的请求过于频繁,请尝试放缓请求速度。
500 InternalError.System An internal system error occurred. Try again later. 系统内部错误,请稍后再试。
500 InternalError.UserId.Missing An internal system error occurred. Try again later. 系统内部错误,请稍后再试。

访问错误中心查看更多错误码。