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 / refresh_secondary_database.sql
Created June 30, 2022 18:57
Create a separate secondary database for refresh
-- A separate new database
CREATE DATABASE refresh_secondary_database;
-- Create a new schema
CREATE SCHEMA refresh_secondary_database.amadeus_dynamic_pricing;
-- Task that refreshes the secondary database on a schedule
CREATE OR REPLACE TASK refresh_secondary_database.amadeus_dynamic_pricing.dynamic_pricing_data_refresh_task
WAREHOUSE = WH01_XS
SCHEDULE = 'USING CRON 0 3 * * * UTC'
@vvgsrk
vvgsrk / create_secondary_database.sql
Created June 30, 2022 13:43
Create secondary database
-- Create a replica of the primary database in the traget account
CREATE DATABASE AMADEUS_DYNAMIC_PRICING
AS REPLICA OF ORGANIZATION_CODE.ORGANIZATION_NAME.AMADEUS_DYNAMIC_PRICING;
-- Refresh a secondary database
ALTER DATABASE AMADEUS_DYNAMIC_PRICING REFRESH;
@vvgsrk
vvgsrk / enable_replication.sql
Created June 30, 2022 12:58
Enable replication
-- Modify an existing permanent database to serve as a primary database using following statement
ALTER DATABASE amadeus_dynamic_pricing ENABLE REPLICATION TO ACCOUNTS ORGANIZATION_CODE.ORGANIZATION_NAME IGNORE EDITION CHECK;
@vvgsrk
vvgsrk / create_database_objects.sql
Last active June 30, 2022 12:30
Create database objects
-- A database, schema and table are required before you can load data
CREATE DATABASE amadeus_dynamic_pricing;
CREATE SCHEMA amadeus_dynamic_pricing.dynamic_pricing;
-- Create a table in newly created permanent database as same as the table from the share
CREATE TABLE amadeus_dynamic_pricing.dynamic_pricing.dp_logs
AS
SELECT * FROM dynamic_pricing_data_share_by_amadeus.dynamic_pricing.dp_logs WHERE 1=2;
@vvgsrk
vvgsrk / test_validate_row_count_for_lattest_and_incremental_src_product_management_product_history_src_product_management_product_latest_incremental.sql
Created April 29, 2022 06:02
Test validate_row_count_for_lattest_and_incremental src_product_management_product_history src_product_management_product_latest_incremental
select
count(*) as failures,
count(*) != 0 as should_warn,
count(*) != 0 as should_error
from (
WITH snap AS
(
SELECT
ROW_NUMBER() OVER (
PARTITION BY "PRODUCT_ID"
@vvgsrk
vvgsrk / src_product_management_properties.yml
Created April 28, 2022 12:49
Source Product Management Properties YML Configuration
version: 2
models:
- name: src_product_management_product_history
tests:
- validate_row_rank_and_incremental_query_result:
incremental_model: src_product_management_product_latest_incremental
tags: ["nightly"]
- validate_row_count_for_lattest_and_incremental:
incremental_model: src_product_management_product_latest_incremental
@vvgsrk
vvgsrk / validate_row_count_for_lattest_and_incremental.sql
Created April 28, 2022 12:46
Validate row count for lattest based on history and incremental models
{% test validate_row_count_for_lattest_and_incremental(model, incremental_model) %}
{{ compare_lattest_and_incremental_row_count(model, ref(incremental_model)) }}
WHERE diff_count > 0
{% endtest %}
@vvgsrk
vvgsrk / compare_lattest_and_incremental_row_count.sql
Created April 28, 2022 12:41
Compare lattest based on history and incremental data row count
{#
- This macro generate row counts for lattest data based on history data and incremental data
- Compares both the row counts and outputs the diffrence
#}
{%- macro compare_lattest_and_incremental_row_count(history_model, incremental_model) -%}
{%- set columns = adapter.get_columns_in_relation(history_model) -%}
WITH snap AS
(
SELECT
@vvgsrk
vvgsrk / test_validate_row_rank_and_incremental_query_result_src_product_management_product_history_src_product_management_product_latest_incremental.sql
Created April 27, 2022 12:45
Test validate_row_rank_and_incremental_query_result src_product_management_product_history src_product_management_product_latest_incremental
select
count(*) as failures,
count(*) != 0 as should_warn,
count(*) != 0 as should_error
from (
WITH ranked_rows AS
(
SELECT
ROW_NUMBER() OVER (
PARTITION BY "PRODUCT_ID"
@vvgsrk
vvgsrk / validate_row_rank_and_incremental_query_result.sql
Created April 27, 2022 12:32
Validate row rank and incremental query result
{% test validate_row_rank_and_incremental_query_result(model, incremental_model) %}
{{ compare_row_rank_query_result_with_incremental_table(model, ref(incremental_model)) }}
WHERE result > 0
{% endtest %}