Applies to VAST Cluster 5.5. Examples use the VAST DataBase Python SDK 2.1.0.
Getting started
What do I need from my platform team?
A database, an endpoint, an access key pair, and an identity policy with the right actions. Setup prerequisites has a checklist and a request you can copy.
Which SDK version should I install?
On a 5.5 cluster, install vastdb 2.1.0. Partitioned tables need it. Versions
Can I use the management (VMS) address as the endpoint?
No. Use the address of a virtual IP pool that serves the database. The management address fails with UnsupportedServer. Errors
My policy grants s3:Tabular*, so why do I get Forbidden straight away?
The SDK's first call on a database also needs s3:ListBucket. Setup prerequisites
Tables and data
What's a database, in VAST terms?
A bucket on a Database-enabled view. It holds schemas, and schemas hold tables. Concepts
Should I use a sorted table, a partitioned table or a projection?
It depends on how you'll query the table, and most of these choices can't be undone. Data modeling walks through the choice. Limits lists which structures can be combined.
Can I change a table's sort columns or partitioning later?
No. Both are fixed once they're set. Limits
Why can't I update a sort column or a partition column?
The cluster doesn't allow changing them after a row is inserted. Delete the row and insert it again. Updates and deletes
How do I load a lot of data without sending it through my client?
Put Parquet files in a bucket, then import them with import_files(). The cluster reads the files itself, so the data doesn't pass through your client. Ingest
Do rows come back in order?
No. Sort on the client if you need an order. Querying
Why don't I see rows I just inserted in get_stats()?
Statistics are updated in the background, not when you commit, so they can be behind for a while (minutes on sorted and partitioned tables). The rows themselves are there; count them with a query to check. Monitoring
Transactions
What happens if my code raises inside with session.transaction()?
The transaction rolls back, and nothing it wrote is kept. The one exception is delete_partitions(), which a rollback doesn't undo. Transactions in practice
Two jobs write to the same table. What can go wrong?
If they change the same row or object, one of them gets a Conflict (TabularWwc). Retry the whole transaction. Transactions in practice
Is delete_partitions() transactional?
No. You have to pass allow_non_acid=True, and a rollback doesn't undo it. Updates and deletes
Other engines
Can Trino and the SDK use the same tables?
Yes. All clients work on the same tables. Once your SDK transaction commits, Trino can query the rows. Overview
Which Trino version goes with my cluster?
See the compatibility table in versions.
What is the VAST Query Engine, and how do I reach it?
It runs SQL inside the cluster. You reach it through the VAST ADBC driver, and you need s3:QueryEngine*. VAST Query Engine (ADBC) · SQL reference
Getting help
What should I include when I report a problem?
The error's code, message, status and url, your SDK and cluster versions, and the time it happened. Remove addresses and keys first. Troubleshooting