alias
- Models
- Seeds
- Snapshots
- Tests
Specify a custom alias for a model in your dbt_project.yml
file or config block.
For example, if you have a model that calculates sales_total
and want to give it a more user-friendly alias, you can alias it like this:
models:
your_project:
sales_total:
+alias: sales_dashboard
This would return analytics.finance.sales_dashboard
in the database, instead of the default analytics.finance.sales_total
.
Configure a seed's alias in your dbt_project.yml
file or config block.
For example, if you have a seed that represents product_categories
and want to alias it as categories_data
, you would alias like this:
seeds:
your_project:
product_categories:
+alias: categories_data
This would return the name analytics.finance.categories_data
in the database.
In the following second example, the seed at seeds/country_codes.csv
will be built as a tableIn simplest terms, a table is the direct storage of data in rows and columns. Think excel sheet with raw values in each of the cells. named country_mappings
.
seeds:
jaffle_shop:
country_codes:
+alias: country_mappings
Configure a snapshots's alias in your dbt_project.yml
file or config block.
For example, if you have a snapshot that is named your_snapshot
and want to alias it as the_best_snapshot
, you would alias like this:
snapshots:
your_project:
your_snapshot:
+alias: the_best_snapshot
This would build your snapshot to analytics.finance.the_best_snapshot
in the database.
Configure a test's alias in your schema.yml
file or config block.
For example, to add a unique test to the order_id
column and give it an alias unique_order_id_test
to identify this specific test, you would alias like this:
models:
- name: orders
columns:
- name: order_id
tests:
- unique:
alias: unique_order_id_test
When using --store-failures
, this would return the name analytics.finance.orders_order_id_unique_order_id_test
in the database.
Definition
Optionally specify a custom alias for a model, data test, snapshot, or seed.
When dbt creates a relation (tableIn simplest terms, a table is the direct storage of data in rows and columns. Think excel sheet with raw values in each of the cells./viewA view (as opposed to a table) is a defined passthrough SQL query that can be run against a database (or data warehouse).) in a database, it creates it as: {{ database }}.{{ schema }}.{{ identifier }}
, e.g. analytics.finance.payments
The standard behavior of dbt is:
- If a custom alias is not specified, the identifier of the relation is the resource name (i.e. the filename).
- If a custom alias is specified, the identifier of the relation is the
{{ alias }}
value.
Note With an ephemeral model, dbt will always apply the prefix __dbt__cte__
to the CTEA Common Table Expression (CTE) is a temporary result set that can be used in a SQL query. You can use CTEs to break up complex queries into simpler blocks of code that can connect and build on each other. identifier. This means that if an alias is set on an ephemeral model, then its CTE identifier will be __dbt__cte__{{ alias }}
, but if no alias is set then its identifier will be __dbt__cte__{{ filename }}
.
To learn more about changing the way that dbt generates a relation's identifier
, read Using Aliases.