- A single engine can run queries on multiple databases.
- A database can be queried using multiple engines.
- Key engine concepts – Learn about the
TYPE
,NODES
, andCLUSTERS
attributes that define a Firebolt engine’s configuration and scaling options. - Multi-dimensional elasticity – Scale engines dynamically by adjusting engine attributes without stopping workloads.
- Connecting to engines – How to connect to a Firebolt engine using the UI, Engine URL, or third-party tools.
- Monitoring engine usage – Track engine performance using observability views in
information_schema
to optimize resource allocation. - Engine governance and security – Control engine access using Role-Based Access Control (RBAC) and account-level isolation to enforce security policies.
- Viewing and understanding engine status – Learn how to use
SHOW ENGINES
to check the status of all engines, including running, resizing, and stopped states.
Key engine concepts
Engines in Firebolt are defined by four attributes: Type, Family, Nodes, and Clusters. These attributes determine the engine’s configuration and scaling options. TypeThe
TYPE
of engine defines the compute node size used as a building block for an engine. They are available in Small, Medium, Large, and X-Large sizes. Change the node type to vertically scale up or down. Small and medium engines are available for use right away. If you want to use a large or extra-large engine, reach out to support@firebolt.io.
Family Compute nodes can be storage-optimized with larger cache sizes or compute-optimized which have smaller caches. The default is storage-optimized. Nodes
This attribute represents the number (1 - 128) of compute nodes, allowing granular horizontal scaling to fine-tune query performance characteristics while avoiding overprovisioning and unnecessary cost. Both scaling in and out are supported. Clusters
A cluster is a collection of compute resources, described by
TYPE
and NODES
attributes. A given Firebolt engine can contain one or more clusters. The maximum number of clusters is specified by the max_clusters attribute. Only homogeneous cluster configurations (clusters with the same number of Nodes and Type) are supported within a single engine. Users can leverage the MIN_CLUSTERS
and MAX_CLUSTERS
attributes to support query concurrency scaling.
Examples:
-
An engine cluster with four nodes of type M.
-
An engine with two clusters, each containing four nodes of type M.
TYPE
, NODES
, MIN_CLUSTERS
and MAX_CLUSTERS
form the configuration of an engine.
To create an engine, use the CREATE ENGINE command, specifying the node type to be used for the engine, number of clusters and number of nodes per cluster.
The following code example creates two clusters, each containing four nodes of type M
, from the compute-optimized family:
Multi-dimensional elasticity
Firebolt engines enable dynamic and fully online scaling operations, meaning you do not need to stop your engines to scale them. You can scale an engine along three dimensions:Scaling Type | Action | Example SQL Command |
---|---|---|
Vertical Scaling | Change the node type and family | ALTER ENGINE MyEngine SET TYPE = L FAMILY = SO; |
Horizontal Scaling | Change the number of nodes | ALTER ENGINE MyEngine SET NODES = 3; |
Concurrency Scaling | Change the number of clusters | ALTER ENGINE MyEngine SET MIN_CLUSTERS = 2 MAX_CLUSTERS = 2; |
- Use a larger node type to improve performance for both single queries and multiple concurrent queries, especially as data size grows
- Increase the number of nodes for finer control over scaling, such as distributing workloads across multiple smaller nodes or when further vertical scaling is not possible.
- Increase the number of clusters to support higher query concurrency.
ALTER ENGINE
to horizontally scale an engine from two to three nodes:
Connecting to engines
You can connect to an engine using the following methods:- Firebolt’s user interface.
- An engine URL.
- Third-party connectors such as Airflow and DBT.
<account-name>.<org-name>.region.firebolt.io
The combined length of account-name
and org-name
must not exceed 62 characters.
Monitoring engine usage
You can use the observability views ininformation_schema
to track engine performance and usage.
View | Description |
---|---|
engine_metrics_history | Captures CPU and RAM usage every 30 seconds and retains data for 30 days. |
engine_running_queries | Lists active queries and queries waiting to be processed. |
Engine governance and security
Firebolt provides account-level isolation and Role Based Access Control (RBAC) to provide strict governance over data access and infrastructure costs. Account isolation You can create multiple accounts within a given organization, where each account can represent a fully isolated environment such as development, test, or production. This enables engines across different environments to be fully isolated from each other. RBAC for engine management The Firebolt RBAC model allows administrators to control user actions on resources that are created within a given account. For example, administrators can control which users are allowed to modify the configuration of engines and control which users can create new engines. The following code example creates an engine administrator role and grants it full permissions onMyEngine
:
Viewing and understanding engine status
Use SHOW ENGINES to list all engines and their statuses in your Firebolt account as follows:SHOW ENGINES and UI | Description |
---|---|
STARTING | The engine is provisioning resources, and will be ready to use soon. |
RUNNING | The engine is running queries or available to run queries. The engine can be modified while it is running. |
RESIZING | The engine is currently being resized after an ALTER ENGINE command. The engine will be in this state when the user has issued a request to change the engine TYPE , number of NODES or number of CLUSTERS . |
DRAINING | The engine is completing running queries before shutting down. |
STOPPING | The engine is shutting down and cannot accept new queries. |
STOPPED | The engine is fully stopped and not available to run queries. |