mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-14 15:52:26 +00:00
The quickstart says the TypeScript and Rust code of steps 2 to 5 makes one program, whichever connection the reader picks. The object-storage examples broke that: the TypeScript one defined an uncalled function whose db was local to it and had no import, and the Rust one declared uri but never connected. Both now bind db in the program's scope, as the local and Enterprise examples do, and the quickstart shows their import lines. The test functions that hold them stay uncalled, so no test reaches object storage. The connection guide shows the TypeScript example with its import line too.
104 lines
3.4 KiB
Plaintext
104 lines
3.4 KiB
Plaintext
---
|
|
title: "Connect to LanceDB"
|
|
sidebarTitle: "Connect"
|
|
description: "Connect to an embedded database in a local directory or in object storage, or to a LanceDB Enterprise deployment."
|
|
icon: plug
|
|
keywords: ["connect", "uri", "embedded", "object storage", "s3", "enterprise", "db://"]
|
|
---
|
|
|
|
import {
|
|
PyConnect,
|
|
PyConnectAsync,
|
|
PyConnectEnterpriseQuickstart,
|
|
PyConnectObjectStorage,
|
|
PyConnectObjectStorageAsync,
|
|
RsConnect,
|
|
TsConnect,
|
|
TsConnectEnterpriseQuickstart,
|
|
TsConnectObjectStorage,
|
|
} from '/snippets/connection.mdx';
|
|
|
|
The URI you pass to `connect` decides where the work runs. The same Python,
|
|
TypeScript and Rust SDKs open all three kinds;
|
|
[OSS and Enterprise](/basics/offerings) describes how the two offerings differ.
|
|
|
|
| URI | Where queries run |
|
|
| --- | --- |
|
|
| A local path, such as `./data` | OSS: in your process |
|
|
| `s3://`, `gs://` or `az://` | OSS: in your process, reading object storage |
|
|
| `db://` | Enterprise: on the deployment |
|
|
|
|
## A local directory {#local}
|
|
|
|
Embedded in your application, LanceDB reads and writes the tables in a
|
|
directory on disk.
|
|
|
|
<CodeGroup>
|
|
<CodeBlock filename="Python (sync)" language="Python" icon="python">
|
|
{PyConnect}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="Python (async)" language="Python" icon="python">
|
|
{PyConnectAsync}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="TypeScript" language="TypeScript" icon="square-js">
|
|
{ "import * as lancedb from \"@lancedb/lancedb\";\n\n" }
|
|
{TsConnect}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="Rust" language="Rust" icon="rust">
|
|
{ "use lancedb::connect;\n" }
|
|
{ "\n" }
|
|
{RsConnect}
|
|
</CodeBlock>
|
|
</CodeGroup>
|
|
|
|
## Object storage {#object-storage}
|
|
|
|
With an object storage URI the library is still embedded: your process runs
|
|
every query and reads and writes the bucket directly, with the credentials from
|
|
its environment or its storage options. [Configuring storage](/deployment/storage)
|
|
covers credentials, endpoints and provider options.
|
|
|
|
<CodeGroup>
|
|
<CodeBlock filename="Python (sync)" language="Python" icon="python">
|
|
{PyConnectObjectStorage}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="Python (async)" language="Python" icon="python">
|
|
{PyConnectObjectStorageAsync}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="TypeScript" language="TypeScript" icon="square-js">
|
|
{ "import * as lancedb from \"@lancedb/lancedb\";\n\n" }
|
|
{TsConnectObjectStorage}
|
|
</CodeBlock>
|
|
</CodeGroup>
|
|
|
|
In Rust, pass the same URI to `connect`.
|
|
|
|
## LanceDB Enterprise {#enterprise}
|
|
|
|
A `db://` URI connects to a deployment, which runs each operation for you. Get
|
|
the database URI, API key, region and endpoint from the deployment's
|
|
administrator. These examples read them from `LANCEDB_URI`, `LANCEDB_API_KEY`,
|
|
`LANCEDB_REGION` and `LANCEDB_HOST_OVERRIDE`, which keeps the API key out of
|
|
source, and pass the endpoint as `host_override`.
|
|
|
|
<CodeGroup>
|
|
<CodeBlock filename="Python" language="Python" icon="python">
|
|
{PyConnectEnterpriseQuickstart}
|
|
</CodeBlock>
|
|
|
|
<CodeBlock filename="TypeScript" language="TypeScript" icon="square-js">
|
|
{ "import * as lancedb from \"@lancedb/lancedb\";\n\n" }
|
|
{TsConnectEnterpriseQuickstart}
|
|
</CodeBlock>
|
|
</CodeGroup>
|
|
|
|
In Rust, the connection builder takes the same settings through `api_key`,
|
|
`region` and `host_override`. To use OAuth instead of an API key, see
|
|
[Authentication](/enterprise/authentication); for every connection option, see
|
|
[Database](/management/database#deployment).
|