From 123602cc983e731d63078bb1deb27f81c20af536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Silja=20M=C3=A4rdla?= Date: Thu, 17 Oct 2024 15:33:00 +0300 Subject: [PATCH 1/4] optimise by adding entity_ids to facts --- dbt_project/models/core/fact_order_event.sql | 8 +++++++- dbt_project/models/core/fact_support_case.sql | 7 ++++++- dbt_project/models/core/fact_support_case_event.sql | 11 ++++++++++- .../models/semantic_models/fact_order_event.yml | 3 +++ .../models/semantic_models/fact_support_case.yml | 3 +++ .../semantic_models/fact_support_case_event.yml | 3 +++ 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/dbt_project/models/core/fact_order_event.sql b/dbt_project/models/core/fact_order_event.sql index 0d7e578..c1958aa 100644 --- a/dbt_project/models/core/fact_order_event.sql +++ b/dbt_project/models/core/fact_order_event.sql @@ -1 +1,7 @@ -SELECT * FROM {{ ref("stg_order_event") }} \ No newline at end of file +SELECT + soe.* + , so.customer_id +FROM {{ ref("stg_order_event") }} soe +LEFT JOIN {{ ref("stg_order") }} so + ON soe.order_id = so.order_id + \ No newline at end of file diff --git a/dbt_project/models/core/fact_support_case.sql b/dbt_project/models/core/fact_support_case.sql index f731215..1512d51 100644 --- a/dbt_project/models/core/fact_support_case.sql +++ b/dbt_project/models/core/fact_support_case.sql @@ -1 +1,6 @@ -SELECT * FROM {{ ref("stg_support_case") }} \ No newline at end of file +SELECT + ssc.* + , so.customer_id +FROM {{ ref("stg_support_case") }} ssc +LEFT JOIN {{ ref("stg_order") }} so + ON ssc.order_id = so.order_id \ No newline at end of file diff --git a/dbt_project/models/core/fact_support_case_event.sql b/dbt_project/models/core/fact_support_case_event.sql index 05db383..131303e 100644 --- a/dbt_project/models/core/fact_support_case_event.sql +++ b/dbt_project/models/core/fact_support_case_event.sql @@ -1 +1,10 @@ -SELECT * FROM {{ ref("stg_support_case_event") }} \ No newline at end of file +SELECT + ssce.* + , ssc.order_id + , so.customer_id +FROM {{ ref("stg_support_case_event") }} ssce +LEFT JOIN {{ ref("stg_support_case") }} ssc + ON ssce.support_case_id = ssc.support_case_id +LEFT JOIN {{ ref("stg_order") }} so + ON ssc.order_id = so.order_id + \ No newline at end of file diff --git a/dbt_project/models/semantic_models/fact_order_event.yml b/dbt_project/models/semantic_models/fact_order_event.yml index 5e0df5a..7c12e39 100644 --- a/dbt_project/models/semantic_models/fact_order_event.yml +++ b/dbt_project/models/semantic_models/fact_order_event.yml @@ -14,6 +14,9 @@ semantic_models: - name: order expr: order_id type: foreign + - name: customer + expr: customer_id + type: foreign measures: - name: count_order_events expr: 1 diff --git a/dbt_project/models/semantic_models/fact_support_case.yml b/dbt_project/models/semantic_models/fact_support_case.yml index f80e3cb..9f07874 100644 --- a/dbt_project/models/semantic_models/fact_support_case.yml +++ b/dbt_project/models/semantic_models/fact_support_case.yml @@ -11,6 +11,9 @@ semantic_models: - name: support_case expr: support_case_id type: primary + - name: customer + expr: customer_id + type: foreign measures: - name: count_support_cases expr: 1 diff --git a/dbt_project/models/semantic_models/fact_support_case_event.yml b/dbt_project/models/semantic_models/fact_support_case_event.yml index d89b282..628baeb 100644 --- a/dbt_project/models/semantic_models/fact_support_case_event.yml +++ b/dbt_project/models/semantic_models/fact_support_case_event.yml @@ -14,6 +14,9 @@ semantic_models: - name: support_case expr: support_case_id type: foreign + - name: customer + expr: customer_id + type: foreign measures: - name: count_support_case_events expr: 1 From ba9d24433d376541c3a490c6b10aca2d95fd6a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Silja=20M=C3=A4rdla?= Date: Thu, 17 Oct 2024 15:46:54 +0300 Subject: [PATCH 2/4] optimise for semantics by joining facts --- dbt_project/models/core/fact_order_event.sql | 7 +++---- dbt_project/models/core/fact_support_case.sql | 6 +++--- dbt_project/models/core/fact_support_case_event.sql | 12 ++++++------ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/dbt_project/models/core/fact_order_event.sql b/dbt_project/models/core/fact_order_event.sql index c1958aa..cc1d5a3 100644 --- a/dbt_project/models/core/fact_order_event.sql +++ b/dbt_project/models/core/fact_order_event.sql @@ -1,7 +1,6 @@ SELECT soe.* - , so.customer_id + , fo.customer_id FROM {{ ref("stg_order_event") }} soe -LEFT JOIN {{ ref("stg_order") }} so - ON soe.order_id = so.order_id - \ No newline at end of file +LEFT JOIN {{ ref("fact_order") }} fo + ON soe.order_id = fo.order_id diff --git a/dbt_project/models/core/fact_support_case.sql b/dbt_project/models/core/fact_support_case.sql index 1512d51..b903c1d 100644 --- a/dbt_project/models/core/fact_support_case.sql +++ b/dbt_project/models/core/fact_support_case.sql @@ -1,6 +1,6 @@ SELECT ssc.* - , so.customer_id + , fo.customer_id FROM {{ ref("stg_support_case") }} ssc -LEFT JOIN {{ ref("stg_order") }} so - ON ssc.order_id = so.order_id \ No newline at end of file +LEFT JOIN {{ ref("fact_order") }} fo + ON ssc.order_id = fo.order_id \ No newline at end of file diff --git a/dbt_project/models/core/fact_support_case_event.sql b/dbt_project/models/core/fact_support_case_event.sql index 131303e..02c4958 100644 --- a/dbt_project/models/core/fact_support_case_event.sql +++ b/dbt_project/models/core/fact_support_case_event.sql @@ -1,10 +1,10 @@ SELECT ssce.* - , ssc.order_id - , so.customer_id + , fsc.order_id + , fo.customer_id FROM {{ ref("stg_support_case_event") }} ssce -LEFT JOIN {{ ref("stg_support_case") }} ssc - ON ssce.support_case_id = ssc.support_case_id -LEFT JOIN {{ ref("stg_order") }} so - ON ssc.order_id = so.order_id +LEFT JOIN {{ ref("fact_support_case") }} fsc + ON ssce.support_case_id = fsc.support_case_id +LEFT JOIN {{ ref("fact_order") }} fo + ON fsc.order_id = fo.order_id \ No newline at end of file From e8b6554858908f005dc5a51e37e14cdb496262fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Silja=20M=C3=A4rdla?= Date: Thu, 17 Oct 2024 15:33:00 +0300 Subject: [PATCH 3/4] optimise by adding entity_ids to facts --- orders_cases_events/models/core/fact_order_event.sql | 8 +++++++- orders_cases_events/models/core/fact_support_case.sql | 7 ++++++- .../models/core/fact_support_case_event.sql | 11 ++++++++++- .../models/semantic_models/fact_order_event.yml | 3 +++ .../models/semantic_models/fact_support_case.yml | 3 +++ .../semantic_models/fact_support_case_event.yml | 3 +++ 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/orders_cases_events/models/core/fact_order_event.sql b/orders_cases_events/models/core/fact_order_event.sql index 0d7e578..c1958aa 100644 --- a/orders_cases_events/models/core/fact_order_event.sql +++ b/orders_cases_events/models/core/fact_order_event.sql @@ -1 +1,7 @@ -SELECT * FROM {{ ref("stg_order_event") }} \ No newline at end of file +SELECT + soe.* + , so.customer_id +FROM {{ ref("stg_order_event") }} soe +LEFT JOIN {{ ref("stg_order") }} so + ON soe.order_id = so.order_id + \ No newline at end of file diff --git a/orders_cases_events/models/core/fact_support_case.sql b/orders_cases_events/models/core/fact_support_case.sql index f731215..1512d51 100644 --- a/orders_cases_events/models/core/fact_support_case.sql +++ b/orders_cases_events/models/core/fact_support_case.sql @@ -1 +1,6 @@ -SELECT * FROM {{ ref("stg_support_case") }} \ No newline at end of file +SELECT + ssc.* + , so.customer_id +FROM {{ ref("stg_support_case") }} ssc +LEFT JOIN {{ ref("stg_order") }} so + ON ssc.order_id = so.order_id \ No newline at end of file diff --git a/orders_cases_events/models/core/fact_support_case_event.sql b/orders_cases_events/models/core/fact_support_case_event.sql index 05db383..131303e 100644 --- a/orders_cases_events/models/core/fact_support_case_event.sql +++ b/orders_cases_events/models/core/fact_support_case_event.sql @@ -1 +1,10 @@ -SELECT * FROM {{ ref("stg_support_case_event") }} \ No newline at end of file +SELECT + ssce.* + , ssc.order_id + , so.customer_id +FROM {{ ref("stg_support_case_event") }} ssce +LEFT JOIN {{ ref("stg_support_case") }} ssc + ON ssce.support_case_id = ssc.support_case_id +LEFT JOIN {{ ref("stg_order") }} so + ON ssc.order_id = so.order_id + \ No newline at end of file diff --git a/orders_cases_events/models/semantic_models/fact_order_event.yml b/orders_cases_events/models/semantic_models/fact_order_event.yml index 5e0df5a..7c12e39 100644 --- a/orders_cases_events/models/semantic_models/fact_order_event.yml +++ b/orders_cases_events/models/semantic_models/fact_order_event.yml @@ -14,6 +14,9 @@ semantic_models: - name: order expr: order_id type: foreign + - name: customer + expr: customer_id + type: foreign measures: - name: count_order_events expr: 1 diff --git a/orders_cases_events/models/semantic_models/fact_support_case.yml b/orders_cases_events/models/semantic_models/fact_support_case.yml index f80e3cb..9f07874 100644 --- a/orders_cases_events/models/semantic_models/fact_support_case.yml +++ b/orders_cases_events/models/semantic_models/fact_support_case.yml @@ -11,6 +11,9 @@ semantic_models: - name: support_case expr: support_case_id type: primary + - name: customer + expr: customer_id + type: foreign measures: - name: count_support_cases expr: 1 diff --git a/orders_cases_events/models/semantic_models/fact_support_case_event.yml b/orders_cases_events/models/semantic_models/fact_support_case_event.yml index d89b282..628baeb 100644 --- a/orders_cases_events/models/semantic_models/fact_support_case_event.yml +++ b/orders_cases_events/models/semantic_models/fact_support_case_event.yml @@ -14,6 +14,9 @@ semantic_models: - name: support_case expr: support_case_id type: foreign + - name: customer + expr: customer_id + type: foreign measures: - name: count_support_case_events expr: 1 From 6f5c5971f59bb584b13a7cf2db866108cdaa0676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Silja=20M=C3=A4rdla?= Date: Thu, 17 Oct 2024 15:46:54 +0300 Subject: [PATCH 4/4] optimise for semantics by joining facts --- orders_cases_events/models/core/fact_order_event.sql | 7 +++---- .../models/core/fact_support_case.sql | 6 +++--- .../models/core/fact_support_case_event.sql | 12 ++++++------ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/orders_cases_events/models/core/fact_order_event.sql b/orders_cases_events/models/core/fact_order_event.sql index c1958aa..cc1d5a3 100644 --- a/orders_cases_events/models/core/fact_order_event.sql +++ b/orders_cases_events/models/core/fact_order_event.sql @@ -1,7 +1,6 @@ SELECT soe.* - , so.customer_id + , fo.customer_id FROM {{ ref("stg_order_event") }} soe -LEFT JOIN {{ ref("stg_order") }} so - ON soe.order_id = so.order_id - \ No newline at end of file +LEFT JOIN {{ ref("fact_order") }} fo + ON soe.order_id = fo.order_id diff --git a/orders_cases_events/models/core/fact_support_case.sql b/orders_cases_events/models/core/fact_support_case.sql index 1512d51..b903c1d 100644 --- a/orders_cases_events/models/core/fact_support_case.sql +++ b/orders_cases_events/models/core/fact_support_case.sql @@ -1,6 +1,6 @@ SELECT ssc.* - , so.customer_id + , fo.customer_id FROM {{ ref("stg_support_case") }} ssc -LEFT JOIN {{ ref("stg_order") }} so - ON ssc.order_id = so.order_id \ No newline at end of file +LEFT JOIN {{ ref("fact_order") }} fo + ON ssc.order_id = fo.order_id \ No newline at end of file diff --git a/orders_cases_events/models/core/fact_support_case_event.sql b/orders_cases_events/models/core/fact_support_case_event.sql index 131303e..02c4958 100644 --- a/orders_cases_events/models/core/fact_support_case_event.sql +++ b/orders_cases_events/models/core/fact_support_case_event.sql @@ -1,10 +1,10 @@ SELECT ssce.* - , ssc.order_id - , so.customer_id + , fsc.order_id + , fo.customer_id FROM {{ ref("stg_support_case_event") }} ssce -LEFT JOIN {{ ref("stg_support_case") }} ssc - ON ssce.support_case_id = ssc.support_case_id -LEFT JOIN {{ ref("stg_order") }} so - ON ssc.order_id = so.order_id +LEFT JOIN {{ ref("fact_support_case") }} fsc + ON ssce.support_case_id = fsc.support_case_id +LEFT JOIN {{ ref("fact_order") }} fo + ON fsc.order_id = fo.order_id \ No newline at end of file