Work with engines using DDL
You can create, run, and modify engines from the UI or SQL API. Firebolt allows dynamic scaling of engines without stopping them.
All engine operations below can be performed using a System Engine.
Create engines
Create an engine using the UI
-
Select Engines.
-
Select the (+) icon and choose Create new engine.
-
Enter the engine name, type, and number of nodes. Select Create new engine.
Create an engine using the API
To create an engine, use the CREATE ENGINE command.
The following code example creates an engine with one cluster containing two nodes of type ‘S’.
CREATE ENGINE myengine;
The following code example creates an engine with two nodes of type ‘M’.
CREATE ENGINE myengine WITH
TYPE="M" NODES=2 CLUSTERS=1;
When creating an engine via the UI, Firebolt preserves the case of the identifier. For example, an engine named MyEngine will retain its casing. To reference this engine in SQL commands, enclose the name in quotes: "MyEngine"
. For more information, visit the Object Identifiers page.
Start or resume an engine
Start an engine using the UI
- In the Engines list, find the engine you want to start.
- Open the dropdown menu next to the engine and select Start engine.
- The engine status changes to Running once started.
Start an engine using the API
To start your engine, use the START ENGINE command:
START ENGINE myengine;
Stop an engine
Stop an engine using the UI
- In the Engines list, find the engine you want to stop.
- Open the dropdown menu and select Stop engine.
Stop an engine using the API
To stop an engine, use the STOP ENGINE command:
STOP ENGINE myengine;
To stop an engine immediately without waiting for running queries to complete, use:
STOP ENGINE myengine WITH TERMINATE=TRUE;
Stopping an engine clears its cache. Queries run after restarting will experience a cold start, potentially impacting performance until the cache is rebuilt.
Resize engines
Scale engines up or down using the UI
- In the Engines list, find the engine to modify.
- Open the dropdown menu and select the More options icon (
).
- Choose Modify engine.
- Choose the new node type and select Modify engine.
Scale engines up or down using the API
Use the ALTER ENGINE command to change the node type:
ALTER ENGINE my_prod_engine SET TYPE = “M”;
The previous example updates all nodes in the engine to use the ‘M’ type.
Scale engines out or in using the UI
- In the Engines list, find the engine to modify.
- Open the dropdown menu, select the More options icon (
), and choose Modify engine.
- Adjust the number of nodes using the (-) and (+) buttons.
Scale engines out or in using the API
Use the ALTER ENGINE command to change the number of nodes:
ALTER ENGINE my_prod_engine SET NODES = 3;
The previous example updates the engine so that it uses three nodes.
Concurrency scaling
You can use the clusters attribute to scale engine concurrency. Set the MIN_CLUSTERS
and MAX_CLUSTERS
parameters to enable auto-scaling. The engine adjusts the clusters based on workload between the defined minimum and maximum.
In preview mode, engines are limited to a single cluster. Contact Firebolt support to try multi-cluster engines.
During scaling operations, old and new compute resources may run concurrently, consuming additional FBUs.
Automatically start or stop an engine
You can configure an engine to start automatically after creation and to stop after a set idle time.
Configure automatic start/stop using the UI
- In the Create new engine menu, open Advanced Settings.
- Disable Start engine immediately to prevent the engine from starting upon creation.
- To configure automatic stopping, enable Automatically stop engine and set your idle timeout. The default is 20 minutes. Toggle the button off to disable auto-stop.
Configure automatic start/stop using the API
Use the CREATE ENGINE command to set auto-start and auto-stop options:
CREATE ENGINE my_prod_engine WITH
INITIALLY_STOPPED = true AUTO_STOP = 10;
The previous example creates an engine that remains stopped after creation and auto-stops after 10 minutes of inactivity.
To modify the auto-stop feature later, use the ALTER ENGINE command:
ALTER ENGINE my_prod_engine SET AUTO_STOP = 30;
The INITIALLY_STOPPED
function can only be set during engine creation and cannot be modified afterward.