本文将通过具体示例,为您介绍如何通过CREATE TABLE定义向量列。
只有ECU类型为H8的集群支持向量功能,其他类型ECU不支持向量功能。
只支持在普通表(实时表)中定义向量列。
创建普通表之前,需要先创建表组,否则系统执行建表语句时将提示出错。
相同表组下普通表的HASH分区数必须相同。
在TEST_GROUP
表组下创建一级分区表TEST_TABLE
,通过feature float[4] COLPROPERTIES(DistanceMeasure=SquaredL2)
定义向量列。
create table test_table (
rowkey varchar,
feature float[4] COLPROPERTIES(DistanceMeasure=SquaredL2),
seed_name varchar,
cluster_label varchar,
ANN INDEX ecnn_index(feature) Algorithm=Graph_hnsw,
PRIMARY KEY (rowkey)
)
PARTITION BY HASH KEY (rowkey) PARTITION NUM 32
TABLEGROUP test_group
OPTIONS (UPDATETYPE='realtime')
在TEST_GROUP
表组下创建二级分区表TEST_TABLE2
,通过feature float[4] COLPROPERTIES(DistanceMeasure=SquaredL2)
定义向量列。
create table test_table2 (
rowkey varchar,
feature float[4] COLPROPERTIES(DistanceMeasure=SquaredL2),
seed_name varchar,
cluster_label varchar,
dt long,
ANN INDEX ecnn_index(feature) Algorithm=Graph_hnsw,
PRIMARY KEY (rowkey, dt )
)
PARTITION BY HASH KEY (rowkey) PARTITION NUM 32
SUBPARTITION BY LIST KEY (dt)
SUBPARTITION OPTIONS (available_partition_num = 4)
TABLEGROUP test_group
OPTIONS (UPDATETYPE='realtime')
feature
:向量列的名称,用户自定义。
float[4]
:向量列的数据类型和向量的维数,用户自定义。
COLPROPERTIES
:系统关键字,定义向量列在进行ANN查询和构建索引时采用的向量距离计算公式。
DistanceMeasure
:系统关键字,DistanceMeasure
的值为向量距离计算公式,默认值为:
int[]
:Hammin
byte[]
、short[]
或者float[]
:SquaredEuclidean
注意:向量距离计算公式定义后不支持更改。
AnalyticDB for MySQL支持的向量距离计算公式如下表所示。
向量距离计算公式 | 计算公式 | 适用数据类型 |
---|---|---|
SquaredEuclidean(简称SquaredL2) | (x1-y1)^2+(x2-y2)^2+… | byte[]、short[]或者float[] |
Hamming | Integer.bitCount(x1^y1)+Integer.bitCount(x2^y2)+Integer.bitCount(x3^y3)+… | int[] |
DotProduct | x1*y1+x2*y2+x3*y3+… | byte[]、short[]或者float[] 对数据的L2范数有如下要求:
|
ANN:系统关键字。
INDEX:系统关键字。
ecnn_index:索引名,用户自定义。
Algorithm:向量距离计算公式使用的算法。AnalyticDB for MySQL支持的向量距离计算公式算法如下表所示。
算法 | 适用场景 | 适用数据 |
---|---|---|
Native_FLAT(SSE线性计算) | 适用于单表数据量小于10万条、向量维度为256左右的小数据量场景。 | int[]、short[]、byte[]、float[] |
GRAPH_HNSW | 适用于单表数据量在百万级别到千万级别之间,对向量维度敏感的中等规模数据量场景。 | int[]、short[]、byte[]、float[] |
VG_PQ | 适用于单表数量在千万级别以上,向量维度高的大规模、超大规模数据量场景。 | short[]、byte[]、float[] |
向量算法(IndexAlgorithm)支持的向量距离计算公式(DistanceMeasure)如下表所示。
算法 | SquaredEuclidean | DotProduct | Hamming |
---|---|---|---|
Native_FLAT | 支持 | 支持 | 支持 |
GRAPH_HNSW | 支持 | 支持 | 支持 |
VG_PQ | 支持 | 不支持 | 不支持 |
在文档使用中是否遇到以下问题
更多建议
匿名提交