LanceDB的数据处理

数据存好了,怎么使用
怎么使用影响数据存好的指标
数据分片优化:默认情况下,LanceDB会将表数据分割为128MB的分片

表结构设计-数据上传

Amazon S3 supports both virtual-hosted–style and path-style URL

aws_s3= {
"region": "us-east-1",
"aws_access_key_id": "",
"aws_secret_access_key": "",
"endpoint": f"https://{bucket_name}.s3-compatible-storage.com",
"virtual_hosted_style_request": "true"
"refresh_offset_millis": "120000",
}
db = lancedb.connect("s3://bucket/path",storage_options=aws_s3)

创建表时指定分片大小(单位:字节)

table = db.create_table(
"large_dataset",
data=df,
fragment_size=25610241024 # 设置256MB分片大小
)
Fragment 是 Lance 数据集的‌逻辑分片单位‌,每个 Fragment 是一个独立、自包含的数据单元,包含行数、物理 Schema、元数据等信息

加速

当数据库首次加载时,需要完成元数据解析、索引文件加载和向量数据缓存三个关键步骤,这在默认配置下会产生显著的初始化开销
# 连接数据库时启用索引预加载
db = lancedb.connect("data/lancedb", preload_indexes=True)

LanceDB内置了多级缓存机制,包括元数据缓存、数据块缓存和查询结果缓存。通过合理配置缓存参数,可以显著提升重复查询的性能。关键配置项包括cache_size(数据块缓存大小)和metadata_cache_size(元数据缓存大小)。

配置缓存参数

db = lancedb.connect(
"data/lancedb",
cache_size=2102410241024, # 设置2GB数据缓存
metadata_cache_size=100
1024*1024 # 设置100MB元数据缓存
)

Duckdb -查询S3上的lance文件

You configure credentials and object store settings using CREATE SECRET (TYPE LANCE, ...)

CREATE OR REPLACE TEMPORARY SECRET IF NOT EXISTS lance_secret_exp (
TYPE LANCE,
PROVIDER config,
SCOPE 's3://my-bucket/',
ACCESS_KEY_ID '...',
SECRET_ACCESS_KEY '...',
REGION 'us-east-1',
ENDPOINT '',
VIRTUAL_HOSTED_STYLE_REQUEST false
);

INSTALL httpfs;
LOAD httpfs;
ATTACH '' AS my_lance(TYPE LANCE ,SECRET lance_secret_exp );
use my_lance ;
SELECT *
FROM 's3://bucket/path/to/out.lance'
LIMIT 10;

数据变革

数据存存储和计算: 数据存储格式的挑战-数据计算引擎的挑战
AI时代带来的变化之一,是非结构化数据处理占比变大,硬件方面,从CPU向GPU转变
从SQL转向Dataframe
数据量大‌-作业类型复杂‌
数据管理 :数据管理范式的挑战
传统的数据管理主要围绕Database展开,而现在逐渐转向Dataset;
同时,管理对象也从Table/View转变为Volume/Model/Function
生态
2022 年创立, 2022 年底发布Lance 格式初版(v0.1)
2023 年开源破圈, 2023 年初:LanceDB 开源,同步发布 Python/JS SDK
2024 年技术成熟 + 头部客户落地,
2025 年融资加速 + 生态爆发 :
2025 年发布Lance 格式 v2.1
2025 年 6 月 LanceDB Cloud 发布
2026年 Lance Blob V2 2026 年 4 月 Lance 格式 v2.2;支持 100 亿向量搜索

lance
lancedb
Lance 可以轻松集成 Huggingface 、Pytorch 、Ray 和Daft,以实现高性能处理和训练

具身智能的格式

具身智能领域常用的 MCAP 和 LeRobot 格式

Pytorch

2025年9月9日
import torch
import lancedb
import pyarrow as pa

Huggingface- lerobot

2025年11月10日
https://github.com/huggingface/lerobot/issues/2417
Introduce Lance as a new basic format for lerobot
https://github.com/huggingface/lerobot/pull/2510
add Lance format integration#2510
2026年2月6日
Huggingface datasets now support lance format
https://huggingface.co/docs/hub/datasets-lance
Datasets 长期以来一直是人工智能和数据生态系统为开发者提供了通过通用API与全球共享数据集的方式,

数据pop

当前数据现状: 元数据在这里,媒体在那里,索引在别处
数据生态系统一直在学习如何围绕可重用​​格式和协议进行标准化
lancedb
建立一次索引,在所有地方重复使用
快速随机访问,用于搜索和训练--索引是格式的一等公民
PB级数据集的I/O节省 : blobs 在 Lance 中被视为一等公民
无需完全重写的高效更新
将文件以多模列式存储,利用Lance的压缩优势降低存储成本,同时解决裸文件带来的高QPS、带宽膨胀问题,以及元数据与数据分开管理的一致性问题。

案例

字节跳动火山引擎LAS基于Lance的PB级自动驾驶数据湖解决方案-LAS(LakeHouse AI Service)
LAS 核心框架可概括为“AI 数据湖”,包含数据湖计算、湖存储与湖管理三大模块。
“湖计算” Daft Daft 是基于 Ray 构建的计算框架
“湖存储”, Lance
湖管理 多模态元数据统一管理、AI 算子处理、agent以及智能检索、企业级权限控制
01.元数据管理 Gravitino
致力于成为一个“目录的目录”(Catalog of Catalogs
02.简化非结构化数据的处理流程,方案开发了一层丰富的数据处理算子 --算子化
kestra 是一个高级编排和调度平台,旨在促进复杂数据管道的构建,执行,调度和监控
低代码平台 图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务等。
算法封装为即插即用模块,支持拖拽式工作流编排
03.ClawLake(记忆提取、分层存储、按需召回)
数据开发 大数据研发治理套件
阿里云将开源的高性能嵌入式分析数据库 DuckDB 引入其核心分支 AliSQL(RDS MySQL 的内核)中
RDS DuckDB分析实例以列式存储与向量化计算为核心,实现了复杂分析查询性能百倍跃升
Gravitino 的架构主要包括两个核心部分:Gravitino Server(服务端) 和 Connector(连接器)

参考

Lance 如何助力多模式湖屋
How Lance enables the Multimodal Lakehouse https://thedataquarry.com/blog/how-lance-enables-the-multimodal-lakehouse/
火山引擎“Data+AI”双轮驱动,构筑企业智能转型新基建 https://www.icloudnews.net/a/107386.html
突破LanceDB冷启动瓶颈:从3秒到300ms的查询优化实战 https://adg.csdn.net/696f5104437a6b40336a0230.html
https://github.com/lance-format/lance-duckdb/blob/main/docs/cloud.md
https://duckdb.org/docs/current/core_extensions/lance

posted on 2026-04-30 16:50  辰令  阅读(150)  评论(0)    收藏  举报