mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-17 17:22:27 +00:00
This PR is part of the documentation revamp. Once the full set of PRs is merged, we’ll publish the combined site to staging for review before updating docs.lancedb.com. The curation, SQL and operations pages contain outdated claims and examples that do not reliably work as written. This corrects those pages against the reviewed SDK and local server evidence, including prepared statements, background jobs, cleanup and monitoring. Integration guides are grouped with their examples in #4533. Function and Secret-object documentation stays unpublished until its release. The two Function pages are listed in `.mintignore` and left out of the navigation, and the sections about them on other pages are MDX comments. Stacked on #4533. Each MDX file has one PR owner. Rebase onto main after #4533 is squash-merged. Local assembly, Mint validation and link checks pass, and the assembled site shows no Function or Secret-object content. A local release rehearsal that uncomments the drafts and restores the navigation also passes. Hold publication until this PR and lancedb/sophon#8688 are on `main`.
161 lines
5.5 KiB
Plaintext
161 lines
5.5 KiB
Plaintext
---
|
|
title: "Management"
|
|
sidebarTitle: "Overview"
|
|
description: "Create, list, and drop the objects in a catalog, from Python, TypeScript, or SQL."
|
|
icon: folder-tree
|
|
keywords: ["ddl", "create", "drop", "list", "catalog", "management"]
|
|
---
|
|
|
|
Use the SDKs or SQL to manage [catalog objects](/basics/catalog), including
|
|
tables, namespaces and views. The tables below provide a quick reference to
|
|
the available methods; each object's guide covers its setup and behavior.
|
|
|
|
Some long-running operations also provide a submission method that returns a
|
|
[job](/basics/jobs). See the operation's guide for how to track completion.
|
|
|
|
## Management APIs {#surface}
|
|
|
|
<Note>
|
|
SQL is available through the Enterprise Flight SQL endpoint.
|
|
See [SQL](/basics/sql#sql-is-remote).
|
|
</Note>
|
|
|
|
### Namespaces {#namespaces}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_namespace` | `createNamespace` | -- |
|
|
| list | `list_namespaces` | `listNamespaces` | -- |
|
|
| describe | `describe_namespace` | `describeNamespace` | -- |
|
|
| exists | `namespace_exists` | -- | -- |
|
|
| drop | `drop_namespace` | `dropNamespace` | -- |
|
|
|
|
See [Namespaces](/management/namespace).
|
|
|
|
### Tables {#tables}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_table` | `createTable` | `CREATE TABLE` |
|
|
| create empty | `create_table(schema=)` | `createEmptyTable` | `CREATE TABLE` |
|
|
| open | `open_table` | `openTable` | -- |
|
|
| list | `table_names`, `list_tables` | `tableNames`, `listTables` | -- |
|
|
| exists | `table_exists` | -- | -- |
|
|
| rename | `rename_table` | `renameTable` | -- |
|
|
| clone | `clone_table` | `cloneTable` | -- |
|
|
| drop | `drop_table`, `drop_table_async` | `dropTable`, `dropTableAsync` | `DROP TABLE` |
|
|
| drop all | `drop_all_tables` | `dropAllTables` | -- |
|
|
|
|
See [Tables](/management/table) for creating one and shaping its schema.
|
|
|
|
### Materialized views {#materialized-views}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_materialized_view` | `createMaterializedView` | `CREATE MATERIALIZED VIEW` |
|
|
| open | `open_materialized_view` | `openMaterializedView` | -- |
|
|
| list | `list_materialized_views` | `listMaterializedViews` | `SHOW MATERIALIZED VIEWS` |
|
|
| refresh | `refresh` | `refresh` | `REFRESH MATERIALIZED VIEW` |
|
|
| drop | `drop_table` | `dropTable` | `DROP TABLE` |
|
|
|
|
<Note>
|
|
Local `list_materialized_views` reads table schemas to find views. On
|
|
Enterprise, it requests the server's view listing.
|
|
</Note>
|
|
|
|
See [Materialized views](/management/materialized-view) for creating one, and
|
|
[Refresh a materialized view](/feature-engineering/materialized-views) for keeping
|
|
it current.
|
|
|
|
### Views {#views}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_view` | `createView` | `CREATE VIEW` |
|
|
| list | `list_views` | `listViews` | -- |
|
|
| drop | `drop_view`, `drop_view_async` | `dropView`, `dropViewAsync` | `DROP VIEW` |
|
|
|
|
<Badge color="red">Enterprise</Badge> Views exist only on an Enterprise cluster that
|
|
enables them; the SDK methods send the view's SQL query to the deployment. See
|
|
[Views](/management/view).
|
|
|
|
{/*
|
|
Draft for the Functions release.
|
|
|
|
### Functions {#functions}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_function`, `create_function_async` | -- | `CREATE FUNCTION` |
|
|
| get | `get_function` | -- | -- |
|
|
| list | `list_functions` | -- | `SHOW FUNCTIONS` |
|
|
| drop | `drop_function` | -- | -- |
|
|
|
|
<Badge color="red">Enterprise</Badge> A function runs on the server, and only on
|
|
a deployment that enables functions, so there is no local form. The TypeScript
|
|
SDK has no function methods; use Python or SQL.
|
|
See [Functions](/management/function).
|
|
*/}
|
|
|
|
### Jobs {#jobs}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| list | `list_jobs` | `listJobs` | `SHOW JOBS` |
|
|
| open | `open_job` | `openJob` | -- |
|
|
| cancel | `cancel_job` | `cancelJob` | -- |
|
|
| errors | `job.events` | `job.events` | `SHOW ERRORS` |
|
|
|
|
See [Jobs](/basics/jobs).
|
|
|
|
### Indexes {#indexes}
|
|
|
|
| | Python | TypeScript | SQL |
|
|
| --- | --- | --- | --- |
|
|
| create | `create_index`, `create_index_async` | `createIndex`, `createIndexAsync` | `CREATE INDEX` |
|
|
| list | `list_indices` | `listIndices` | -- |
|
|
| stats | `index_stats` | `indexStats` | -- |
|
|
| drop | `drop_index` | `dropIndex` | `DROP INDEX` |
|
|
|
|
<Note>
|
|
SQL `CREATE INDEX` covers one column and takes no user-chosen name -- the server
|
|
names it. For a multi-column or named index, use the SDK.
|
|
</Note>
|
|
|
|
Indexes are a performance decision rather than a structural one, so they are
|
|
covered under [Maintenance](/indexing).
|
|
|
|
## Work within a namespace {#namespace-paths}
|
|
|
|
Most connection-level operations take a `namespace_path` (`namespacePath`) to
|
|
act inside a namespace rather than at the database root:
|
|
|
|
<CodeGroup>
|
|
```python Python icon="python"
|
|
db.table_names(namespace_path=["prod", "events"])
|
|
tbl = db.open_table("clicks", namespace_path=["prod", "events"])
|
|
```
|
|
|
|
```typescript TypeScript icon="square-js"
|
|
await db.tableNames(["prod", "events"]);
|
|
const tbl = await db.openTable("clicks", ["prod", "events"]);
|
|
```
|
|
|
|
```sql SQL
|
|
SELECT * FROM prod.events.clicks
|
|
```
|
|
</CodeGroup>
|
|
|
|
In SQL the path is written as dotted identifiers instead.
|
|
|
|
## Delete catalog objects {#dropping}
|
|
|
|
<Warning>
|
|
`drop_table` removes the table and every version of it. Table
|
|
[versioning](/management/table#versioning) does not survive the table being dropped, and
|
|
neither `drop_database` nor `drop_all_tables` asks for confirmation.
|
|
</Warning>
|
|
|
|
Dropping a **view** removes only the saved query. Dropping a **materialized
|
|
view** removes stored rows, because a materialized view is a table.
|