Presto
Prerequisites
- The hostname for the Presto database server
- The username/password for the Presto database server
- The name of the database to use within the Presto database server
Setup
Manual
Add the following to a .env file in your Cube project:
CUBEJS_DB_TYPE=prestodb
CUBEJS_DB_HOST=my.presto.host
CUBEJS_DB_USER=presto_user
CUBEJS_DB_PASS=**********
CUBEJS_DB_PRESTO_CATALOG=my_presto_catalog
CUBEJS_DB_SCHEMA=my_presto_schemaEnvironment Variables
| Environment Variable | Description | Possible Values | Required |
|---|---|---|---|
CUBEJS_DB_HOST | The host URL for a database | A valid database host URL | ✅ |
CUBEJS_DB_PORT | The port for the database connection | A valid port number | ❌ |
CUBEJS_DB_USER | The username used to connect to the database | A valid database username | ✅ |
CUBEJS_DB_PASS | The password used to connect to the database | A valid database password | ✅ |
CUBEJS_DB_PRESTO_CATALOG | The catalog within Presto to connect to | A valid catalog name within a Presto database | ✅ |
CUBEJS_DB_PRESTO_AUTH_TOKEN | The authentication token to use when connecting to Presto/Trino. It will be sent in the Authorization header. | A valid authentication token | ❌ |
CUBEJS_DB_SCHEMA | The schema within the database to connect to | A valid schema name within a Presto database | ✅ |
CUBEJS_DB_SSL | If true, enables SSL encryption for database connections from Cube | true, false | ❌ |
CUBEJS_DB_MAX_POOL | The maximum number of concurrent database connections to pool. Default is 8 | A valid number | ❌ |
CUBEJS_CONCURRENCY | The number of concurrent queries to the data source | A valid number | ❌ |
CUBEJS_DB_EXPORT_BUCKET_TYPE | The export bucket type for pre-aggregations | s3, gcs | ❌ |
CUBEJS_DB_EXPORT_BUCKET | The export bucket to connect to | A valid bucket URL | ❌ |
CUBEJS_DB_EXPORT_BUCKET_AWS_KEY | The AWS Access Key ID to use for export bucket writes | A valid AWS Access Key ID | ❌ |
CUBEJS_DB_EXPORT_BUCKET_AWS_SECRET | The AWS Secret Access Key to use for export bucket writes | A valid AWS Secret Access Key | ❌ |
CUBEJS_DB_EXPORT_BUCKET_AWS_REGION | The AWS region to use for export bucket writes | A valid AWS region | ❌ |
CUBEJS_DB_EXPORT_GCS_CREDENTIALS | A Base64 encoded JSON key file for connecting to Google Cloud Storage | A valid Google Cloud JSON key file, encoded as a Base64 string | ❌ |
Pre-Aggregation Feature Support
count_distinct_approx
Measures of type
count_distinct_approx can
be used in pre-aggregations when using Presto as a source database. To learn
more about Presto support for approximate aggregate functions, click
here .
Pre-Aggregation Build Strategies
To learn more about pre-aggregation build strategies, head here.
| Feature | Works with read-only mode? | Is default? |
|---|---|---|
| Simple | ✅ | ✅ |
| Export Bucket | ❌ | ❌ |
By default, Presto uses a simple strategy to build pre-aggregations.
Simple
No extra configuration is required to configure simple pre-aggregation builds for Presto.
Export Bucket
Presto supports using both AWS S3 and Google Cloud Storage for export bucket functionality.
AWS S3
Ensure the AWS credentials are correctly configured in IAM to allow reads and writes to the export bucket in S3.
CUBEJS_DB_EXPORT_BUCKET_TYPE=s3
CUBEJS_DB_EXPORT_BUCKET=my.bucket.on.s3
CUBEJS_DB_EXPORT_BUCKET_AWS_KEY=<AWS_KEY>
CUBEJS_DB_EXPORT_BUCKET_AWS_SECRET=<AWS_SECRET>
CUBEJS_DB_EXPORT_BUCKET_AWS_REGION=<AWS_REGION>Google Cloud Storage
When using an export bucket, remember to assign the Storage Object Admin
role to your Google Cloud credentials (CUBEJS_DB_EXPORT_GCS_CREDENTIALS).
CUBEJS_DB_EXPORT_BUCKET=gs://presto-export-bucket
CUBEJS_DB_EXPORT_BUCKET_TYPE=gcs
CUBEJS_DB_EXPORT_GCS_CREDENTIALS=<BASE64_ENCODED_SERVICE_CREDENTIALS_JSON>SSL
To enable SSL-encrypted connections between Cube and Presto, set the
CUBEJS_DB_SSL environment variable to true. For more information on how to
configure custom certificates, please check out Enable SSL Connections to the
Database.
Was this page useful?