Weaviate Cloud Hosting Backups

Description

Let’s say something bad happens and that I need to do a backup of my cluster hosted on the Weaviate cloud.

What are the capabilities here? I saw on another post that Weaviate has covered, but it’s free stressful to not know exactly how we are covered.

Couldn’t find any documentation on this.

Particularly, the questions were:

  • In MongoDB, I can backup to a specific time period as regular backups at intervals are done. Is this possible?
  • Is there a self-serve way to do backup?
  • Can I export my Weaviate instance and store it myself as well?

Server Setup Information

  • Weaviate Server Version: Weaviate Cloud Hosted
  • Deployment Method:
  • Multi Node? Number of Running Nodes:
  • Client Language and Version:
  • Multitenancy?: Yes

Any additional Information

hi @Tejas_Sharma !!

All hosted clusters in our cloud have a backup bucket already configured.

This means that, at any time, you can create or restore from your own backups, on top of the automated backups we do from our side.

Those “ad-hoc” backups can be store up to 1 month.

Here is an example code in python v4 client for that, using a real serverless cluster in our cloud:

client.collections.delete("Collection1")
collection = client.collections.create("Collection1")
collection.data.insert({"name": "John"})
collection.data.insert({"name": "Mary"})
print("Collection1 exists?", client.collections.exists("Collection1"))
print("Collection1 total count", collection.aggregate.over_all())
backup_task = client.backup.create(backup_id="super-cool-backup-id", backend="gcs", include_collections=["Collection1"], wait_for_completion=True)
print("Backup task", backup_task)
client.collections.delete("Collection1")
print("Collection1 deleted!")
print("Collection1 exists?", client.collections.exists("Collection1"))
restore_task = client.backup.restore(backup_id="super-cool-backup-id", backend="gcs", include_collections="Collection1", wait_for_completion=True)
print("Collection1 restore task", restore_task)
print("Collection1 exists?", client.collections.exists("Collection1"))
print("Collection1 total count", collection.aggregate.over_all())

I got this as the output:

Collection1 exists? True
Collection1 total count AggregateReturn(properties={}, total_count=2)
Backup task error=None status=<BackupStatus.SUCCESS: 'SUCCESS'> path='gs://weaviate-wcs-prod-cust-us-west3-workloads-backups/69e14018-8f2c-4361-bf79-0953902372b3/super-cool-backup-id' backup_id='super-cool-backup-id' collections=['Collection1']
Collection1 deleted!
Collection1 exists? False
Collection1 restore task error=None status=<BackupStatus.SUCCESS: 'SUCCESS'> path='gs://weaviate-wcs-prod-cust-us-west3-workloads-backups/69e14018-8f2c-4361-bf79-0953902372b3/super-cool-backup-id' backup_id='super-cool-backup-id' collections=['Collection1']
Collection1 exists? True
Collection1 total count AggregateReturn(properties={}, total_count=2)

We do not provide a feature in our console to export your backup. :frowning:

However, If you ever need a copy of your backups for testing or in case you want take your vectors elsewhere - hope that’s not the case!! :slight_smile: - you can always reach out to our super friendly support line at:

Let me know if this answer your questions!

Thanks!

Thanks Duda, so from Python code I can do a backup at any time. Is there any docs link?

Oh and no migration at all, super happy with Weaviate but this is just something on the back of our minds at the team in case an emergency happens — planning before hand!

1 Like

Glad to hear that!

Here are the docs about backup:

If you need direct access to the backup bucket, then the Bring Your Own Cloud offering is a way to go

Let me know if that helps!

Thanks!

1 Like