Model
The model package contains various classes and functions for managing Firebolt engines and databases.
Database
- class firebolt.model.database.Database(*, name: ConstrainedStrValue, compute_region_id: RegionKey, id: DatabaseKey | None = None, description: ConstrainedStrValue | None = None, emoji: ConstrainedStrValue | None = None, current_status: str | None = None, health_status: str | None = None, data_size_full: int | None = None, data_size_compressed: int | None = None, is_system_database: bool | None = None, storage_bucket_name: str | None = None, create_time: datetime | None = None, create_actor: str | None = None, last_update_time: datetime | None = None, last_update_actor: str | None = None, desired_status: str | None = None)
Bases:
FireboltBaseModel
A Firebolt database.
Databases belong to a region and have a description, but otherwise are not configurable.
- attach_to_engine(engine: Engine, is_default_engine: bool = False) Binding
Attach an engine to this database.
- Parameters:
engine – The engine to attach.
is_default_engine – Whether this engine should be used as default for this database. Only one engine can be set as default for a single database. This will overwrite any existing default.
- compute_region_key: RegionKey
- create_actor: str | None
- create_time: datetime | None
- current_status: str | None
- data_size_compressed: int | None
- data_size_full: int | None
- property database_id: str | None
- database_key: DatabaseKey | None
- delete() Database
Delete a database from Firebolt.
Raises an error if there are any attached engines.
- description: str | None
- desired_status: str | None
- emoji: str | None
- get_default_engine() Engine | None
Returns: default engine of the database, or None if default engine is missing
- health_status: str | None
- is_system_database: bool | None
- last_update_actor: str | None
- last_update_time: datetime | None
- name: str
- classmethod parse_obj_with_service(obj: Any, database_service: DatabaseService) Database
- storage_bucket_name: str | None
Engine
- class firebolt.model.engine.Engine(*, name: ConstrainedStrValue, compute_region_id: RegionKey, settings: EngineSettings, id: EngineKey | None = None, description: str | None = None, emoji: str | None = None, current_status: EngineStatus | None = None, current_status_summary: EngineStatusSummary | None = None, latest_revision_id: EngineRevisionKey | None = None, endpoint: str | None = None, endpoint_serving_revision_id: EngineRevisionKey | None = None, create_time: datetime | None = None, create_actor: str | None = None, last_update_time: datetime | None = None, last_update_actor: str | None = None, last_use_time: datetime | None = None, desired_status: str | None = None, health_status: str | None = None, endpoint_desired_revision_id: EngineRevisionKey | None = None)
Bases:
FireboltBaseModel
A Firebolt engine. Responsible for performing work (queries, ingestion).
Engines are configured in
Settings
and inEngineRevisionSpecification
.- attach_to_database(database: Database, is_default_engine: bool = False) Binding
Attach this engine to a database.
- Parameters:
database – Database to which the engine will be attached
is_default_engine – Whether this engine should be used as default for this database. Only one engine can be set as default for a single database. This will overwrite any existing default.
- compute_region_key: RegionKey
- create_actor: str | None
- create_time: datetime | None
- current_status: EngineStatus | None
- current_status_summary: EngineStatusSummary | None
- description: str | None
- desired_status: str | None
- emoji: str | None
- endpoint: str | None
- endpoint_desired_revision_key: EngineRevisionKey | None
- endpoint_serving_revision_key: EngineRevisionKey | None
- property engine_id: str
- get_connection() Connection
Get a connection to the attached database for running queries.
- Returns:
engine connection instance
- Return type:
- health_status: str | None
- key: EngineKey | None
- last_update_actor: str | None
- last_update_time: datetime | None
- last_use_time: datetime | None
- latest_revision_key: EngineRevisionKey | None
- name: str
- classmethod parse_obj_with_service(obj: Any, engine_service: EngineService) Engine
- restart(wait_for_startup: bool = True, wait_timeout_seconds: int = 3600) Engine
Restart an engine.
- Parameters:
wait_for_startup – If True, wait for startup to complete. If False, return immediately after requesting startup.
wait_timeout_seconds – Number of seconds to wait for startup to complete before raising a TimeoutError.
- Returns:
The updated engine from Firebolt.
- settings: EngineSettings
- start(wait_for_startup: bool = True, wait_timeout_seconds: int = 3600, verbose: bool = False) Engine
Start an engine. If it’s already started, do nothing.
- Parameters:
wait_for_startup – If True, wait for startup to complete. If False, return immediately after requesting startup.
wait_timeout_seconds – Number of seconds to wait for startup to complete before raising a TimeoutError
verbose – If True, print dots periodically while waiting for engine start. If False, do not print any dots.
- Returns:
The updated engine from Firebolt.
- stop(wait_for_stop: bool = False, wait_timeout_seconds: int = 3600) Engine
Stop an Engine running on Firebolt.
- update(name: str | None = None, engine_type: EngineType | None = None, scale: int | None = None, spec: str | None = None, auto_stop: int | None = None, warmup: WarmupMethod | None = None, description: str | None = None, use_spot: bool | None = None) Engine
Updates the engine and returns an updated version of the engine. If all parameters are set to None, old engine parameter values remain.
- class firebolt.model.engine.EngineSettings(*, preset: str, auto_stop_delay_duration: ConstrainedStrValue, minimum_logging_level: str, is_read_only: bool, warm_up: str)
Bases:
FireboltBaseModel
Engine settings.
See also:
EngineRevisionSpecification
which also contains engine configuration.- auto_stop_delay_duration: str
- classmethod default(engine_type: EngineType = EngineType.GENERAL_PURPOSE, auto_stop_delay_duration: str = '1200s', warm_up: WarmupMethod = WarmupMethod.PRELOAD_INDEXES, minimum_logging_level: str = 'ENGINE_SETTINGS_LOGGING_LEVEL_INFO') EngineSettings
- is_read_only: bool
- minimum_logging_level: str
- preset: str
- warm_up: str
Engine revision
- class firebolt.model.engine_revision.EngineRevision(*, specification: EngineRevisionSpecification, id: EngineRevisionKey | None = None, current_status: str | None = None, create_time: datetime | None = None, create_actor: str | None = None, last_update_time: datetime | None = None, last_update_actor: str | None = None, desired_status: str | None = None, health_status: str | None = None)
Bases:
FireboltBaseModel
A Firebolt engine revision, which contains a specification (instance types, counts).
As engines are updated with new settings, revisions are created.
- create_actor: str | None
- create_time: datetime | None
- current_status: str | None
- desired_status: str | None
- health_status: str | None
- key: EngineRevisionKey | None
- last_update_actor: str | None
- last_update_time: datetime | None
- specification: EngineRevisionSpecification
- class firebolt.model.engine_revision.EngineRevisionSpecification(*, db_compute_instances_type_id: InstanceTypeKey, db_compute_instances_count: PositiveInt, db_compute_instances_use_spot: bool = False, db_version: str = '', proxy_instances_type_id: InstanceTypeKey, proxy_instances_count: PositiveInt = 1, proxy_version: str = '')
Bases:
FireboltBaseModel
An EngineRevision specification.
Determines which instance types and how many of them its engine gets.
See Also:
Settings
, which also contains engine configuration.- db_compute_instances_count: PositiveInt
- db_compute_instances_type_key: InstanceTypeKey
- db_compute_instances_use_spot: bool
- db_version: str
- proxy_instances_count: PositiveInt
- proxy_instances_type_key: InstanceTypeKey
- proxy_version: str
Instance type
- class firebolt.model.instance_type.InstanceType(*, id: InstanceTypeKey, name: str, is_spot_available: bool | None = None, cpu_virtual_cores_count: int | None = None, memory_size_bytes: int | None = None, storage_size_bytes: int | None = None, price_per_hour_cents: float | None = None, create_time: datetime | None = None, last_update_time: datetime | None = None)
Bases:
FireboltBaseModel
- cpu_virtual_cores_count: int | None
- create_time: datetime | None
- is_spot_available: bool | None
- key: InstanceTypeKey
- last_update_time: datetime | None
- memory_size_bytes: int | None
- name: str
- price_per_hour_cents: float | None
- storage_size_bytes: int | None
Provider
- class firebolt.model.provider.Provider(*, id: str, name: str, create_time: datetime | None = None, display_name: str | None = None, last_update_time: datetime | None = None)
Bases:
FireboltBaseModel
- create_time: datetime | None
- display_name: str | None
- last_update_time: datetime | None
- name: str
- provider_id: str
Region
- class firebolt.model.region.Region(*, id: RegionKey, name: str, display_name: str | None = None, create_time: datetime | None = None, last_update_time: datetime | None = None)
Bases:
FireboltBaseModel
- create_time: datetime | None
- display_name: str | None
- key: RegionKey
- last_update_time: datetime | None
- name: str