创建库表
更新时间:2024-04-22
概述
本章节介绍如何连接向量数据库,根据业务需求创建需要的库表信息。运行本章节所提供的示例代码,您将初步了解向量数据库的库表创建的能力。
前提条件
- 已成功新建数据库实例。
- 根据 SDK 的准备指引,完成 SDK 的准备工作。
- 实例未被销毁。
获取访问信息
从“实例详情”页获取访问地址 IP 和端口信息,如下图所示
获取访问的账号信息
从“账号管理”页中获取访问的密钥信息,如下图所示
创建数据库
新建 Database,用于存储向量数据、原始文本。
import pymochow
from pymochow.configuration import Configuration
from pymochow.auth.bce_credentials import BceCredentials
account = 'root' # 账号信息
api_key = 'your_api_key' # 密钥信息
endpoint = 'you_endpoint' # example http://127.0.0.1:5287
config = Configuration(credentials=BceCredentials(account, api_key),
endpoint=endpoint)
client = pymochow.MochowClient(config)
db = client.create_database("db_test") # 创建的数据库名称
client.close()
创建表
在 db_test 库中新建一个 db_test 的表。
import pymochow
from pymochow.configuration import Configuration
from pymochow.auth.bce_credentials import BceCredentials
from pymochow.model.schema import Schema, Field, SecondaryIndex, VectorIndex, HNSWParams
from pymochow.model.enum import FieldType, IndexType, MetricType, TableState
from pymochow.model.table import Partition
account = 'root'
api_key = 'your_api_key'
endpoint = 'you_endpoint' #example http://127.0.0.1:5287
config = Configuration(credentials=BceCredentials(account, api_key),
endpoint=endpoint)
client = pymochow.MochowClient(config)
db = client.database("db_test")
fields = [] # 表的字段详情列表
fields.append(Field("id", FieldType.STRING, primary_key=True,
partition_key=True, auto_increment=False, not_null=True))
fields.append(Field("bookName", FieldType.STRING, not_null=True))
fields.append(Field("author", FieldType.STRING))
fields.append(Field("vector", FieldType.FLOAT_VECTOR, dimension=3, not_null=True))
indexes = [] # 表的索引详情列表
indexes.append(VectorIndex(index_name="vector_idx", index_type=IndexType.HNSW,
field="vector", metric_type=MetricType.L2,
params=HNSWParams(m=32, efconstruction=200)))
indexes.append(SecondaryIndex(index_name="book_name_idx", field="bookName"))
table = db.create_table(
table_name="book_vector",
# replication=1, # 免费版是单节点架构,需设置为1
replication=3, # 标准版是多节点分布式架构,设置值不应超过数据节点数量
partition=Partition(partition_num=3),
schema=Schema(fields=fields, indexes=indexes)
)
client.close()
这样你就完成了 db_test 库和 db_test 表的创建,下面进入数据的简单读写操作,读写数据。