创建表 - CreateTable
功能介绍
创建表操作。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。
URI
POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目编号。获取方法,请参见获取项目ID。 |
instance_id | 是 | String | LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 |
catalog_name | 是 | String | catalog名称。只能包含字母、数字和下划线,且长度为1~256个字符。 |
database_name | 是 | String | 数据库名称。只能包含中文、字母、数字、下划线、中划线,且长度为1~128个字符。 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | Array of strings | 租户token。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
table_name | 是 | String | 表名称。只能包含中文、字母、数字、下划线、中划线,且长度为1~256个字符。 |
table_format | 否 | String | 表格式。支持{HIVE,ICEBERG},默认值为HIVE。 |
table_type | 否 | String | 表类型:MANAGED_TABLE-内表、EXTERNAL_TABLE-外表、VIRTUAL_VIEW-视图、MATERIALIZED_VIEW-物化视图、DICTIONARY_TABLE字典表,LAKE_TABLE内表。 |
owner | 否 | String | 表所有者。只能包含字母、数字和下划线,且长度为1~49个字符。 |
owner_type | 否 | String | 所有者类型:USER-用户、GROUP-组、ROLE-角色。 |
owner_auth_source_type | 否 | String | 所有者来源:IAM-云用户、SAML-联邦、LDAP-ld用户、LOCAL-本地用户、AGENTTENANT-委托、OTHER-其它。LakeFormation服务分为一期和二期,一期响应Body无该参数。 |
create_time | 否 | String | 表创建时间。 |
last_access_time | 否 | String | 最近一次访问时间。 |
last_analyzed_time | 否 | String | 最近一次分析统计时间。 |
partition_keys | 否 | Array of Column objects | 分区列的信息。 |
retention | 否 | Integer | 表保留时间。 |
storage_descriptor | 是 | StorageDescriptor object | 数据存储。 |
parameters | 否 | Map<String,String> | 表参数信息,每个键是一个键字符串,不少于 1 个字节或超过 255 个字节 每个值是一个 UTF-8 字符串,不超过 100000 个字节 |
comments | 否 | String | 表描述信息。由用户创建表时输入,最大长度为4000个字符。 |
view_expanded_text | 否 | String | 如果表是视图,则为视图的扩展文本。 |
view_original_text | 否 | String | 如果表是视图,则为视图的原始文本。 |
ignore_obs_checked | 否 | Boolean | 是否忽略内表建表时对Obs路径的限制。 |
external_table_id | 否 | String | 用户端表id,创建时指定,不可修改。 |
data_statistic_enable | 否 | Boolean | 数据概况统计开关。默认状态为开,修改table开关状态后,还需检查所属database的开关状态。例如:table与所属database开关同时打开,则数据概况统计开启。否则关闭 |
create_open_table_format_input | 否 | CreateOpenTableFormatInput object | 开源湖表格式创建结构体 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
columns | 是 | Array of Column objects | 分区列以外的所有字段。 |
location | 否 | String | 路径地址。例如obs://location/uri/。 |
compressed | 是 | Boolean | 是否启用数据压缩。默认为false。 |
input_format | 否 | String | 输入格式。 |
output_format | 否 | String | 输出格式。 |
number_of_buckets | 否 | Integer | 分桶的桶数量。默认值为0。 |
bucket_columns | 否 | Array of strings | 分桶字段。 |
sort_columns | 否 | Array of Order objects | 指定表中的每个存储桶的排序顺序的列表。 |
serde_info | 是 | SerDeInfo object | 序列化/反序列化信息。 |
parameters | 是 | Map<String,String> | 存储描述符的参数。 key最小长度为1,最大长度为255。 value最大长度为100000 |
skewed_info | 否 | SkewedInfo object | 有关在列中经常出现的值(偏斜值)的信息。 |
stored_as_sub_directories | 否 | Boolean | 数据是否会存放在子目录中。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
column_type | 是 | String | 列类型,包括array bigint binary boolean char date decimal double float int interval map set smallint string struct timestamp tinyint union varchar |
column_name | 是 | String | 列名称。只能包含中文、字母、数字和_-+*(), 特殊字符,且长度为1~767个字符。 |
comment | 否 | String | 列描述信息。最大长度为4000个字符。 |
advance_column_type | 否 | String | 用户自定义类型名称,当且仅当column_type为struct,字段可填写。该字段存在值时,表示用户自定义的高阶类型。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
column | 否 | String | 列名称。只能包含中文、字母、数字和_-+*(), 特殊字符,且长度为1~767个字符。 |
sort_order | 否 | Integer | 指示是按升序 (==1) 还是降序 (==0) 对列进行排序。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 否 | String | 名称信息。 |
serialization_library | 否 | String | 实现序列化/反序列化的类。 |
parameters | 否 | Map<String,String> | 参数数组。 key最小值1,最大值255 value最大值100000 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
skewed_column_names | 是 | Array of strings | 数据偏移列的列表。 |
skewed_column_value_location_maps | 是 | Map<String,String> | 偏斜值和地址的映射关系。 |
skewed_column_values | 是 | Array<Array<String>> | 偏斜值的列表。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
create_iceberg_table_input | 否 | CreateIcebergTableInput object | 开源Iceberg表格式结构体 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
schema | 是 | IcebergSchema object | 定义了Iceberg表的schema结构,包含字段定义,数据类型和schema元数据。 |
partition_spec | 否 | IcebergPartitionSpec object | 定义了Iceberg表的分区规格,决定了分区表数据在查询优化时的性能。 |
write_order | 否 | IcebergSortOrder object | 排序顺序规格,决定了数据如何被重新排序以优化查询性能。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
schema_id | 是 | Integer | 用来记录Iceberg表模式演化历史中模式版本的id。 |
identifier_field_ids | 是 | Array of integers | 字段identifier的列表,可以识别表中的记录,用作行级操作以及去重。 |
type | 是 | String | 固定为struct。 |
fields | 是 | Array of IcebergStructField objects | IcebergStructField的列表。 |
primary_keys | 否 | Array of integers | 用来指定哪些field是主键,列表内填写field_id。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
id | 是 | Integer | Iceberg表schema内的字段的唯一ID, 被用作模式演化时追溯字段 |
name | 是 | String | UTF-8字符串 |
type | 是 | String | 字段类型, 包含 BOOLEAN, INTEGER, LONG, FLOAT, DOUBLE, DATE, TIME, TIMESTAMP, TIMESTAMP_NANO, STRING, UUID, FIXED, BINARY, DECIMAL, STRUCT, LIST, MAP |
required | 是 | Boolean | 表示这个字段是必须的还是可选的 |
doc | 否 | String | comment |
write_default | 否 | String | 字段写入默认值, 在每次写入操作时生效,覆盖显式写入的null值。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
fields | 是 | Array of IcebergPartitionField objects | IcebergPartitionField的数组 |
spec_id | 是 | Integer | 分区规格的Id |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
source_id | 是 | Integer | 分区字段基于来源字段的标识符 |
transform | 是 | String | 应用于来源字段的转换函数,可以输入比如identity, bucket, truncate, year, month, day, 或者 hour. |
name | 是 | String | 分区字段名称,这个名字会出现在hive分区表的分区名中 |
field_id | 是 | Integer | Iceberg字段Id |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
order_id | 是 | Integer | 排序规范的id |
fields | 是 | Array of IcebergSortField objects | IcebergSortField的数组 |
响应参数
状态码:201
参数 | 参数类型 | 描述 |
|---|---|---|
catalog_name | String | catalog名称。 |
catalog_id | String | catalogID。 |
database_name | String | 数据库名称。 |
database_id | String | 数据库ID。 |
table_name | String | 表名称。 |
table_id | String | 表ID。 |
table_status | Integer | 表状态,0表示正常,1表示删除中,2表示已删除,3表示恢复中,4表示清除中。 |
external_table_id | String | 用户端表id,创建时指定,不可修改。 |
create_time | String | 表创建时间。 |
last_access_time | String | 最后访问时间。 |
update_time | String | 表元数据最后一次修改时间。 |
last_analyzed_time | String | 上一次做列级别的统计信息计算的时间。 |
owner | String | 用户信息。 |
owner_type | String | 用户类型,USER-用户,GROUP-组,ROLE-角色。 |
parameters | Map<String,String> | 参数 |
partition_keys | Array of Column objects | 表分区列的列表。 |
retention | Integer | 表保留时间。 |
storage_descriptor | StorageDescriptor object | 数据存储。 |
table_format | String | 表格式。支持{HIVE,ICEBERG},默认值为HIVE。 |
table_type | String | 表类型,MANAGED_TABLE-内表,EXTERNAL_TABLE-外表,VIRTUAL_VIEW-视图,MATERIALIZED_VIEW-物化视图,DICTIONARY_TABLE字典表,LAKE_TABLE内表 |
comments | String | 表描述信息。 |
view_expanded_text | String | 如果表是视图,则为视图的扩展文本。 |
view_original_text | String | 如果表是视图,则为视图的原始文本。 |
data_statistic_enable | Boolean | 数据概况统计开关。默认状态为开,修改table开关状态后,还需检查所属database的开关状态。例如:table与所属database开关同时打开,则数据概况统计开启。否则关闭 |
version_id | String | 版本ID |
参数 | 参数类型 | 描述 |
|---|---|---|
columns | Array of Column objects | 分区列以外的所有字段。 |
location | String | 路径地址。例如obs://location/uri/。 |
compressed | Boolean | 是否启用数据压缩。默认为false。 |
input_format | String | 输入格式。 |
output_format | String | 输出格式。 |
number_of_buckets | Integer | 分桶的桶数量。默认值为0。 |
bucket_columns | Array of strings | 分桶字段。 |
sort_columns | Array of Order objects | 指定表中的每个存储桶的排序顺序的列表。 |
serde_info | SerDeInfo object | 序列化/反序列化信息。 |
parameters | Map<String,String> | 存储描述符的参数。 key最小长度为1,最大长度为255。 value最大长度为100000 |
skewed_info | SkewedInfo object | 有关在列中经常出现的值(偏斜值)的信息。 |
stored_as_sub_directories | Boolean | 数据是否会存放在子目录中。 |
参数 | 参数类型 | 描述 |
|---|---|---|
column_type | String | 列类型,包括array bigint binary boolean char date decimal double float int interval map set smallint string struct timestamp tinyint union varchar |
column_name | String | 列名称。只能包含中文、字母、数字和_-+*(), 特殊字符,且长度为1~767个字符。 |
comment | String | 列描述信息。最大长度为4000个字符。 |
advance_column_type | String | 用户自定义类型名称,当且仅当column_type为struct,字段可填写。该字段存在值时,表示用户自定义的高阶类型。 |
参数 | 参数类型 | 描述 |
|---|---|---|
column | String | 列名称。只能包含中文、字母、数字和_-+*(), 特殊字符,且长度为1~767个字符。 |
sort_order | Integer | 指示是按升序 (==1) 还是降序 (==0) 对列进行排序。 |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 名称信息。 |
serialization_library | String | 实现序列化/反序列化的类。 |
parameters | Map<String,String> | 参数数组。 key最小值1,最大值255 value最大值100000 |
参数 | 参数类型 | 描述 |
|---|---|---|
skewed_column_names | Array of strings | 数据偏移列的列表。 |
skewed_column_value_location_maps | Map<String,String> | 偏斜值和地址的映射关系。 |
skewed_column_values | Array<Array<String>> | 偏斜值的列表。 |
状态码:400
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
solution_msg | String | 解决方案描述。 |
状态码:401
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
solution_msg | String | 解决方案描述。 |
状态码:403
参数 | 参数类型 | 描述 |
|---|---|---|
error | Error object | 错误信息。 |
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
title | String | 标题。 |
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
title | String | 标题。 |
message | String | 错误信息。 |
code | String | 状态码。 |
状态码:404
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
solution_msg | String | 解决方案描述。 |
状态码:408
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
solution_msg | String | 解决方案描述。 |
状态码:500
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
solution_msg | String | 解决方案描述。 |
请求示例
POST https://{endpoint} /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables
{
"table_name" : "tbl86b03ad314fa4ea7943fb769df163a79",
"table_format" : "HIVE",
"table_type" : "MANAGED_TABLE",
"owner" : "onebox",
"owner_type" : "USER",
"create_time" : "2023-05-31T01:59:54.000+00:00",
"last_access_time" : "2023-05-31T01:59:54.000+00:00",
"last_analyzed_time" : "2023-05-31T01:59:54.000+00:00",
"partition_keys" : [ {
"column_type" : "string",
"column_name" : "column_prefix0",
"comment" : "5456ac36c75947eab223476dafa58ae0"
}, {
"column_type" : "string",
"column_name" : "column_prefix1",
"comment" : "d95d1241557e4a769bfcda42974fdf0e"
} ],
"retention" : 1000,
"storage_descriptor" : {
"columns" : [ {
"column_type" : "string",
"column_name" : "column_prefix0",
"comment" : "3eb10da96ec84ec6b8543b730c0660b2"
}, {
"column_type" : "string",
"column_name" : "column_prefix1",
"comment" : "ee5aa1f3755f425a964f045f59b2c0a0"
}, {
"column_type" : "string",
"column_name" : "column_prefix2",
"comment" : "d47884f69582432db1256e60a8e37ea6"
}, {
"column_type" : "string",
"column_name" : "column_prefix3",
"comment" : "4e26e910310648f1a97b6e17cb2b25ce"
}, {
"column_type" : "string",
"column_name" : "column_prefix4",
"comment" : "85084620943b4d36a9e5d6a856307e73"
}, {
"column_type" : "string",
"column_name" : "column_prefix5",
"comment" : "f78264b5d8ab4409a3a05ebb0434424e"
}, {
"column_type" : "string",
"column_name" : "column_prefix6",
"comment" : "45df8ef109374ac6ab9aaa371b29baa7"
}, {
"column_type" : "string",
"column_name" : "column_prefix7",
"comment" : "c006d18cc411429bacc0f0e1eb75f99e"
}, {
"column_type" : "string",
"column_name" : "column_prefix8",
"comment" : "58e1c81b2c0a4c089570106c8bb4461d"
}, {
"column_type" : "string",
"column_name" : "column_prefix9",
"comment" : "32cc797a16f348ebbf5f2e1f85969603"
} ],
"location" : "obs://location/test/database/5e2941387d8741afa217677361d0676f",
"compressed" : false,
"input_format" : "850fd4c238934dfdaa3006f388d71f9d",
"output_format" : "740f42961f1146d39abe19beadc2ad89",
"number_of_buckets" : 0,
"bucket_columns" : [ ],
"sort_columns" : [ ],
"serde_info" : {
"name" : "a247cc09ce74477e8c95915bb45e9878",
"serialization_library" : "9dad2d1dfe944e1d83747997188ed445",
"parameters" : {
"347f5f03fdaf46489a39e308be3d2160" : "317b872caa5d4de7bed96f644028ed83"
}
},
"parameters" : {
"ce43c3c8b9854b749dddabe76c487dd8" : "67393e5c0dc649479399603f6adf1432",
"8805af26461e49feaf5fb67eef8da574" : "f956a8ac29514f57af9da84043b845f0"
},
"skewed_info" : {
"skewed_column_names" : [ ],
"skewed_column_value_location_maps" : { },
"skewed_column_values" : [ ]
},
"stored_as_sub_directories" : false
},
"parameters" : {
"key1" : "value1",
"transient_lastDdlTime" : "120",
"classification" : "other"
},
"comments" : "comment info"
} 响应示例
状态码:201
Created
{
"catalog_name" : "catcd6359b2a15f42dc90fca897c15db00a",
"database_name" : "dbbf565489e3d04b2d8ca03d6e3d48486f",
"table_name" : "tbl1298911dffa94c449a900ec5dfc50cf8",
"create_time" : "2023-05-31T02:03:44.016+00:00",
"last_access_time" : "2023-05-31T02:03:43.000+00:00",
"update_time" : "2023-05-31T02:03:44.016+00:00",
"last_analyzed_time" : "2023-05-31T02:03:43.000+00:00",
"owner" : "onebox",
"owner_type" : "USER",
"parameters" : {
"key1" : "value1",
"transient_lastDdlTime" : "120",
"classification" : "other"
},
"partition_keys" : [ {
"column_type" : "string",
"column_name" : "column_prefix0",
"comment" : "8be09e713e6b46a08b375b662f93e195"
}, {
"column_type" : "string",
"column_name" : "column_prefix1",
"comment" : "6874d3047a6c494696438fc64d9a0194"
} ],
"retention" : 1000,
"storage_descriptor" : {
"columns" : [ {
"column_type" : "string",
"column_name" : "column_prefix0",
"comment" : "5a2968f6141c4d40969c935c39b5accc"
}, {
"column_type" : "string",
"column_name" : "column_prefix1",
"comment" : "39ac0d5c26ce47d8948a5ea49a455742"
}, {
"column_type" : "string",
"column_name" : "column_prefix2",
"comment" : "a8d51537564a4042ab3d88a0acfccf83"
}, {
"column_type" : "string",
"column_name" : "column_prefix3",
"comment" : "d541dd8c95bf4d49853ae5563869821e"
}, {
"column_type" : "string",
"column_name" : "column_prefix4",
"comment" : "9955f7831b3b4bdc8a18c2e20b592976"
}, {
"column_type" : "string",
"column_name" : "column_prefix5",
"comment" : "32115b31e61245fd94162f566c6db966"
}, {
"column_type" : "string",
"column_name" : "column_prefix6",
"comment" : "a6d61e1ad9e14a6da94e242607369284"
}, {
"column_type" : "string",
"column_name" : "column_prefix7",
"comment" : "9dd785a2f6744fa2a8c5a64d78147961"
}, {
"column_type" : "string",
"column_name" : "column_prefix8",
"comment" : "60128f0062a949559f0c95f2656812ae"
}, {
"column_type" : "string",
"column_name" : "column_prefix9",
"comment" : "99d4d3e57af64bd1bb287b5a305b7225"
} ],
"location" : "obs://location/test/database/0b288717b41a411dacdd0c9fa2e1c275",
"compressed" : false,
"input_format" : "c28e802613a342568a667aeba4961979",
"output_format" : "9bf425a38fd540c69b68366071b8bbd5",
"number_of_buckets" : 0,
"bucket_columns" : [ ],
"sort_columns" : [ ],
"serde_info" : {
"name" : "e044a1458d8c4b7a871e54243d2adb93",
"serialization_library" : "bb299f2201fe4da0886ecd380a1508a3",
"parameters" : {
"2980009b8dfd4b3bb78a96485a3728c2" : "f83395c8db5e4ac1803892b08c209799"
}
},
"parameters" : {
"64f073b0a9bd49cb8437681f3faa1538" : "f4154f400e6e465cbc8b8b2033a24faf",
"f31bf1375d4d4097b68e9816388e50a8" : "881546d1b0184048b03ad20d1218104d"
},
"skewed_info" : {
"skewed_column_names" : [ ],
"skewed_column_value_location_maps" : { },
"skewed_column_values" : [ ]
},
"stored_as_sub_directories" : false
},
"table_format" : "HIVE",
"table_type" : "EXTERNAL_TABLE",
"comments" : "comment info"
} 状态码:400
Bad Request
{
"error_code" : "common.01000001",
"error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException"
} 状态码:401
Unauthorized
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
} 状态码:403
Forbidden
{
"error" : {
"code" : "403",
"message" : "X-Auth-Token is invalid in the request",
"error_code" : null,
"error_msg" : null,
"title" : "Forbidden"
},
"error_code" : "403",
"error_msg" : "X-Auth-Token is invalid in the request",
"title" : "Forbidden"
} 状态码:404
Not Found
{
"error_code" : "common.01000001",
"error_msg" : "response status exception, code: 404"
} 状态码:408
Request Timeout
{
"error_code" : "common.00000408",
"error_msg" : "timeout exception occurred"
} 状态码:500
Internal Server Error
{
"error_code" : "common.00000500",
"error_msg" : "internal error"
} 状态码
状态码 | 描述 |
|---|---|
201 | Created |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
408 | Request Timeout |
500 | Internal Server Error |
错误码
请参见错误码。

