create_engine()#
#create_engine(<engine_name>, <compute_pool_name>, <engine_size>[, <external_integrations>])
Creates a new RelationalAI (RAI) engine within the specified compute pool on Snowpark Container Services.
The engine’s size must match the INSTANCE_FAMILY
of the compute pool.
Requires the eng_admin
application role.
Parameters#
Name | Type | Description |
---|---|---|
<engine_name> | STRING | The name of the engine (case-sensitive). |
<compute_pool_name> | STRING | The name of the compute pool that hosts the engine. Must be accessible to the RAI Native App. Supported INSTANCE_FAMILY values are:- HIGHMEM_X64_S - HIGHMEM_X64_M |
<engine_size> | STRING | The size of the engine. Must be one of the following values: - "HighMem|S" for compute pools with INSTANCE_FAMILY set to HIGHMEM_X64_S .- "HighMem|M" for compute pools with INSTANCE_FAMILY set to HIGHMEM_X64_M . |
<external_integrations> | ARRAY | (Optional) An array of external access integrations to enable on the engine. |
Example#
Use create_engine()
to create a new RAI engine.
Ensure the compute pool’s INSTANCE_FAMILY
is set to HIGHMEM_X64_S
or HIGHMEM_X64_M
.
The engine’s size must match the compute pool’s INSTANCE_FAMILY
,
and the native app needs USAGE
and MONITOR
privileges on the compute pool.
For example, to create a new engine named my_rai_engine
in a compute pool named rai_engine_pool_s
with size HIGHMEM_X64_S
:
#-- Create a compute pool, if needed.
CREATE COMPUTE POOL IF NOT EXISTS rai_engine_pool_s
FOR APPLICATION relationalai
MIN_NODES = 1
MAX_NODES = 10
AUTO_RESUME = TRUE
AUTO_SUSPEND_SECS = 300
INSTANCE_FAMILY = HIGHMEM_X64_S;
GRANT USAGE, MONITOR ON COMPUTE POOL rai_engine_pool_s TO APPLICATION relationalai;
-- Create an engine.
CALL relationalai.api.create_engine('my_rai_engine', 'rai_engine_pool_s', 'HIGHMEM_X64_S');
Adjusting the AUTO_SUSPEND_SECS
parameter helps balance cost control with availability for engine provisioning.
See Cost Management for details on how costs are accrued.
Refer to Performance Considerations for more information on
engine sizing and how concurrent workloads are handled.
If the engine needs to access external resources, such as AWS S3 or Azure Blob Storage, specify the external integrations to enable on the engine:
#CALL relationalai.api.create_engine(
'my_rai_engine',
'rai_engine_pool_s',
'HIGHMEM_X64_S',
-- Enable existing external integration 'my_external_integration' on the engine.
ARRAY_CONSTRUCT('my_external_integration')
);
See the Snowflake documentation for more information on creating and using external access integrations.