create_table, open_table, drop_table, and
rename_table, accept a namespace parameter as input.
Namespace hierarchy
Namespaces are generalizations of catalog specs that give platform developers a clean way to present Lance tables in the structures users expect. The diagram below shows how the hierarchy can go beyond a single level. A namespace can contain a collection of tables, and it can also contain namespaces recursively.
Root namespace and the familiar data/ layout
The simplest namespace model in LanceDB is a single root namespace, often represented by one
directory:
data/ directory, where the root namespace
is implicit. In alternative setups, you could have multiple namespaces that we won’t cover here,
but you can learn more about them in the namespace documentation for the Lance format.
Best-practice guidance
- Use the default, single-level root namespace in LanceDB for locally stored, single-application, or early-stage projects.
- For remote storage locations, introduce explicit namespaces when multiple teams, environments, or domains share the same catalog.
- Treat namespace paths as stable identifiers (for example
"prod/search","staging/recs"). - Avoid hard-coding object-store table paths in application code — instead, prefer catalog identifiers + namespaces.
Python
SDK usage
- For language-specific examples of
namespaceusage across Python, TypeScript, and Rust, see “Using namespaces in SDKs”. - For REST-level operations, see the REST API Reference.