diff --git a/docs/web/basics/connect.mdx b/docs/web/basics/connect.mdx new file mode 100644 index 000000000..3b4bf5111 --- /dev/null +++ b/docs/web/basics/connect.mdx @@ -0,0 +1,101 @@ +--- +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. + + + + {PyConnect} + + + + {PyConnectAsync} + + + + {TsConnect} + + + + { "use lancedb::connect;\n" } + { "\n" } + {RsConnect} + + + +## 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. + + + + {PyConnectObjectStorage} + + + + {PyConnectObjectStorageAsync} + + + + {TsConnectObjectStorage} + + + +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, and pass the endpoint as `host_override`. Keep the API key in a +secret manager or the environment rather than in source. + + + + { "import lancedb\n\n" } + {PyConnectEnterpriseQuickstart} + + + + { "import * as lancedb from \"@lancedb/lancedb\";\n\n" } + {TsConnectEnterpriseQuickstart} + + + +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). diff --git a/docs/web/basics/offerings.mdx b/docs/web/basics/offerings.mdx new file mode 100644 index 000000000..57192f66f --- /dev/null +++ b/docs/web/basics/offerings.mdx @@ -0,0 +1,36 @@ +--- +title: "OSS and Enterprise" +sidebarTitle: "OSS and Enterprise" +description: "LanceDB OSS and LanceDB Enterprise: what each one is, and which features each one has." +icon: compass +keywords: ["oss", "enterprise", "embedded", "deployment", "availability", "comparison"] +--- + +LanceDB comes in two forms. Both use the same SDKs and the same +[Lance](/basics/lance) tables, and this documentation covers both. + +- **LanceDB OSS** is a library. It runs inside your process and works on tables + in a local directory or in object storage, with nothing else running on your + behalf. +- **LanceDB Enterprise** is a database service. A `db://` connection sends each + operation to a deployment, which runs it. + +[Connect to LanceDB](/basics/connect) shows how to start with either. + +## How a page says where it applies {#labels} + +A page that declares its availability opens with a label. +OSS and Enterprise name +the offerings it applies to, and **varies** marks one where it depends on the +version or configuration; the sentence after the label says how. A page that +applies to one offering only also shows that offering's tag in the sidebar. +Every page stays in the same navigation, whichever offering you use. + +## Feature availability {#availability} + +These are the pages that declare where they apply. + +{/* availability-comparison */} + +[LanceDB Enterprise](/enterprise) describes what a deployment adds and how the +two differ in operation, such as scale, caching and maintenance. diff --git a/docs/web/docs.json b/docs/web/docs.json index 4c002b0a5..990dc6c7a 100644 --- a/docs/web/docs.json +++ b/docs/web/docs.json @@ -253,6 +253,8 @@ "group": "Getting Started", "pages": [ "index", + "basics/offerings", + "basics/connect", "quickstart", "architecture", "basics/sdk",