Skip to content

Instantly share code, notes, and snippets.

View vvgsrk's full-sized avatar

Venkata Gowri Sai Rakesh Kumar Varanasi vvgsrk

View GitHub Profile
@vvgsrk
vvgsrk / compare_row_rank_query_result_with_incremental_table.sql
Created April 27, 2022 11:22
Compare row rank query result with incremental table
{#
- This macro generate hash value to compare row rank and incremental data
#}
{%- macro compare_row_rank_query_result_with_incremental_table(history_model, incremental_model) -%}
{%- set history_columns = adapter.get_columns_in_relation(history_model) -%}
{%- set inc_columns = adapter.get_columns_in_relation(incremental_model) -%}
WITH ranked_rows AS
(
SELECT
@vvgsrk
vvgsrk / product_history_ddl_dml.sql
Last active April 27, 2022 02:45
Product History DDL and DML
CREATE TABLE product_history (
product_id NUMBER,
product_name VARCHAR,
price_per_unit VARCHAR,
basic_unit VARCHAR,
is_stock_limited VARCHAR,
is_active_for_sale VARCHAR,
__event_ts TIMESTAMP_NTZ(9),
__load_ts TIMESTAMP_NTZ(9)
);
@vvgsrk
vvgsrk / new_insert_into_product_history.sql
Created April 26, 2022 20:01
Insert a new record to product history table
INSERT INTO product_history (product_id, product_name, price_per_unit, basic_unit, is_stock_limited, is_active_for_sale, __event_ts, __load_ts)
VALUES(1009, 'Paris Coffee', '3 EUR', '1 piece', 'No', 'Yes', DATEADD(hour, -1, DATEADD(Day ,-1, CURRENT_TIMESTAMP())), CURRENT_TIMESTAMP());
@vvgsrk
vvgsrk / merge_into_incremental_table.sql
Created April 26, 2022 19:53
Merge statement for incremental table
merge into dev_edw_dbt_incremental_model_test.dbt_src_product_management.src_product_management_product_latest_incremental as DBT_INTERNAL_DEST
using dev_edw_dbt_incremental_model_test.dbt_src_product_management.src_product_management_product_latest_incremental__dbt_tmp as DBT_INTERNAL_SOURCE
on
DBT_INTERNAL_SOURCE.__uuid = DBT_INTERNAL_DEST.__uuid
when matched then update set
"PRODUCT_ID" = DBT_INTERNAL_SOURCE."PRODUCT_ID","PRODUCT_NAME" = DBT_INTERNAL_SOURCE."PRODUCT_NAME","PRICE_PER_UNIT" = DBT_INTERNAL_SOURCE."PRICE_PER_UNIT","BASIC_UNIT" = DBT_INTERNAL_SOURCE."BASIC_UNIT","IS_STOCK_LIMITED" = DBT_INTERNAL_SOURCE."IS_STOCK_LIMITED","IS_ACTIVE_FOR_SALE" = DBT_INTERNAL_SOURCE."IS_ACTIVE_FOR_SALE","__EVENT_TS" = DBT_INTERNAL_SOURCE."__EVENT_TS","__LOAD_TS" = DBT_INTERNAL_SOURCE."__LOAD_TS","__UUID" = DBT_INTERNAL_SOURCE."__UUID"
when not matched then insert
("PRODUCT_ID", "PRODUCT_NAME", "PRICE_PER_UNIT", "BASIC_UNIT", "IS_STOCK_LIMITED", "IS_
create or replace temporary table dev_edw_dbt_incremental_model_test.dbt_src_product_management.src_product_management_product_latest_incremental__dbt_tmp as
(
WITH ranked_data AS (
SELECT
ROW_NUMBER() over (
PARTITION BY product_id
ORDER BY
__event_ts DESC
) AS row_rank,
*
@vvgsrk
vvgsrk / transient_incremental_table.sql
Last active April 26, 2022 19:32
Incremental table query on snowflake
create or replace transient table dev_edw_dbt_incremental_model_test.dbt_src_product_management.src_product_management_product_latest_incremental as
(
WITH ranked_data AS (
SELECT
ROW_NUMBER() over (
PARTITION BY product_id
ORDER BY
__event_ts DESC
) AS row_rank,
*
@vvgsrk
vvgsrk / product_latest.sql
Created April 26, 2022 19:16
Product latest info
SELECT *
FROM {{ ref('src_product_management_product_latest_incremental') }}
@vvgsrk
vvgsrk / compiled_version_of_src_product_management_product_latest_incremental.sql
Last active April 26, 2022 11:39
Compiled version of src_product_management_product_latest_incremental.sql
WITH ranked_data AS (
SELECT
ROW_NUMBER() over (
PARTITION BY product_id
ORDER BY
__event_ts DESC
) AS row_rank,
*
FROM dev_edw_dbt_incremental_model_test.dbt_src_product_management.src_product_management_product_history
)
@vvgsrk
vvgsrk / src_product_management_product_latest_incremental
Created April 26, 2022 11:21
Product management product latest incremental model in DBT source layer
{{ generate_row_rank_using_event_ts_incremental(ref('src_product_management_product_history'), 'product_id') }}
@vvgsrk
vvgsrk / src_product_management_product_latest.sql
Created April 26, 2022 11:17
Product management product latest model in DBT Source layer
{{ generate_row_rank_using_event_ts(ref('src_product_management_product_history'), 'product_id') }}