Skip to main content

Database & client setup

  Overview


  Options for running Weaviate

You can run Weaviate as a managed service (Weaviate Cloud Services, or WCS), or manage your own instances using Docker, Kubernetes, or Embedded Weaviate.

As mentioned before, the underlying Weaviate code is identical regardless of the method. There are some differences to be aware of.

WCS, or Weaviate Cloud Services, is a managed SaaS service that requires no maintenance at your end.

As it is managed by Weaviate (the company - the software is not sentient... yet), it is the fastest way to create a new instance of Weaviate and requires the least amount of effort for the users.

Weaviate instances on WCS come pre-configured for convenience. They include a number of Weaviate "modules" by default, as well as built-in support for user authentication for security.

WCS includes a free "sandbox" tier, which is our recommend method of running Weaviate throughout this course unless otherwise specified.

  Docker / Kubernetes

You can run Weaviate instances using containerization solutions such as Docker and/or Kubernetes.

This provides you with the same code base as one that is used in WCS, although you will need to manage its configuration and deployment yourself.

Self-managed set ups using Docker or Kubernetes will be discussed in standalone, separate units in the future.

If you are familiar with either solutions and would prefer to install Weaviate through them, we refer you to our documentation for installation with Docker-Compose or Kubernetes.

  Embedded Weaviate

We also have an experimental feature called Embedded Weaviate, where you can directly instantiate a Weaviate database from a client library.

It is however in an experimental phase only, and is not recommended for anything other than evaluation.

  Get started with WCS

  Sign in to WCS

  1. First, access WCS by navigating to the Weaviate Cloud Console, and click on "Sign in with the Weaviate Cloud Services".
    1. If you don't have an account with WCS yet, click on the "Register" button and create a new account.
  2. Then, sign in with your WCS username and password.

  Create a Weaviate Cluster

To create a new Weaviate Cluster, click the "Create cluster" button.

Button to create WCS instance

Then:

  1. Select the Free sandbox plan tier.
  2. Provide a cluster name, which will become a part of its URL. A suffix will be added to this to ensure uniqueness.
  3. Set the Enable Authentication? option to YES.

Your selections should look like this:

Instance configuration

Finally, press Create to create your sandbox instance. Note that the sandbox will expire after a set number of days.

Create instance

This will start the process to create a new instance, and you will see a progress indicator.

Creation in progress

Instance creation should take a minute or two, and you will see a tick ✔️ when it's done, indicating that the instance is ready.

Sandbox expiry & options
Sandbox expiry

The sandbox is free, but it will expire after 14 days. After this time, all data in the sandbox will be deleted.

If you would like to preserve your sandbox data, you can retrieve your data with our cursor API, or contact us to upgrade to a production SaaS instance.

You can communicate with Weaviate with the available client libraries or directly with the RESTful API and the GraphQL API.

  Install Weaviate client

Academy material in Python

For the initial release of Weaviate Academy units, our materials are written around Python examples.

But we are working to add versions for other clients, starting with TypeScript/JavaScript examples. We appreciate your patience as we build up our educational material.

  Available clients

Currently, Weaviate clients are available in:

  • Python
  • TypeScript/JavaScript
  • Java
  • Go

  Client capabilities

With these clients you can perform all RESTful and GraphQL requests. This means you can use any endpoint, and perform all GraphQL queries directly from your Python, TypeScript/JavaScript, Java or Go scripts.

The Weaviate documentation, including the RESTful API and GraphQL reference pages, include code snippets using each client. The methods of the clients are designed to reflect the API functions 1:1, but are designed (structured and named) in the way native to the language.

  Installation

Install your preferred client by following the relevant instructions below:

Add weaviate-client to your Python environment with pip:

$ pip install weaviate-client

  Review

Each section should have a quick recap/review video of about a minute.

  Review exercise

  Question
Which of the following is not true?
  Question
Which of the following is necessary for a Weaviate instance to use with Weaviate Academy?
  Question
Which of the following is not true about Weaviate clients?

  Key takeaways

  • There are multiple ways to run Weaviate.
  • The recommended, easiest way to run a Weaviate instance is with WCS.
  • Weaviate clients are available in multiple languages.
  • Currently, the Academy material is available in Python only.