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
This commit is contained in:
Oriol Roqué Paniagua 2024-09-04 10:17:12 +00:00
parent 940896824f
commit 556a52e991
12 changed files with 95 additions and 6 deletions

View file

@ -542,6 +542,7 @@ models:
values:
- global
- by_number_of_listings
- by_billing_country
- name: dimension_value
data_type: string
@ -577,6 +578,7 @@ models:
values:
- global
- by_number_of_listings
- by_billing_country
- name: dimension_value
data_type: string
@ -612,6 +614,7 @@ models:
values:
- global
- by_number_of_listings
- by_billing_country
- name: dimension_value
data_type: string
@ -647,6 +650,7 @@ models:
values:
- global
- by_number_of_listings
- by_billing_country
- name: dimension_value
data_type: string
@ -682,6 +686,7 @@ models:
values:
- global
- by_number_of_listings
- by_billing_country
- name: dimension_value
data_type: string
@ -870,6 +875,13 @@ models:
data_type: date
- name: refund_payment_reference
data_type: character varying
- name: id_user_host
data_type: character varying
description: |
UUID of the Host linked to the Verification Request
that has a payment. It's included here to speed up
KPIs execution, even though the host itself has nothing
to do with the guest payments.
- name: id_guest_user
data_type: character varying
- name: id_verification