Skip to main content
Applies to: Embedded ❌, Enterprise ✅ A CREATE TABLE ... AS SELECT (CTAS) reads directly from a HuggingFace dataset or an existing Lance dataset in object storage, once a storage integration covers that location — the integration is never named in the statement, LanceDB matches it by URI prefix.

Import a HuggingFace dataset

See Inspect Datasets for the full workflow, including querying a dataset directly without importing it first.

Import a Lance dataset from object storage

An s3://, gs:// or az:// prefix reads an existing Lance dataset the same way as a managed table — use this to copy a dataset another process already wrote in Lance format, not an arbitrary file format. See Storage Integration for GCS and Azure examples.

How the import runs

See Distributed Write for how an import’s writes divide across plan executors, and when a small import instead runs as one local task.
Importing requires a native database with database_manifest_enabled. Combining a HuggingFace source with a WAL-backed destination table in one CTAS is rejected, since the import cannot publish a base-only read that omits the destination’s unflushed data.

What to read next

Define Storage Integration

Set up the credential an import reads through.

Inspect Datasets

Query and import HuggingFace or object-storage datasets in full.

Distributed Write

How an import’s writes divide across plan executors.

Storage Integration

The complete SQL reference for every provider.