data-dwh-dbt-project/macros/business_kpis_configuration.sql
Oriol Roqué Paniagua 556a52e991 Merged PR 2689: KPIs by Billing Country
# Description

Adds Billing Country dimension in KPIs, but does not expose them to reporting yet.
Silly thing, based on the macros I built, I cannot make incremental changes unless changing all models. This will need to be adapted, happy to hear your thoughts on how we do it.
Additionally, I have lack of performance of the model `mtd_guest_payments_metrics`. It takes around 5 min to execute, but technically the end-to-end runs in one shoot without breaking.
It's a complex PR because it changes many files, but you will see that:
* It mostly changes the join conditions for the dimensions or the schema tests,
* I tried to be very careful and add things step-by-step in the commits.

Goal is NOT to complete the PR yet until we see how we can improve performance. I can say though that data end-to-end looks ok to me, but would benefit from checking with production data for the new dimension

Update 30th Aug
* Added a new commit that includes `id_user_host` in `int_core__verification_payments`. Happy to discuss if it makes sense or not. But it changes the execution from ~600 sec to ~6 sec because it avoids a massive repeated join with `verification_requests`.

# Checklist

- [X] The edited models and dependants run properly with production data.
- [X] The edited models are sufficiently documented.
- [X] The edited models contain PK tests, and I've ran and passed them.
- [X] I have checked for DRY opportunities with other models and docs.
- [ ] I've picked the right materialization for the affected models. **To check because of performance issues**

# Other

- [ ] Check if a full-refresh is required after this PR is merged.

Related work items: #19082
2024-09-04 10:17:12 +00:00

35 lines
No EOL
1.3 KiB
SQL

/*
Macro: get_kpi_dimensions
Provides a general configuration for the Dimensions available for the KPIs.
Please note that strings should be encoded with " ' your_value_here ' ",
while fields from tables should be specified like " your_field_here "
*/
{% macro get_kpi_dimensions() %}
{% set dimensions = [
{"dimension": "'global'", "dimension_value": "'global'"},
{"dimension": "'by_number_of_listings'", "dimension_value": "active_accommodations_per_deal_segmentation"},
{"dimension": "'by_billing_country'", "dimension_value": "billing_country_iso_3"}
] %}
{{ return(dimensions) }}
{% endmacro %}
/*
Macro: get_kpi_dimensions_for_production
Provides the list of Dimensions that will be available in production for the KPIs.
This configuration ensures that working with new dimensions won't affect the display
until all development work has been done.
Additionally, it provides a proper display name for reporting purposes.
*/
{% macro get_kpi_dimensions_for_production() %}
{% set dimensions = [
{"dimension": "'global'", "dimension_display": "'Global'"},
{"dimension": "'by_number_of_listings'", "dimension_display": "'By # of Listings Booked in 12 Months'"}
] %}
{{ return(dimensions) }}
{% endmacro %}