Welcome to the new DOCS.vastdata.com. We've added new menus and a version selector, plus new persona and resource pages to help customers get started. Looking for a previous article? Use the docs search.

Overview

Prev Next

Applies to VAST Cluster 5.5.

New here? Start with the developer docs overview.

VAST DataBase is a transactional database for tables, built into the VAST cluster. Its tables live on the same storage as the cluster's files and objects. You work with them from the Python SDK, from query engines such as Trino and Spark, or through the VAST Query Engine, which runs on the cluster itself.

These docs are for people who build on VAST DataBase: developers, data engineers and data scientists. To enable, configure or run VAST DataBase on a cluster, see the VAST knowledge base; those are tasks for your platform team.

What you get

  • ACID transactions for every operation. Each read and write runs in a transaction, and a transaction can cover as much work as you need. For what this means in practice, see transactions in practice.
  • Row-level updates and deletes. You can change individual rows, or individual columns, and updates and deletes are low-latency.
  • Work pushed down to the data. Query engines hand filtering and column selection to the database, which runs it on the cluster's CNodes, close to the data. Less data travels back to the engine. See pushdowns.
  • Schema management built in. Adding and dropping columns are transactional operations, and there's no separate metastore to run.
  • Tables are ordinary cluster storage, so they share the cluster's snapshots, data reduction and capacity. You can read a table from a snapshot; see snapshots and replication.
  • Room to grow. VAST DataBase is designed for analytical and very high-volume structured data, including tables that keep growing, without re-sharding as they do.

How you access it

Your application can work with the same VAST DataBase tables through any of four clients: the Python SDK, Trino, Apache Spark, or the VAST ADBC driver, which sends SQL to the VAST Query Engine inside the cluster. The SDK, Trino and Spark hand filtering and column selection to the database, which runs it on the cluster's CNodes, close to the data. Every read and write runs in a transaction, and once an SDK transaction commits, Trino can query the rows it loaded.

Every client works on the same tables.

Client Use it for Start here
Python SDK (vastdb) Creating tables, loading data and querying from Python, with Arrow in and out Quickstart, Python SDK
Trino SQL analytics, with VAST as a Trino catalog Trino
Apache Spark DataFrame pipelines and Spark SQL Spark
VAST Query Engine SQL that runs inside the cluster, from your own applications through the VAST ADBC driver VAST Query Engine (ADBC), SQL reference

All of these work on the same tables. For example, once your SDK transaction commits, Trino can query the rows you loaded. For which client versions go with which cluster version, see versions.

Use cases and considerations

Example use cases:

  • Analytical and high-volume workloads on structured data that's large and keeps growing.
  • Data that changes. You need row-level updates and deletes, with transactional guarantees, rather than append-only files.
  • Several engines on one copy of the data. For example, Python ingest, Trino dashboards and Spark jobs can all read the same tables without separate exports.

Important to note:

  • Table layouts can't all be combined. Sorted tables, partitioned tables, semi-sorted projections, user-defined row IDs, vector indexes and replication have documented restrictions on each other. Some choices also can't be changed after the table is created. Read table structures and limits before you choose.
  • The VAST Query Engine supports a defined subset of SQL. For anything outside it, use Trino or Spark. See the SQL reference.
  • Size limits apply to cells and to individual requests. See limits.

Related products and features

These have their own documentation:

You want to… Go to
Store embeddings and run similarity search VAST Vector Search. These pages cover only the table side of vector tables, such as how they're created and what they can be combined with.
Stream events into tables, or expand JSON event payloads into columns VAST Event Broker
Query metadata about every file and object on the cluster VAST Catalog. The Catalog is a table you query through the database, for example with tx.catalog() in the Python SDK.
Query who did what on the cluster The audit log is also a table you query through the database (tx.audit_log() in the Python SDK). See query the audit log.
Create views, policies, keys and tables from CI with the REST API, vastpy, Terraform or the admin MCP server CI/CD and automation; automation tools compared
Run Trino or Spark as managed applications on the cluster DataEngine docs. For how managed engines relate to the work you control, see performance.

Where to go next

  1. Quickstart: connect, create a table, and insert and query rows in about 10 minutes.
  2. Concepts: the mental model behind databases, schemas, tables and transactions.
  3. Setup prerequisites: what to ask your platform team for before you start.