lance-format

🗄️ 多模态 AI 的极速列式数据格式

Lance v8 是专为多模态 AI 设计的开源列式 Lakehouse 格式,提供比 Parquet 快 100 倍的随机访问性能,支持向量/全文/地理索引、事务性写入和模式演进。

收藏
4.8k
安装
994
版本
0.6.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心定位

Lance 是一个面向多模态 AI 场景的开源列式数据格式栈,包含文件格式、表格式、索引格式、目录规范和命名空间客户端规范。其核心卖点是"比 Parquet 快 100 倍的随机访问",专为嵌入向量、图像、文本等 AI 工作负载优化。

技术架构

分层 Crate 工作空间

25 个 Rust crate 构成完整实现,核心分层清晰:

  • lance:公共入口,Dataset、扫描器、索引、提交
  • lance-table:表格式——manifest、提交处理器、行 ID
  • lance-file:文件格式——读写器
  • lance-encoding:结构编码、压缩(内部使用)
  • lance-index:标量/向量/全文/系统索引
  • lance-io:对象存储、I/O 调度器
  • lance-namespace:命名空间 trait、目录/REST 实现

文件格式版本演进

| 版本 | 状态 | 关键特性 |
|------|------|---------|
| 2.0 | 稳定 | 移除 row group,列表/FSL/原生类型支持 null |
| **2.1** | **当前默认** | 自适应结构编码、更好的整数/字符串压缩、嵌套随机访问优化 |
| 2.2 | 实验性 | Map 类型、Blob v2、VariablePackedStruct |
| 2.3 | next | 脚手架阶段,编码尚未分化 |

v8 重大变更

  • 统一索引生命周期:所有索引构建迁移到基于 segment 的框架,移除旧版 Python Bitmap shard API 和独立的 IndexSegmentBuilder
  • 新增 FM-Index:基于 Burrows-Wheeler 变换的子串/前缀/正则搜索
  • 多 bit IVF_RQ:RaBitQ 支持 1-9 bit,不再限于 1-bit
  • 新增存储后端:Volcengine TOS、GooseFS

显著优点

1. 极致随机访问性能:为嵌入检索优化的列式布局,避免 Parquet 的行组解压开销
2. 原生多模态支持:FixedSizeList 向量、JSONB、bfloat16、图像类型、Blob 编码

3. 丰富索引体系:

4. 完整事务支持:15 种事务操作、乐观并发控制(OCC)重试/变基、条件提交处理器
5. 云原生设计:MemWAL 流式写入、分支/标签/时间旅行、S3/GCS/Azure/MinIO/TOS/GooseFS 统一对象存储抽象

  • 向量:IVF_PQ、IVF_HNSW、IVF_RQ/RaBitQ(多 bit)
  • 标量:BTree、Bitmap、Bloom、LabelList、ZoneMap、FM-Index
  • 全文:BM25 + ICU/Jieba/Lindera 分词器
  • 地理:RTree

局限与风险

1. 格式版本锁定:数据集创建后 data_storage_version 固定,变更需完整重写
2. 实验性功能不稳定:2.2/2.3 版本编码可能变化,生产环境建议显式锁定 2.1

3. API 变动频繁:v8 移除多个公共 API(IndexSegmentBuilder、load_indices() 等),升级成本较高

4. 分布式构建复杂度:segment-based 索引构建引入两阶段提交,调试难度增加

5. 生态相对封闭:相比 Parquet/Delta Lake,查询引擎集成(DuckDB、DataFusion 等)仍处于适配层

适用场景

  • 大模型嵌入存储与检索:十亿级向量的 IVF + PQ/RQ 索引
  • 多模态数据湖:图像+文本+结构化特征的统一存储
  • 实时 AI 特征平台:MemWAL + 分支实现低延迟写入与版本隔离
  • 需要事务保证的湖仓分析:OCC + 条件提交满足一致性要求

风险等级评估

  • 数据格式风险:中等——版本锁定机制明确但实验性功能边界模糊
  • API 稳定性风险:中高——v8 破坏性变更集中,需关注版本迁移
  • 供应链安全:T2 来源——lance-format/lance 开源仓库,Rust 生态标准依赖

与 LanceDB 的区分

Lance = 格式引擎(本 skill),直接消费场景:链接 lance crate、操作 .lance 数据集、构建自定义索引。

LanceDB = 基于 Lance 的数据库产品,增加查询构建器、嵌入注册表、重排序 API、托管云服务——不在本 skill 覆盖范围。

lance-format 内容

references文件夹
手动下载zip · 43.1 kB
lance-reference.mdtext/markdown
请选择文件