dbt run --select "fct_currency_rate" --vars '{"date_from": "2025-07-01", "date_to": "2025-09-01"}'
vars:
date_from: "2025-07-01"
date_to: "2025-09-01"
select
currency_id,
currency_name,
currency_rate_rub,
currency_rate_dt
from {{ ref('stg_1C_ERP_info_register_currency_rates') }}
where currency_rate_dt >= '{{ var("date_from") }}'
and currency_rate_dt < '{{ var("date_to") }}'
pre_hook = [
"{% if is_incremental() %}
if exists (
select 1
from {{ ref('stg_1C_ERP_info_register_currency_rates') }}
where currency_rate_date >= '{{ var('date_from') }}'
and currency_rate_date < '{{ var('date_to') }}')
begin
delete top (100000) from {{this}}
where currency_rate_dt >= '{{ var('date_from') }}'
and currency_rate_dt < '{{ var('date_to') }}'
while(@@ROWCOUNT > 0)
begin
delete top (100000) from {{this}}
where currency_rate_dt >= '{{ var('date_from') }}'
and currency_rate_dt < '{{ var('date_to') }}'
end
end
{% endif %}"
]
{{
config(
alias="fct_currency_rate",
schema="1c_erp",
materialized="incremental",
incremental_strategy="delete+insert",
pre_hook = [
"{% if is_incremental() %}
if exists (
select *
from {{ ref('stg_1C_ERP_info_register_currency_rates') }}
where currency_rate_date >= '{{ var('date_from') }}'
and currency_rate_date < '{{ var('date_to') }}')
begin
delete top (100000) from {{this}}
where currency_rate_dt >= '{{ var('date_from') }}'
and currency_rate_dt < '{{ var('date_to') }}'
while(@@ROWCOUNT > 0)
begin
delete top (100000) from {{this}}
where currency_rate_dt >= '{{ var('date_from') }}'
and currency_rate_dt < '{{ var('date_to') }}'
end
end
{% endif %}"
],
post_hook = [
"{% if not is_incremental() %}
create clustered index ix_cl_{{ this.name }}_currency_rate_dt on {{ this }} (currency_rate_dt);
{% endif %}"
]
)
}}
select
currency_id,
currency_name,
currency_rate_rub,
currency_rate_dt
from {{ ref('stg_1C_ERP_info_register_currency_rates') }}
where currency_rate_dt >= '{{ var('date_from') }}'
and currency_rate_dt < '{{ var('date_to') }}'