---
title: "Lance format"
description: "Lance is a modern, open-source columnar file format designed for machine learning and vector-search workloads, offering fast random access, versioning, and native support for embeddings alongside tabular data."
canonical: "https://motherduck.com/glossary/lance-format/"
related:
  - title: "DuckLake Architecture Deep Dive"
    url: "https://motherduck.com/blog/ducklake-architecture-deep-dive/"
  - title: "DuckLake | MotherDuck Docs"
    url: "https://motherduck.com/docs/concepts/ducklake/"
  - title: "DuckLake: The Definitive Guide — Live Author Q&A with Matt Martin & Alex Monahan | MotherDuck"
    url: "https://motherduck.com/videos/ducklake-definitive-guide-oreilly-book/"
gated_asset:
  title: "DuckLake on MotherDuck"
  url: "https://motherduck.com/product/ducklake/"
---

# Lance format

> Lance is a modern, open-source columnar file format designed for machine learning and vector-search workloads, offering fast random access, versioning, and native support for embeddings alongside tabular data.

## Overview
Lance is a columnar data format created by LanceDB, designed as an alternative to Parquet for workloads that mix traditional tabular analytics with machine learning data — particularly vector embeddings, images, and other unstructured blobs. It aims to keep Parquet-like scan performance for analytical queries while adding fast random access to individual rows, which columnar formats built purely for sequential scans generally handle poorly.

## Why it was built
Parquet and ORC were designed for large, sequential analytical scans, which makes point lookups (fetching a single row or embedding by ID) slow. ML workflows — like retrieving a specific vector for a nearest-neighbor search, or randomly sampling training examples — need efficient random access as well as bulk scans. Lance's on-disk layout and indexing support both patterns, alongside built-in versioning so datasets can evolve (add columns, update rows) without full rewrites.

## Typical use cases
Lance is used as the storage layer for vector databases and ML feature stores, where a single dataset holds both structured metadata columns and high-dimensional embedding columns, and needs to serve both analytical filtering and vector similarity search efficiently.

## Relationship to the wider lakehouse ecosystem
Lance occupies a different niche than general-purpose lakehouse formats like Apache Iceberg or Delta Lake, which are optimized for large-scale batch analytics on tabular data rather than embeddings and random row access. It's most often encountered inside ML-specific tools like LanceDB rather than general SQL analytics stacks. DuckDB does not have native Lance support; teams typically export Lance data to Parquet, or use DuckDB's vector similarity search (VSS) extension for embedding search on data already stored in DuckDB or Parquet.