创建表
在指定的库中新建一个表。
权限说明
鉴权认证机制的详细内容请参见鉴权认证
请求参数
API版本号,当前仅v1。
"{实例IP}:{实例Port}"
库的名称。
表的名称。表命名要求如下:
- 仅支持大小写字母、数字以及下划线(_),必须以字母开头;
- 长度限制为1-255。
表的描述信息。
复制数,即单个表分区的副本数量(含主副本),取值范围为[1,10]。 若需要完整的高可用性特性,副本数需>=3。 注意:副本数需要小于等于数据节点(DataNode)的数量,否则无法正常建表。
显示子属性
隐藏子属性
分区的数量,取值范围为[1,1000]。
分区类型枚举,当前仅支持"HASH"。
显示子属性
隐藏子属性
显示子属性
隐藏子属性
显示子属性
隐藏子属性
字段名称。字段命名要求如下:
- 仅支持大小写字母、数字以及下划线(_),必须以字母开头;
- 长度限制为1-255。
字段类型。当前支持如下类型: BOOL, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, DATE, DATETIME, TIMESTAMP, UUID, STRING, BINARY, TEXT, TEXT_GBK, TEXT_GB18030, FLOAT_VECTOR, SPARSE_FLOAT_VECTOR, BINARY_VECTOR, ARRAY, JSON
是否非空,默认取值为False。 如下字段类型不可为空:主键字段、分区键字段、二级索引键字段、向量字段。
是否为主键,默认取值为False。 当前已支持多主键。 主键字段不支持如下类型:BOOL、FLOAT、DOUBLE、ARRAY、FLOAT_VECTOR、SPARSE_FLOAT_VECTOR和BINARY_VECTOR。
是否为分区键,默认取值为False。 当前仅支持单一字段作为分区键,分区键可以是主键,也可以不是主键,但一张表只能有一个分区键,每行记录都会根据分区键的取值哈希映射到不同的分区。 分区键字段不支持如下类型:BOOL、FLOAT、DOUBLE、ARRAY、FLOAT_VECTOR、SPARSE_FLOAT_VECTOR和BINARY_VECTOR。
向量维度。只有数据类型为FLOAT_VECTOR或BINARY_VECTOR时,才需要指定该参数。
数组元素类型。仅当字段类型为 ARRAY 时,才可以指定该参数。当前支持如下类型: BOOL, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, DATE, DATETIME, TIMESTAMP, UUID, STRING, BINARY, TEXT, TEXT_GBK, TEXT_GB18030
数组最大长度限制。仅当字段类型为 ARRAY 时,才可以指定该参数。如不指定 maxCapacity,则默认没有数组长度限制。
是否为自增主键,默认取值为False。 仅适用于类型为UINT64的主键字段,其它字段不适用该属性。
显示子属性
隐藏子属性
显示子属性
隐藏子属性
索引名字。索引命名要求如下:
- 仅支持大小写字母、数字以及下划线(_),必须以字母开头;
- 长度限制为1-255。
索引类型。当前支持的类型如下: 非向量索引类型:SECONDARY, INVERTED, FILTERING 向量索引类型:HNSW, FLAT, PUCK, HNSWPQ, SPARSE_OPTIMIZED_FLAT
向量索引作用于的目标字段名称。
向量索引的距离度量类型。支持的类型如下: L2:欧氏距离度量 IP:内积度量 COSINE:余弦距离度量 注意:PUCK向量索引目前只支持L2度量
索引参数,根据不同的索引类型有不同的参数。
显示子属性
隐藏子属性
HNSW、HNSWPQ索引算法参数,取值范围为[4, 128]。该参数表示每个节点在索引构图中可以连接多少个邻居节点。
HNSW、HNSWPQ索引算法参数,取值范围为[8, 1024]。该参数表示搜索时指定寻找节点邻居遍历的范围。数值越大构图效果越好,构图时间也越长。
HNSWPQ索引参数,取值范围为[1, dim]。该参数表示量化子空间个数,pq量化相关系数,要求NSQ | dim,NSQ越大量化越精细
HNSWPQ索引参数,取值范围为[0.0f, 1.0f]。该参数表示kmeans的采样率,pq抽样总数:10000 + (rowCount - 10000)*sampleRate
PUCK索引算法参数,取值范围为[1, 5000]。该参数表示每个粗聚类中心下细聚类中心个数。
PUCK索引算法参数,取值范围为[1, 5000]。该参数表示索引中粗聚类中心个数。
是否自动构建索引。
显示子属性
隐藏子属性
定时构建索引的时间,支持格式为LOCAL(%Y-%m-%d %H:%M:%S)以及UTC(%Y-%m-%dT%H:%M:%Z)。
自动构建索引策略类型,大小写不敏感,支持的类型如下: timing:定时构建索引,只构建一次。 periodical:周期性构建索引,每过多少秒会构建一次索引。 row_count_increment:根据tablet增加多少行数构建一次索引。
周期性构建索引的参数,每过periodInSecond构建一次索引,只在policyType为periodical时生效。
当tablet增加或者减少行数大于rowCountIncrement时构建一次索引,只在policyType为row_count_increment时生效。
当tablet增加或者减少行数百分比大于rowCountIncrementRatio时构建一次索引,只在policyType为row_count_increment时生效。
多选一,只需要符合下列任意一组子节点
显示子属性
隐藏子属性
当indexType为INVERTED时: fields是String数组,表示基于哪些列建立倒排索引 目前只支持以下数据类型的列上建立倒排:
- TEXT
- TEXT_GBK
- TEXT_GB18030
显示子属性
隐藏子属性
显示子属性
隐藏子属性
当indexType为FILTERING时: fields是FilteringIndexField数组,表示基于哪些列建立FILTERING索引。FILTERING索引支持如下类型:
- INT8
- UINT8
- INT16
- UINT16
- INT32
- UINT32
- INT64
- UINT64
- FLOAT
- DOUBLE
- DATE
- DATETIME
- TIMESTAMP
- UUID
- STRING
- BINARY
- TEXT
- TEXT_GBK
- TEXT_GB18030
- ARRAY
显示子属性
隐藏子属性
索引作用于的目标字段名称。
支持以下通配符:
@SCALAR:表示所有标量列,包括后续通过动态列添加的标量列
表示FILTERING索引的内存结构。支持以下类型:
indexStructureType的缺省值为DEFAULT。如果指定了通配符@SCALAR,则使用@SCALAR字段中的indexStructureType作为缺省值。
指定建立倒排索引的列是否需要分词(默认是会分词),参数顺序应与'fields'里列名一一对应 目前支持以下选项:
显示子属性
隐藏子属性
数据的生命周期(Time To Live),取值为[0, UINT64_MAX] 0代表数据永不过期
是否支持动态字段,默认为false。
POST /v{version}/table?create HTTP/1.1
HOST: {Endpoint}
Authorization: {Authorization}
{
"database": "db_name",
"table": "table_name",
"description": "table description",
"replication": 3,
"partition": {
"partitionType": "HASH",
"partitionNum": 10
},
"enableDynamicField": false,
"schema": {
"fields": [
{
"fieldName": "id",
"fieldType": "UINT64",
"primaryKey": true,
"partitionKey": true,
"autoIncrement": false
},
{
"fieldName": "title",
"fieldType": "STRING",
"notNull": true
},
{
"fieldName": "content",
"fieldType": "TEXT",
"notNull": true
},
{
"fieldName": "vector1",
"fieldType": "FLOAT_VECTOR",
"dimension": 768
},
{
"fieldName": "binary_vector",
"fieldType": "BINARY_VECTOR",
"dimension": 128
}
],
"indexes": [
{
"field": "vector1",
"indexName": "vector1_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
}
"autoBuild": true,
"autoBuildPolicy": {
"policyType": "timing",
"timing": "2024-01-01 12:00:00",
}
},
{
"indexName" : "content_inverted_index",
"indexType": "INVERTED",
"fields" : ["content"],
"fieldsIndexAttributes" : ["ATTRIBUTE_ANALYZED"]
"params" : {
"analyzer" : "DEFAULT_ANALYZER" ,
"parseMode" : "COARSE_MODE"
}
},
{
"indexName" : "title_index",
"indexType" : "FILTERING",
"fields" : [{"field" : "title"}]
}
]
}
}
示例代码
curl --location 'http://vdb.nXWNyPCOSLci.vdb.bj.baidubce.com/v1/table?create' \
--header 'Authorization: Bearer account=root&api_key=eC4bLRy2va******************************' \
--header 'Content-Type: application/json' \
--data '{
"database": "db_name",
"table": "table_name",
"description": "table description",
"replication": 3,
"partition": {
"partitionType": "HASH",
"partitionNum": 10
},
"enableDynamicField": false,
"schema": {
"fields": [
{
"fieldName": "id",
"fieldType": "UINT64",
"primaryKey": true,
"partitionKey": true,
"autoIncrement": false
},
{
"fieldName": "title",
"fieldType": "STRING",
"notNull": true
},
{
"fieldName": "content",
"fieldType": "TEXT",
"notNull": true
},
{
"fieldName": "vector1",
"fieldType": "FLOAT_VECTOR",
"dimension": 768
},
{
"fieldName": "binary_vector",
"fieldType": "BINARY_VECTOR",
"dimension": 128
}
],
"indexes": [
{
"field": "vector1",
"indexName": "vector1_idx",
"indexType": "HNSW",
"metricType": "L2",
"params": {
"M": 32,
"efConstruction": 200
}
"autoBuild": true,
"autoBuildPolicy": {
"policyType": "timing",
"timing": "2024-01-01 12:00:00",
}
},
{
"indexName" : "content_inverted_index",
"indexType": "INVERTED",
"fields" : ["content"],
"fieldsIndexAttributes" : ["ATTRIBUTE_ANALYZED"]
"params" : {
"analyzer" : "DEFAULT_ANALYZER" ,
"parseMode" : "COARSE_MODE"
}
},
{
"indexName" : "title_index",
"indexType" : "FILTERING",
"fields" : [{"field" : "title"}]
}
]
}
}'
返回响应
返回码
返回信息
{
"code": 0,
"msg": "Success"
}