Object Group Hierarchy
The Snowflake Object Lifecycle Engine (SOLE) divides all Snowflake objects into four object groups, as follows:
The following image provides an overall view of the Snowflake object hierarchy:
The order of these object groups is critical as the lifecycle actions are performed on each object group in sequential order.
Account-level objects
This object group refers to all account-level Snowflake objects supported by SOLE, including:
This object group must run at the initial stages of a pipeline in parallel with the database object group. The generated object configuration and import statement files are stored in the account_level
directory inside the cache directory, which is accessible to SOLE when executing the APPLY action.
Setting the parameter LIFECYCLE_MANAGE_OBJECT
to ACCOUNT_LEVEL
instructs SOLE to execute the lifecycle actions on this object group.
Database objects
This object group's primary aim is to manage the organization's database objects (or databases).
The generated object definition and import statement files are stored in the database
directory inside the cache directory. Actions executed on this object group should also occur at the initial stages of a pipeline in parallel with the account-level object group actions.
Setting the parameter LIFECYCLE_MANAGE_OBJECT
to DATABASES
instructs SOLE to execute the lifecycle actions on this object group.
Database-level objects
The database-level object group refers to all database-level Snowflake objects supported by SOLE, including:
The generated object definition and import statement files are stored in the database_level
directory inside the cache directory. Actions executed on this object group should occur after performing the APPLY action for both account-level and database objects. This ensures that all referenced account-level objects are already created, and all database-level objects created indirectly (due to a cloned database) are managed effectively.
Setting the parameter LIFECYCLE_MANAGE_OBJECT
to DATABASE_LEVEL
instructs SOLE to execute the lifecycle actions on this object group.
Grant objects
This object group encompasses all Snowflake privileges, grants, and Revokes supported by SOLE and for the following objects:
- Account
- Database
- External Table
- File Format
- Masking Policy
- Resource Monitor
- Role
- Schema
- Stage
- Stream
- Table
- View
- Warehouse
The generated object definition and import statement files are stored in the grants
directory inside the cache directory. Actions executed on this object group should occur after performing the APPLY action for both account-level, database, and database-level objects.
Setting the parameter LIFECYCLE_MANAGE_OBJECT
to GRANT
instructs SOLE to execute the lifecycle actions on this object group.