diff --git a/.gitignore b/.gitignore index 0096b6b..83c9969 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ __pycache__/ # VSCODE .vscode/ +./marketing_insights/profiles.yml + diff --git a/marketing_insights/macros/.folder b/marketing_insights/macros/.folder new file mode 100644 index 0000000..e69de29 diff --git a/marketing_insights/macros/net_revenue.sql b/marketing_insights/macros/net_revenue.sql new file mode 100644 index 0000000..0296459 --- /dev/null +++ b/marketing_insights/macros/net_revenue.sql @@ -0,0 +1,3 @@ +{% macro net_revenue(extended_price, discount, tax) %} + ({{ extended_price }} * (1 - {{ discount }}) * (1 + {{ tax }})) +{% endmacro %} diff --git a/marketing_insights/models/intermediate/agg_order_insights.sql b/marketing_insights/models/intermediate/agg_order_insights.sql index dc0d100..8214c43 100644 --- a/marketing_insights/models/intermediate/agg_order_insights.sql +++ b/marketing_insights/models/intermediate/agg_order_insights.sql @@ -4,6 +4,3 @@ SELECT * FROM {{ ref('tmp_agg_order_insights') }} -{% if is_incremental() %} - WHERE ds >= (select max(ds) from {{ this }} ) -{% endif %} \ No newline at end of file diff --git a/marketing_insights/models/intermediate/int_orders_lineitems.sql b/marketing_insights/models/intermediate/int_orders_lineitems.sql new file mode 100644 index 0000000..690a57c --- /dev/null +++ b/marketing_insights/models/intermediate/int_orders_lineitems.sql @@ -0,0 +1,46 @@ +with orders as ( + + select * from {{ ref('stg_orders') }} + +), + +lineitems as ( + + select * from {{ ref('stg_lineitem') }} + +), + +joined as ( + + select + o.O_ORDERKEY, + o.O_CUSTKEY, + o.O_ORDERSTATUS, + o.O_ORDERDATE, + o.O_ORDERPRIORITY, + O_CLERK, + O_SHIPPRIORITY, + O_COMMENT, + L_ORDERKEY, + L_PARTKEY, + L_SUPPKEY, + L_LINENUMBER, + L_QUANTITY, + L_EXTENDEDPRICE, + L_DISCOUNT, + L_TAX, + L_RETURNFLAG, + L_LINESTATUS, + L_SHIPDATE, + L_COMMITDATE, + L_RECEIPTDATE, + L_SHIPINSTRUCT, + L_SHIPMODE, + {{ net_revenue('li.L_EXTENDEDPRICE', 'li.L_DISCOUNT', 'li.L_TAX') }} as net_revenue, + from orders o + inner join lineitems li + on o.O_ORDERKEY = li.L_ORDERKEY + +) + +select * from joined diff --git a/marketing_insights/models/intermediate/tmp_agg_order_insights.sql b/marketing_insights/models/intermediate/tmp_agg_order_insights.sql index c5b0ae3..d1335c8 100644 --- a/marketing_insights/models/intermediate/tmp_agg_order_insights.sql +++ b/marketing_insights/models/intermediate/tmp_agg_order_insights.sql @@ -3,7 +3,7 @@ SELECT r.R_NAME AS Region_Name, n.N_NAME AS Nation_Name, - o._LOADED_AT as ds, + -- o._LOADED_AT as ds, COUNT(1) as Order_Count, ROUND(SUM(O_TOTALPRICE) * 94.5,0) AS TOTAL_PRICE_USD FROM {{ ref('stg_orders') }} o @@ -13,4 +13,4 @@ LEFT JOIN {{ ref('stg_nation') }} n ON c.C_NATIONKEY = n.N_NATIONKEY LEFT JOIN {{ ref('stg_region') }} r ON n.N_REGIONKEY = r.R_REGIONKEY -GROUP BY 1,2, 3 \ No newline at end of file +GROUP BY 1,2 \ No newline at end of file diff --git a/marketing_insights/models/reporting/rpt_order_insights.sql b/marketing_insights/models/reporting/rpt_order_insights.sql index 4972583..450724a 100644 --- a/marketing_insights/models/reporting/rpt_order_insights.sql +++ b/marketing_insights/models/reporting/rpt_order_insights.sql @@ -1,7 +1,7 @@ SELECT Region_Name, Nation_Name, - ds, + -- ds, Order_Count, TOTAL_PRICE_USD FROM {{ ref('agg_order_insights') }} \ No newline at end of file diff --git a/marketing_insights/models/sources.yml b/marketing_insights/models/sources.yml index 9c14f10..aefb419 100644 --- a/marketing_insights/models/sources.yml +++ b/marketing_insights/models/sources.yml @@ -2,8 +2,8 @@ version: 2 sources: - name: SF_SAMPLE_DATA - database: AI_TRAINING_DATA - schema: AGENT_DATA + database: SNOWFLAKE_SAMPLE_DATA + schema: TPCH_SF1 tables: - name: customer - name: lineitem diff --git a/marketing_insights/models/staging/stg_customer.sql b/marketing_insights/models/staging/stg_customer.sql index 5b68564..7b28dab 100644 --- a/marketing_insights/models/staging/stg_customer.sql +++ b/marketing_insights/models/staging/stg_customer.sql @@ -6,6 +6,6 @@ select C_PHONE, C_ACCTBAL, C_MKTSEGMENT, - C_COMMENT, - _LOADED_AT + C_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'customer')}} \ No newline at end of file diff --git a/marketing_insights/models/staging/stg_lineitem.sql b/marketing_insights/models/staging/stg_lineitem.sql index 96ae7df..9d43395 100644 --- a/marketing_insights/models/staging/stg_lineitem.sql +++ b/marketing_insights/models/staging/stg_lineitem.sql @@ -14,6 +14,6 @@ select L_RECEIPTDATE, L_SHIPINSTRUCT, L_SHIPMODE, - L_COMMENT, - _LOADED_AT + L_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'lineitem')}} \ No newline at end of file diff --git a/marketing_insights/models/staging/stg_orders.sql b/marketing_insights/models/staging/stg_orders.sql index e31b7a9..4663a83 100644 --- a/marketing_insights/models/staging/stg_orders.sql +++ b/marketing_insights/models/staging/stg_orders.sql @@ -7,6 +7,6 @@ select O_ORDERPRIORITY, O_CLERK, O_SHIPPRIORITY, - O_COMMENT, - _LOADED_AT + O_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'orders')}} \ No newline at end of file diff --git a/marketing_insights/models/staging/stg_part.sql b/marketing_insights/models/staging/stg_part.sql index 42613a7..cb89c4a 100644 --- a/marketing_insights/models/staging/stg_part.sql +++ b/marketing_insights/models/staging/stg_part.sql @@ -7,6 +7,6 @@ select P_SIZE, P_CONTAINER, P_RETAILPRICE, - P_COMMENT, - _LOADED_AT + P_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'part')}} \ No newline at end of file diff --git a/marketing_insights/models/staging/stg_partsupp.sql b/marketing_insights/models/staging/stg_partsupp.sql index 6555ebc..a55b284 100644 --- a/marketing_insights/models/staging/stg_partsupp.sql +++ b/marketing_insights/models/staging/stg_partsupp.sql @@ -3,6 +3,6 @@ select PS_SUPPKEY, PS_AVAILQTY, PS_SUPPLYCOST, - PS_COMMENT, - _LOADED_AT + PS_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'partsupp')}} \ No newline at end of file diff --git a/marketing_insights/models/staging/stg_supplier.sql b/marketing_insights/models/staging/stg_supplier.sql index 1f3705a..8c5519d 100644 --- a/marketing_insights/models/staging/stg_supplier.sql +++ b/marketing_insights/models/staging/stg_supplier.sql @@ -5,6 +5,6 @@ select S_NATIONKEY, S_PHONE, S_ACCTBAL, - S_COMMENT, - _LOADED_AT + S_COMMENT + -- ,_LOADED_AT from {{ source('SF_SAMPLE_DATA', 'supplier')}} \ No newline at end of file diff --git a/marketing_insights/profiles.yml b/marketing_insights/profiles.yml new file mode 100644 index 0000000..e2f435c --- /dev/null +++ b/marketing_insights/profiles.yml @@ -0,0 +1,10 @@ +marketing_insights: + target: dev + outputs: + dev: + type: snowflake + role: 'ACCOUNTADMIN' + warehouse: 'COMPUTE_WH' + database: 'MARKETING_INSIGHTS' + schema: 'ANALYTICS' + threads: 8