导入 Parquet 文件

最近更新时间:2024-10-22 11:22:51

我的收藏

工具介绍

import_parquet_into_vdb.py(14.3KB)

该 Python 脚本用于导入 Parquet 类型的数据文件于向量数据库,其运行方式如下所示:
python3.9 import_parquet_into_vdb.py\\
--url="http://xx.xx.xx.xx:80"\\
--key="xB2iQyVVFy9AtEFswF4ohQ******************"\\
--db="db-test-0905" --collection="test-parquet-new"\\
--file="./test-parquet*.parquet"\\
--field_mapping="text_id=id,vecs=vector"
参数
参数含义
说明
url
向量数据库实例的内网地址或外网地址。建议使用内网方式。
获取向量数据库实例内网 IP 地址与端口,请登录 向量数据库控制台,在实例详情页面网络信息区域直接复制访问地址。具体操作,请参见 查看实例信息
key
向量数据库实例 API 密钥,用于进行身份认证。
请登录 向量数据库控制台,在密钥管理页面直接复制密钥。具体操作,请参见 密钥管理
db
数据库名。
-
collection
数据库集合名。
-
file
预导入的 Parquet 文件的路径。
可以指定为绝对地址,也可以为相应程序运行的相对地址
支持使用通配符,例如:--file="./test_*.parquet"\\,将文件名包含 test_ 的 Parquet 文件批量导入数据库。
field_mappings
指定 Parquet 文件字段与导入数据库字段的映射关系。
Parquet 文件字段与数据库字段名不一致需配置映射关系,一致则无需配置。
key = value,key 为 Parquet 文件字段,value 为向量数据库字段名,切勿写反。并且,一个 key,可以映射到多个 Value,例如:text_id=id|doc_id。
若源端与目标端字段数据类型不一致,支持数据类型自动转换写入。例如:text_id 是 unit64,数据库中的 id 和 doc_id 字段类型为 string,也可以建立映射关系,脚本会强制转换写入。
confirm_work
标识是否通过 nohub 命令在后台运行数据导入任务。
Y:默认值,在终端会话确认参数配置,再运行程序。
N:无需确认参数配置,在后台直接运行程序。
当导入数据量大时,建议设置为confirm_work=N

使用示例

1. 准备如下工作。
a. 准备数据库实例。具体操作,请参见 购买实例
b. 执行pip3 install tcvectordb,获取最新版本 Python SDK,并应用 Python SDK 连接数据库实例。具体信息,请参见 新建 Client
c. 创建 Base 类数据库以及相应集合。具体操作,请参见 新建数据库新建集合
说明:
该脚本工具当前不支持 Embedding 文本向量化,需创建直接写入向量数据的集合。
创建集合时,请注意向量数据维度与 Parquet 文件的向量数据维度一致,并根据业务需要指定必要的 Filter 字段。
2. 将数据导入工具的 Python 脚本上传于运行的操作环境,同时上传 Parquet 文件。
说明:
Parquet 文件的 Vector 字段可处理如下三种类型。
数组格式(list):[1.2, 2.2, 0.38]。
numpy格式(numpy.ndarray): numpy.array([1.2, 2.2, 0.38], np.float32)。
字符串格式(str): "[1.2, 2.2, 0.38]"。
3. 根据 Parquet 文件业务数据与文件路径,在文本编辑器配置工具脚本参数,如下所示。
python3.9 import_parquet_into_vdb.py\\
--url="http://xx.xx.xx.xx:80"\\
--key="xB2iQyVVFy9AtEFswF4ohQ******************"\\
--db="db-test-0905" --collection="test-parquet-new"\\
--file="./test_*.parquet"\\
--field_mapping="text_id=id,vecs=vector"
4. 在操作环境运行脚本,显示如下信息,逐一确认相关参数,索引字段以及字段映射关系。

5. 提示please check the parameters and field mappings [yes no]:,输入yes,启动数据导入任务。
说明:
当导入数据量大时,推荐先使用默认值(confirm_work=Y)运行,在终端会话确认索引参数、映射字段设置正确,提示please check the parameters and field mappings [yes no]:,输入 no,退出之后再指定 confirm_work=N,重新启动程序,在后台运行数据导入任务。

6. 等待提示类似如下信息,说明数据导入完成。
200000 rows were successfully inserted into the VDB. avg batch latency: 11658.52ms, batch size: 800 TPS: 1504.685, dimensions: 128, parallel: 30