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

  1. Select Engines.

  2. Select the (+) icon and choose Create new engine.

  3. 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

  1. In the Engines list, find the engine you want to start.
  2. Open the dropdown menu next to the engine and select Start engine.

  3. 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

  1. In the Engines list, find the engine you want to stop.
  2. 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

  1. In the Engines list, find the engine to modify.
  2. Open the dropdown menu and select the More options icon (More options icon).
  3. Choose Modify engine.

  4. 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

  1. In the Engines list, find the engine to modify.
  2. Open the dropdown menu, select the More options icon (More options icon), and choose Modify engine.

  3. 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

  1. In the Create new engine menu, open Advanced Settings.
  2. Disable Start engine immediately to prevent the engine from starting upon creation.

  3. 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.