Lance format overview
Lance is an open-source, columnar format designed for multimodal AI. It defines how data is stored and organized into versioned tables. LanceDB Embedded and LanceDB Enterprise both use Lance as their storage foundation. The format is developed as an independent open-source project, with its own specification and tools.Multimodal data
A Lance table can hold images, video, audio, text, embeddings and structured metadata together. For example, a video dataset can keep each clip alongside its caption, labels and embeddings, so applications can search and work with those fields together.Data access, versioning and column updates
- Efficient data access. Read individual rows for retrieval and training, or scan columns for analytics.
- Versioned data. Read an earlier table version to reproduce an experiment or inspect previous results, while that version is retained.
- Independent column updates. Add embeddings or other derived features without rewriting the existing image, video or text columns.
Opening Lance datasets in Python
Any.lance dataset directory is a LanceDB table. Pass the parent directory to
lancedb.connect() and open the table by its directory stem:
lancedb for search, retrieval, data curation, multimodal blob access and
application code. Install pylance (import lance) only when building query
engines or connectors, calling format-level fragment APIs directly, or
converting plain-scan lazy or legacy blob columns with to_pandas() (see
Multimodal data and blobs for pylance-free
conversions).
Learn more
- Lance format specification: how the format works.
- Multimodal data and blobs: declare
lancedb.blob()columns and read blobs on demand. - Table versioning: read and manage table versions.
- Computed columns: add derived features to your data.
- Architecture: how LanceDB Embedded and Enterprise build on Lance.