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 | Category | Description | |
---|---|---|---|
Model | Each model is a DAG that defines a single table or view. A model can also serve as an input for other Models. | ||
Datasource | Gems related to loading data: Seeds, Sources, or Models can be used as datasources. | ||
Transform | Gems related to the transformation of data. | ||
Join | Gems related to splitting or joining tables together. | ||
Custom | The set of Gems built to extend Prophecy's capabilities. |