Skip to content

Starburst Platform

Starburst Galaxy is a managed Trino service providing serverless distributed SQL query execution. BenchBox provides first-class Starburst support, inheriting Trino’s SQL dialect and federated query capabilities.

Features

  • Managed Trino - No cluster management required
  • Trino dialect - Inherits SQL dialect from Trino
  • Federated queries - Query data across multiple sources
  • Built-in catalogs - Pre-configured data connectors
  • HTTPS secure - Always encrypted connections
  • Multiple table formats - Iceberg, Hive, Delta Lake support

Quick Start

The commands install the Trino driver, set credentials, and run a benchmark.

Terminal window
uv add trino
export STARBURST_HOST=my-cluster.trino.galaxy.starburst.io
export STARBURST_USER=joe@example.com/accountadmin
export STARBURST_PASSWORD=your-password
benchbox run --platform starburst --benchmark tpch --scale 1.0

Authentication

Starburst Galaxy uses a unique username format that combines your email with a role:

username = email/role
# Example: joe@example.com/accountadmin

Configuration Methods

Environment Variables (recommended): the first three variables are the credentials. Optionally, configure the role separately: set STARBURST_USER without the role suffix and set STARBURST_ROLE, which is appended automatically. In that case the second STARBURST_USER line replaces the first. STARBURST_CATALOG optionally sets the default catalog.

Terminal window
export STARBURST_HOST=my-cluster.trino.galaxy.starburst.io
export STARBURST_USER=joe@example.com/accountadmin
export STARBURST_PASSWORD=your-password
export STARBURST_USER=joe@example.com
export STARBURST_ROLE=accountadmin
export STARBURST_CATALOG=tpch_sf1
benchbox run --platform starburst --benchmark tpch --scale 1.0

Credentials file: the CLI also reads these settings from the starburst section of ~/.benchbox/credentials.yaml. Values written as ${VAR} are read from the environment. Environment variables apply only to settings the file leaves unset.

starburst:
host: my-cluster.trino.galaxy.starburst.io
username: joe@example.com/accountadmin
password: ${STARBURST_PASSWORD}
catalog: tpch_sf1

Starburst has no --platform-option settings for connection details, catalog, schema, or table format.

Configuration Options

Set each option in the credentials file, or through its environment variable where one exists.

OptionEnvironment VariableRequiredDefaultDescription
hostSTARBURST_HOSTYes-Galaxy cluster hostname
usernameSTARBURST_USER / STARBURST_USERNAMEYes-User email or email/role
passwordSTARBURST_PASSWORDYes-Password or API key
roleSTARBURST_ROLENo-Role (appended to username if not included)
catalogSTARBURST_CATALOGNo-Default catalog
portSTARBURST_PORTNo443HTTPS port
schema-Nofrom benchmark and scaleSchema for benchmark tables
table_format-NomemoryTable format: memory, hive, iceberg, delta
verify_ssl-NotrueSSL certificate verification

Usage Examples

Basic Benchmark

The commands run TPC-H at scale factor 1 and TPC-DS at scale factor 10.

Terminal window
benchbox run --platform starburst --benchmark tpch --scale 1.0
benchbox run --platform starburst --benchmark tpcds --scale 10.0

With Specific Catalog

Terminal window
export STARBURST_CATALOG=my_catalog
benchbox run --platform starburst --benchmark tpch --scale 1.0

To set the schema as well, add schema: benchmark_data to the starburst section of the credentials file.

With Table Format

Tables use the memory format unless the credentials file sets table_format. For Iceberg tables:

starburst:
table_format: iceberg

Use delta for Delta Lake tables.

Python API

from benchbox import TPCH
from benchbox.platforms.starburst import StarburstAdapter
adapter = StarburstAdapter(
host="my-cluster.trino.galaxy.starburst.io",
username="joe@example.com/accountadmin",
password="your-password",
catalog="tpch_catalog",
schema="benchmark_data",
table_format="iceberg",
)
benchmark = TPCH(scale_factor=1.0)
benchmark.generate_data()
adapter.load_benchmark(benchmark)
results = adapter.run_benchmark(benchmark)

Architecture

Starburst inherits from Trino, which means:

  • SQL Dialect: Uses Trino’s SQL dialect for query translation
  • Connector Syntax: Same catalog.schema.table naming convention
  • Session Properties: Trino session properties are supported

get_platform_family returns "trino", and get_inherited_platform also returns "trino".

from benchbox.core.platform_registry import PlatformRegistry
family = PlatformRegistry.get_platform_family("starburst")
parent = PlatformRegistry.get_inherited_platform("starburst")

Table Formats

Starburst Galaxy supports multiple table formats:

FormatDescriptionUse Case
memoryIn-memory tablesFast testing, small data
hiveHive formatCompatibility with Hive ecosystem
icebergApache IcebergProduction analytics, ACID transactions
deltaDelta LakeDatabricks ecosystem integration

Iceberg is recommended for analytics. Set table_format: iceberg in the starburst section of the credentials file.

Comparison: Starburst vs Trino

FeatureStarburst GalaxySelf-Hosted Trino
DeploymentCloud managedSelf-hosted cluster
AuthenticationPassword/API keyConfigurable
SSLAlways HTTPSConfigurable
ScalingAutomaticManual
CatalogsPre-configuredManual setup
CostPay-per-useInfrastructure cost
Best ForQuick start, productionFull control, customization

When to Use Starburst

Use Starburst when:

  • You need managed Trino without cluster management
  • Running federated queries across multiple data sources
  • Using Iceberg/Delta Lake table formats
  • You want built-in catalog management

Use self-hosted Trino instead when:

  • You need full control over cluster configuration
  • Cost optimization is critical
  • You have existing Trino infrastructure
  • You need specific Trino plugins/connectors

Troubleshooting

Authentication Failed (401)

Starburst Galaxy authentication failed.

Solutions:

  1. Verify username format: email/role (e.g., joe@example.com/accountadmin)
  2. Check password is correct
  3. Verify credentials at galaxy.starburst.io

Connection Refused

Cannot connect to Starburst Galaxy at {host}:{port}

Solutions:

  1. Verify host is correct: {cluster-name}.trino.galaxy.starburst.io
  2. Check network connectivity
  3. Verify no firewall blocking port 443

SSL Certificate Error

SSL certificate error connecting to Starburst Galaxy.

Solutions:

  1. Check network proxy settings
  2. Verify SSL certificate chain
  3. Set verify_ssl: false in the starburst section of ~/.benchbox/credentials.yaml (not recommended for production)

Catalog Not Found

Catalog 'my_catalog' does not exist

Solutions:

  1. Create the catalog in Starburst Galaxy console
  2. Use an existing catalog: check available catalogs in the console
  3. Leave the catalog unset to use the default