Skip to main content

Gems

In Prophecy and dbt, Data Models are SQL statements that build a single table or view. Prophecy visualizes Data Models to illustrate the many steps needed to generate a single table or view. Gems represent the individual steps. A Gem is a unit of functionality ranging from reading, transforming, writing, and various other ad-hoc operations on data.

Each Gem represents a SQL statement, and allows users to construct that statement by configuring a visual interface. Prophecy is smart about whether to construct a CTE or subquery for each Gem; users just configure the visual interface, and Prophecy includes the Gem's SQL statement as part of the Model. Here is a nice overview of all the aspects of the Gem user interface. The table below outlines each Gem category:

Gem
CategoryDescription
ModelModelEach model is a DAG that defines a single table or view. A model can also serve as an input for other Models.
SourceDatasourceGems related to loading data: Seeds, Sources, or Models can be used as datasources.
TransformTransformGems related to the transformation of data.
Join and SplitJoinGems related to splitting or joining tables together.
CustomCustomThe set of Gems built to extend Prophecy's capabilities.