核心功能
LanceDB 是 Rust 编写的开源嵌入式检索库,建在 Lance 列式格式之上,把向量、结构化字段和图片音视频存在同一张表里。它不需要部署服务端,连本地目录或 s3:// 路径就能用。适合多模态数据集管理与 RAG 检索的团队;相比需独立服务进程的向量数据库,它更像直接嵌进数据管线的存储层。
功能亮点
无服务端可用
pip 装完直接 lancedb.connect 指向本地目录,不用起进程
对象存储当库
连接 URI 换成 s3://、gs:// 或 az://,表直接落在云存储上
加列不重写表
Lance 支持数据演进,add_columns 传 SQL 表达式即可派生新列
多模态同表
图片音视频以 blob 存进表的列,与向量共享版本与查询语义
适用场景
• RAG 应用把向量库直接嵌进 Python 服务进程,省掉一套独立数据库的部署与运维
• 训练数据集管理,用 add_columns 派生质量分等特征列并借助版本能力回溯数据
• 多模态检索,把图片二进制与其 embedding 存进同一张表后按向量加元数据条件召回
安装配置
bash
Python: pip install lancedb 在不支持 AVX2 的老 x86_64 CPU 上改装兼容包(与 lancedb 冲突,二选一): pip install lancedb-compat 预发布版本(LanceDB 官方 Fury 索引): pip install --pre --extra-index-url https://pypi.fury.io/lancedb/ lancedb 说明:官方 Quickstart 同时提供 TypeScript 与 Rust SDK 的安装方式,具体命令见该页对应标签页。查询结果转 DataFrame 前需另行 pip install polars 或 pip install pandas。
使用方法
python
连接本地目录(嵌入式用法):
import lancedb
uri = "ex_lancedb"
db = lancedb.connect(uri)
直接连对象存储:
import lancedb
uri = "s3://your-bucket/path"
# 也可以用 "gs://your-bucket/path" 或 "az://your-container/path"
db = lancedb.connect(uri)
建表并写入数据(一行里同时有文本、元数据、结构化字段和向量):
data = [
{
"id": "1",
"name": "King Arthur",
"role": "King",
"description": "Leader of Camelot and wielder of Excalibur.",
"stats": {"strength": 4, "magic": 1, "leadership": 5, "wisdom": 4},
"vector": [0.7, 0.1, 0.9, 0.7],
},
{
"id": "2",
"name": "Merlin",
"role": "Wizard",
"description": "Advisor and prophet with deep magical knowledge.",
"stats": {"strength": 2, "magic": 5, "leadership": 4, "wisdom": 5},
"vector": [0.2, 0.9, 0.4, 0.9],
},
]
table = db.create_table("characters", data=data, mode="overwrite")
向量检索:
query_vector = [0.2, 0.8, 0.4, 0.9]
result = (
table.search(query_vector)
.select(["name", "role", "description", "_distance"])
.limit(2)
.to_polars()
)
print(result)
取 Pandas DataFrame:
result = table.search(query_vector).limit(2).to_pandas()
检索时叠加元数据过滤:
curated = (
table.search(query_vector)
.where("stats.magic >= 4")
.select(["name", "role", "description", "_distance"])
.limit(2)
.to_polars()
)
加一列派生特征(不重写整表):
table.add_columns(
{
"power_score": "cast(((stats.strength + stats.magic + stats.leadership + stats.wisdom) / 4.0) as float)"
}
)关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标LanceDB
价格免费
开源是
上手难度入门
相关工具
优点
- 嵌入式形态,pip install lancedb 后指定一个本地目录即可读写,不需要部署或运维服务端进程
- 可以直接把 s3://、gs://、az:// 对象存储路径当作数据库 URI,数据不用先搬到本地
- 底层 Lance 列式格式支持自动版本管理与数据演进,add_columns 加列无需重写整张表
- 一张表内即可存放向量、结构化字段与图片音视频二进制,官方 SDK 覆盖 Python、TypeScript、Rust
缺点
- 默认 lancedb wheel 按 x86-64-haswell(AVX2 + FMA + F16C)构建,在不支持 AVX2 的老 x86_64 CPU 上 import lancedb 会以 Illegal instruction 崩溃
- lancedb 与替代包 lancedb-compat 共用同一个 lancedb/ 命名空间,安装时互相冲突,只能装其中一个,切换前需先卸载
- 官方 Quickstart 列出的连接方式只有本地路径、对象存储 URI 与 Enterprise 的 db://,开源版没有自带的独立服务端进程
- 预发布构建官方声明在发布 6 个月之后不保证仍可获取,真实负载建议尽量使用稳定版