Models are where your developers spend most of their time within a dbt environment. Models are primarily written as a select statement and saved as a .sql
 file. While the definition is straightforward, the complexity of the 
execution will vary from environment to environment.  Models will be 
written and rewritten as needs evolve and your organization finds new 
ways to maximize efficiency.
SQL is the language most dbt users 
will utilize, but it is not the only one for building models. Starting 
in version 1.3, dbt Core and dbt Cloud support Python models. Python 
models are useful for training or deploying data science models, complex
 transformations, or where a specific Python package meets a need — such as using the dateutil library to parse dates.