This commit is contained in:
Grzegorz Michalski
2026-03-02 09:47:35 +01:00
commit 2c225d68ac
715 changed files with 130067 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
version: 2
sources:
- name: dw_rar_sequences
schema: dw_rar
tables:
- name: AK_NH_ASSET
- name: ct_rar_sequences
schema: ct_rar
tables:
- name: AK_ERR_LOG

View File

@@ -0,0 +1,21 @@
{{
config(
materialized="ephemeral",
tags=["m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET"],
)
}}
-- In IPC this lookup has policy "Use First Value"
select code_type_no, code_type_id
from
(
select
code_type_no,
code_type_id,
row_number() over (
partition by code_type_id order by code_type_no
) as rn
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }}
where
a_valid_to = to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
)
where rn = 1

View File

@@ -0,0 +1,12 @@
{{
config(
materialized="ephemeral",
tags=["m_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT"],
)
}}
select act.code_type_id, acm.code_value, acm.asset_fk, acm.a_valid_from, acm.a_valid_to
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }} act, {{ ref("m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET") }} acm
where act.code_type_no = acm.code_type_no_id
and acm.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')
and act.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')

View File

@@ -0,0 +1,42 @@
{{
config(
materialized="table",
tags=["m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
alias="MU_ASSET_CODE_MAP_SQ",
schema="DW_RAR",
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
)
}}
select
sf_c2d_ea.isin,
sf_c2d_ea.moody_programme_id as moody_code_value,
sf_c2d_ea.a_workflow_history_key
from
(
select
isin,
a_workflow_history_key,
case
when
moody_programme_id
in ('NOT_COMPLIANT', 'NOT_RATED', 'NOT_AVAILABLE')
then null
when action_type = 'U'
then moody_programme_id
else null
end as moody_programme_id
from
(
select
trim(sf_c2d_ea_eligible_asset.isin) as isin,
sf_c2d_ea_eligible_asset.a_workflow_history_key,
trim(
sf_c2d_ea_eligible_asset.moody_programme_id
) as moody_programme_id,
sf_c2d_ea_eligible_asset.action_type
from
{{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET") }} sf_c2d_ea_eligible_asset
where action_type = 'U'
)
) sf_c2d_ea

View File

@@ -0,0 +1,168 @@
-- This model creates table DW_RAR.NH_ASSET_TEST_SQ.
-- The model is a part of the mapping m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD.
-- Pre-/post-hook log data into the control tables.
{{ config(materialized='table',
alias = 'NH_ASSET_TEST_SQ',
tags = ['m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD_pre_snapshot', 'A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
schema = 'DW_RAR') }}
-- Select the required columns for sourse qualifier from DW_TMP.TE_ASSET.
SELECT {{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY,
DW_TMP_TE_ASSET.ASSET_KEY,
DW_TMP_TE_ASSET.IS_SECURED,
DW_TMP_TE_ASSET.CLASSIFICATION,
DW_TMP_TE_ASSET.IS_EXTENDIBLE,
DW_TMP_TE_ASSET.EA_IS_EMERGENCY_COLLATERAL,
DW_TMP_TE_ASSET.TMS_GROUP_PATH,
DW_TMP_TE_ASSET.TMS_GROUP_PATH_NAME,
DW_TMP_TE_ASSET.ISSUE_DATE,
DW_TMP_TE_ASSET.MATURITY_LAST_REDEMPTION_DATE,
DW_TMP_TE_ASSET.TMS_ACTIVE_SINCE,
DW_TMP_TE_ASSET.TMS_ACTIVE_UNTIL,
DW_TMP_TE_ASSET.CURRENCY,
DW_TMP_TE_ASSET.CURRENCY_2,
DW_TMP_TE_ASSET.INTEREST_RATE,
DW_TMP_TE_ASSET.TMS_TYPE,
DW_TMP_TE_ASSET.PERIOD_ID,
DW_TMP_TE_ASSET.PRICING_TYPE,
DW_TMP_TE_ASSET.ASSET_BBG_NAME,
DW_TMP_TE_ASSET.BBG_BM_IDX,
DW_TMP_TE_ASSET.BBG_FLT_BM_MULTIPLIER,
DW_TMP_TE_ASSET.BBG_COLLAT_TYPE,
DW_TMP_TE_ASSET.BBG_MARKET_ISSUE,
DW_TMP_TE_ASSET.BBG_MATURITY_TYPE,
DW_TMP_TE_ASSET.COUPON_TYPE,
DW_TMP_TE_ASSET.POOL_FACTOR,
DW_TMP_TE_ASSET.BBG_FLT_SPREAD,
DW_TMP_TE_ASSET.CSDB_REDEMPTION_TYPE,
DW_TMP_TE_ASSET.CSDB_REDEMPTION_FREQ,
DW_TMP_TE_ASSET.CSDB_REDEMPTION_PRICE,
DW_TMP_TE_ASSET.CSDB_ISSUE_PRICE,
DW_TMP_TE_ASSET.CSDB_STATUS,
DW_TMP_TE_ASSET.UOC_INTEREST_PAYMENT_TYPE,
DW_TMP_TE_ASSET.EA_CSD,
DW_TMP_TE_ASSET.C2D_ASSET_TYPE,
DW_TMP_TE_ASSET.EA_COUPON_TYPE,
DW_TMP_TE_ASSET.EA_REF_MARKET,
DW_TMP_TE_ASSET.EA_CRD_OR_EQUIV,
DW_TMP_TE_ASSET.EA_IS_ABS_LLD,
DW_TMP_TE_ASSET.EA_IS_ABS_LLD_DATE,
DW_TMP_TE_ASSET.EA_ABS_SURVEIL_DATE,
DW_TMP_TE_ASSET.EA_ABS_TYPE,
DW_TMP_TE_ASSET.EA_CEPH_IS_INFLAT,
DW_TMP_TE_ASSET.EA_CEPH_IS_CALL_PUT,
DW_TMP_TE_ASSET.EA_CEPH_IS_SINKABLE,
DW_TMP_TE_ASSET.EA_CEPH_COMMENT,
DW_TMP_TE_ASSET.EA_IS_OUTRIGHT_PURCHASE,
DW_TMP_TE_ASSET.EA_LIQ_CLASS,
DW_TMP_TE_ASSET.EA_DENOMINATION,
DW_TMP_TE_ASSET.EA_NAME,
DW_TMP_TE_ASSET.EA_VALIDATION_STATUS,
DW_TMP_TE_ASSET.EA_NCB_COMMENT,
DW_TMP_TE_ASSET.EA_ISSUANCE_DATE,
DW_TMP_TE_ASSET.C2D_MATURITY_DATE,
DW_TMP_TE_ASSET.MATURITY_DATE,
DW_TMP_TE_ASSET.UOC_BUCKET_SIZE,
DW_TMP_TE_ASSET.IS_ELIGIBLE_VIA_GUARANTOR,
DW_TMP_TE_ASSET.UOC_RESIDUAL_MATURITY,
DW_TMP_TE_ASSET.EA_SENDER_CODE,
DW_TMP_TE_ASSET.EA_NON_OWN_USE_HAIRCUT,
DW_TMP_TE_ASSET.ACCOUNTING_TYPE,
DW_TMP_TE_ASSET.GROUPING_VALUE,
DW_TMP_TE_ASSET.SPREAD_TYPE,
DW_TMP_TE_ASSET.TMS_ELIGIBILITY_TYPE,
DW_TMP_TE_ASSET.REF_AMOUNT_BUCKET,
DW_TMP_TE_ASSET.ISSUANCE_TYPE,
DW_TMP_TE_ASSET.BRANCH6_ID,
DW_TMP_TE_ASSET.BRANCH7_ID,
DW_TMP_TE_ASSET.BRANCH8_ID,
DW_TMP_TE_ASSET.BRANCH9_ID,
TRIM(DW_TMP_TE_ASSET.TMS_NAME) AS TMS_NAME,
DW_TMP_TE_ASSET.CSDB_CSD,
DW_TMP_TE_ASSET.CSDB_SECURITISATION_TYPE,
DW_TMP_TE_ASSET.CFI_CLASSIFICATION,
DW_TMP_TE_ASSET.INSTRUMENT_ESA_95_CLASS,
DW_TMP_TE_ASSET.INSTR_ESA_95_CLASS_VAL_TYPE,
DW_TMP_TE_ASSET.INSTRUMENT_ESA_2010_CLASS,
DW_TMP_TE_ASSET.REDEMPTION_CURRENCY,
DW_TMP_TE_ASSET.CSDB_SUPPL_INFO,
DW_TMP_TE_ASSET.UOC_RESET_PERIOD_MORE_ONE_YEAR,
DW_TMP_TE_ASSET.EA_EXTENSION_OPTION_EXERCISED,
DW_TMP_TE_ASSET.EA_EFFECTIVE_MATURITY_DATE,
DW_TMP_TE_ASSET.EA_COVERED_BOND_OU,
DW_TMP_TE_ASSET.EA_OWN_USE_HAIRCUT,
DW_TMP_TE_ASSET.EA_CQS,
DW_TMP_TE_ASSET.EA_EXTENDIBLE,
DW_TMP_TE_ASSET.EA_EXTENSION_TRIGGER,
DW_TMP_TE_ASSET.EA_EXTENDED_MATURITY_DATE,
DW_TMP_TE_ASSET.EA_ABS_PUBL_SURVEIL_DATE2,
DW_TMP_TE_ASSET.CAP,
DW_TMP_TE_ASSET.REFERENCERATE,
DW_TMP_TE_ASSET.REFERENCERATECOMMENT,
DW_TMP_TE_ASSET.BBG_TICKER,
DW_TMP_TE_ASSET.BBG_STRIP_TYPE,
DW_TMP_TE_ASSET.BBG_MTY_YEARS_TDY,
DW_TMP_TE_ASSET.BBG_EXCHANGE_CODE,
DW_TMP_TE_ASSET.BBG_PRVT_PLACE,
DW_TMP_TE_ASSET.BBG_PUTABLE,
DW_TMP_TE_ASSET.BBG_ISSUER_INDUSTRY,
DW_TMP_TE_ASSET.BBG_INFLATION_LINKED_INDICATOR,
DW_TMP_TE_ASSET.CSDB_IS_PRIVATE_PLACEMENT,
DW_TMP_TE_ASSET.CLASSIFICATION_C2D,
DW_TMP_TE_ASSET.CLASSIFICATION_TMS,
DW_TMP_TE_ASSET.ISSUE_DATE_TMS,
DW_TMP_TE_ASSET.ISSUE_DATE_CSDB,
DW_TMP_TE_ASSET.CURRENCY_TMS,
DW_TMP_TE_ASSET.CURRENCY_MDP,
DW_TMP_TE_ASSET.CURRENCY_CSDB,
DW_TMP_TE_ASSET.COUPON_TYPE_MDP,
DW_TMP_TE_ASSET.COUPON_TYPE_CSDB,
DW_TMP_TE_ASSET.POOL_FACTOR_CEPH,
DW_TMP_TE_ASSET.POOL_FACTOR_CSDB,
DW_TMP_TE_ASSET.MATURITY_DATE_TMS,
DW_TMP_TE_ASSET.MATURITY_DATE_MDP,
DW_TMP_TE_ASSET.CP_PROGRAMME,
DW_TMP_TE_ASSET.C2D_ELA_ABS_TYPE,
DW_TMP_TE_ASSET.C2D_EA_ABS_TYPE,
DW_TMP_TE_ASSET.C2D_EA_MATURITY_DATE,
DW_TMP_TE_ASSET.C2D_UC_MATURITY_DATE,
DW_TMP_TE_ASSET.C2D_UC_ASSET_TYPE,
DW_TMP_TE_ASSET.C2D_EA_ASSET_TYPE,
DW_TMP_TE_ASSET.C2D_ELA_ASSET_TYPE,
DW_TMP_TE_ASSET.C2D_UC_DENOMINATION,
DW_TMP_TE_ASSET.C2D_EA_DENOMINATION,
DW_TMP_TE_ASSET.C2D_UC_OA_ID,
DW_TMP_TE_ASSET.C2D_UC_CONTRACT_ID,
DW_TMP_TE_ASSET.C2D_UC_INSTRMNT_ID,
DW_TMP_TE_ASSET.MDP_CMA_DEFAULTED_DATE,
DW_TMP_TE_ASSET.MDP_CMA_DEFAULTED_STANDARD,
DW_TMP_TE_ASSET.MDP_CMA_QUOTE_CONVENTION,
DW_TMP_TE_ASSET.MDP_CMA_RESTRUCTURING_TYPE,
DW_TMP_TE_ASSET.MDP_CMA_MATURITY_DATE,
DW_TMP_TE_ASSET.MDP_CMA_TENOR,
DW_TMP_TE_ASSET.MDP_CMA_SENIORITY,
DW_TMP_TE_ASSET.MDP_CMA_INSTRUMENT_TYPE,
DW_TMP_TE_ASSET.MDP_CMA_CURRENCY,
DW_TMP_TE_ASSET.C2D_EA_REFERENCE_RATE,
DW_TMP_TE_ASSET.C2D_EA_GREEN_SUSTAINABLE,
DW_TMP_TE_ASSET.TMS_FUTURES_MATURITY_BUCKET,
DW_TMP_TE_ASSET.BBG_FLOATER,
DW_TMP_TE_ASSET.BBG_INDUSTRY_GROUP,
DW_TMP_TE_ASSET.CSDB_ESG1,
DW_TMP_TE_ASSET.CSDB_ESG2,
DW_TMP_TE_ASSET.CSDB_ESG3,
DW_TMP_TE_ASSET.REU_SECURITY_DESCRIPTION,
DW_TMP_TE_ASSET.REU_ASSET_CATEGORY,
DW_TMP_TE_ASSET.REU_ASSET_CATEGORY_DESCRIPTION,
DW_TMP_TE_ASSET.REU_ASSET_TYPE,
DW_TMP_TE_ASSET.REU_ASSET_TYPE_DESCRIPTION,
DW_TMP_TE_ASSET.REU_ASSET_SUBTYPE,
DW_TMP_TE_ASSET.REU_ASSET_SUBTYPE_DESCRIPTION,
DW_TMP_TE_ASSET.REU_ISO_CURRENCY,
DW_TMP_TE_ASSET.BBG_DES_NOTES,
DW_TMP_TE_ASSET.BBG_INDUSTRY_SUBGROUP,
DW_TMP_TE_ASSET.BBG_SECURITY_TYP,
DW_TMP_TE_ASSET.BBG_SECURITY_TYP2
FROM {{ source("dw_tmp", "TE_ASSET") }} DW_TMP_TE_ASSET

View File

@@ -0,0 +1,112 @@
-- This model is materialised as a table DW_TMP.TE_ASSET_test_SQ and is a part of the mapping m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD.
{{
config(
materialized="table",
tags=["m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD",'A_TASK_HISTORY_TARGET_insert'],
alias="TE_ASSET_test_SQ",
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
schema="DW_TMP",
)
}}
-- Select data from the source table: sf_c2d.EA_ELIGIBLE_ASSET.
-- Join with SF_SDW.EXCHANGE_RATE.
-- Join with DW_REF_MAIN.CURRENCY.
-- Perform calculations.
-- Filter data: keep rows where action type is 'U'.
WITH INIT_TABLE AS (
SELECT 'ISIN' AS ISIN_CODE_TYPE,
RTRIM(LTRIM(ISIN)) AS ISIN_CODE_VALUE,
A_WORKFLOW_HISTORY_KEY,
EMERGENCY_COLLATERAL,
COUNTRY_OF_LOCATION,
ASSET_TYPE,
COUPON_DEFINITION,
REFERENCE_MARKET,
CRD_OR_EQUIVALENT,
LOAN_LEVEL_DATA,
LOAN_LEVEL_DATA_LAST_DATE,
ABS_PUBL_LAST_SURVEILLANCE,
ABS_TYPE,
CEPH_INFLATION_LINKED,
CEPH_CALLABLE_PUTABLE,
CEPH_SINKABLE,
CEPH_COMMENT,
OUTRIGHT_PURCHASE,
LIQUIDITY_CLASS,
DENOMINATION,
ASSET_NAME,
VALIDATION_STATUS,
NCB_COMMENT,
ISSUANCE_DATE,
MATURITY_DATE,
CASE
WHEN substr(ltrim(rtrim(SENDER_CODE)),1,2) = 'ID' THEN substr(ltrim(rtrim(SENDER_CODE)),3)
ELSE ltrim(rtrim(SENDER_CODE))
END AS SENDER_CODE,
ABS_DATE_LAST_COUPON,
COUPON_RATE,
COUPON_FREQUENCY,
CASE
WHEN EUR_LEGACY IS NULL THEN 0
ELSE 1
END AS v_EUR_LEGACY,
NOMINAL_VAL_OUTSTANDING * 1000000 AS EA_NOMINAL_VALUE_OUTSTAND_LC,
ABS_PUBL_LAST_SURVEILLANCE2,
COVERED_BOND_OWN_USE,
CREDIT_QUALITY_RANK,
EXTENDED_MATURITY_DATE,
EXTENDIBLE,
EXTENSION_OPTION_EXERCISED,
EXTENSION_TRIGGER,
NON_OWN_USE_HAIRCUT* 1000000 AS NON_OWN_USE_HAIRCUT,
OWN_USE_HAIRCUT,
OWN_USE_HAIRCUT * 1000000 AS v_OWN_USE_HAIRCUT,
CASE
WHEN EXTENDED_MATURITY_DATE IS NULL THEN MATURITY_DATE
ELSE
CASE
WHEN EXTENSION_OPTION_EXERCISED IS NULL THEN MATURITY_DATE
ELSE EXTENDED_MATURITY_DATE
END
END AS EA_EFFECTIVE_MATURITY_DATE,
ACTUAL_OUTSTANDING_VALUE,
ACTUAL_OUTSTANDING_VALUE*1000000 AS EA_ACTUAL_VALUE_OUTSTAND_LC,
STRIPS,
REFERENCE_RATE,
GREEN_SUSTAINABLE,
SF_SDW_EXCHANGE_RATE.VALUE AS SF_SDW_EXCHANGE_RATE_VALUE
FROM {{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} EA
LEFT JOIN SF_SDW.EXCHANGE_RATE SF_SDW_EXCHANGE_RATE ON SF_SDW_EXCHANGE_RATE.CURRENCY = EA.DENOMINATION
LEFT JOIN (SELECT CURRENCY_CODE, EUR_LEGACY
FROM DW_REF_MAIN.CURRENCY
WHERE A_VALID_TO = TO_DATE('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS') AND EUR_LEGACY = 1 ) CURRENCY ON EA.DENOMINATION = CURRENCY.CURRENCY_CODE
WHERE EA.ACTION_TYPE = 'U'),
-- Select all data from previous subquery.
-- Add the v_EXCHANGE_RATE_VALUE column: value is based on a condition and uses results from previous calculations.
TEMP_TABLE AS (
SELECT INIT_TABLE.*,
CASE
WHEN DENOMINATION<>'EUR' AND v_EUR_LEGACY IS NULL THEN SF_SDW_EXCHANGE_RATE_VALUE
ELSE NULL
END AS v_EXCHANGE_RATE_VALUE
FROM INIT_TABLE
)
--Select all data from previous subquery.
-- Add EA_NOMINAL_VALUE_OUTSTAND_EUR and EA_ACTUAL_VALUE_OUTSTAND_EUR columns: value is based on the previous calculations.
SELECT TEMP_TABLE.*,
CASE
WHEN DENOMINATION='EUR' OR v_EUR_LEGACY=1 THEN EA_NOMINAL_VALUE_OUTSTAND_LC
WHEN v_EXCHANGE_RATE_VALUE IS NULL THEN EA_NOMINAL_VALUE_OUTSTAND_LC
ELSE ROUND(EA_NOMINAL_VALUE_OUTSTAND_LC/v_EXCHANGE_RATE_VALUE,2)
END AS EA_NOMINAL_VALUE_OUTSTAND_EUR,
CASE
WHEN DENOMINATION='EUR' OR v_EUR_LEGACY=1 THEN EA_ACTUAL_VALUE_OUTSTAND_LC
WHEN v_EXCHANGE_RATE_VALUE IS NULL THEN EA_ACTUAL_VALUE_OUTSTAND_LC
ELSE ROUND(EA_ACTUAL_VALUE_OUTSTAND_LC/v_EXCHANGE_RATE_VALUE,2)
END AS EA_ACTUAL_VALUE_OUTSTAND_EUR
FROM TEMP_TABLE

View File

@@ -0,0 +1,17 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias = 'EA_ADDITIONAL_GUARANTOR_TEST_SQ'
) }}
SELECT
A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI,
GUAR_ASSESSMENT
FROM {{ source("ou_c2d", "EA_ADDITIONAL_GUARANTOR") }}

View File

@@ -0,0 +1,220 @@
-- This model is materialised as a table sf_c2d.EA_ELIGIBLE_ASSET_TEST_SQ and is a part of the mapping m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET.
{{ config(materialized='table',
alias = 'EA_ELIGIBLE_ASSET_TEST_SQ',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET', 'A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
schema = 'sf_c2d') }}
-- Select unique rows from the source table: ou_c2d.EA_ELIGIBLE_ASSET table where ISIN is not null.
-- Join with OU_C2D.EA_HEADER to get data on the creation time.
-- Update action type information based on a condition.
SELECT
A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_HEADER_FK,
ISIN,
( CASE when ORN like '%EMPTY%' then NULL
else ORN
END)AS ORN,
ASSET_NAME,
DENOMINATION,
COUNTRY_OF_LOCATION,
ASSET_TYPE,
PRICE_QUOTATION,
COUPON_DEFINITION,
COUPON_RATE,
COUPON_FREQUENCY,
ISSUANCE_DATE,
MATURITY_DATE,
NOMINAL_VAL_OUTSTANDING,
ACTUAL_OUTSTANDING_VALUE,
STRIPS,
ISS_GROUP,
ISS_LT_RATING_ID,
ISS_LT_RATING_DATE,
ISS_ST_RATING_ID,
ISS_ST_RATING_DATE,
ISS_CODE_TYPE,
ISS_CODE_VALUE,
ISS_NAME,
ISS_OTHER_NAME,
ISS_RESIDENCE,
ISS_PSE,
ISS_LEI,
GUAR_GROUP,
GUAR_LT_RATING_ID,
GUAR_LT_RATING_DATE,
GUAR_CODE_TYPE,
GUAR_CODE_VALUE,
GUAR_NAME,
GUAR_RESIDENCE,
GUAR_PSE,
GUAR_LEI,
GUAR_ASSESSMENT,
NCB_COMMENT,
REFERENCE_MARKET,
LT_RATING_ID,
LT_RATING_DATE,
LT_RATING_PRG_NAME,
LT_RATING_2_ID,
LT_RATING_2_DATE,
LT_RATING_2_PRG_NAME,
ST_RATING_ID,
ST_RATING_DATE,
ST_RATING_PRG_NAME,
ST_RATING_2_ID,
ST_RATING_2_DATE,
ST_RATING_2_PRG_NAME,
ICAS_RATING,
LOAN_LEVEL_DATA,
LOAN_LEVEL_DATA_LAST_DATE,
ABS_PUBL_LAST_SURVEILLANCE,
ABS_PUBL_LAST_SURVEILLANCE2,
ABS_TYPE,
ABS_DATE_LAST_COUPON,
OUTRIGHT_PURCHASE,
CEPH_INFLATION_LINKED,
CEPH_CALLABLE_PUTABLE,
CEPH_SINKABLE,
CEPH_COMMENT,
EXTENDIBLE,
EXTENSION_TRIGGER,
EXTENDED_MATURITY_DATE,
EXTENSION_OPTION_EXERCISED,
EFFECTIVE_MATURITY_DATE,
CRD_OR_EQUIVALENT,
COVERED_BOND_OWN_USE,
DATE_TIME_OF_ENTRY,
SENDER_CODE,
STATUS,
UPDATED_BY,
DATE_TIME_OF_STATUS,
VALIDATION_STATUS,
LIQUIDITY_CLASS,
CREDIT_QUALITY_RANK,
NON_OWN_USE_HAIRCUT,
OWN_USE_HAIRCUT,
ECB_COMMENT,
WAL,
WAL_REF_DATE,
( CASE WHEN (ACTION_TYPE in ('U','R') OR ACTION_TYPE IS NULL) AND (MATURITY_DATE<trunc(sysdate)) THEN 'M'
ELSE ACTION_TYPE END )as ACTION_TYPE,
ACTION_DATE,
DBRS_PROGRAMME_ID,
FITCH_PROGRAMME_ID,
MOODY_PROGRAMME_ID,
SNP_PROGRAMME_ID,
trunc(CREATION_TIME) as o_SNAPSHOT_DATE,
REFERENCE_RATE,
GREEN_SUSTAINABLE,
TEST_INDICATOR,
MPEC_RIAD_CROSSCHECK,
SCOPE_PROGRAMME_ID,
CREREF_PROGRAMME_ID
FROM (SELECT
OU_C2D_EA_ELIGIBLE_ASSET.A_KEY,
OU_C2D_EA_ELIGIBLE_ASSET.A_ETL_LOAD_SET_FK,
OU_C2D_EA_ELIGIBLE_ASSET.A_EA_HEADER_FK,
OU_C2D_EA_ELIGIBLE_ASSET.ISIN,
OU_C2D_EA_ELIGIBLE_ASSET.ORN,
OU_C2D_EA_ELIGIBLE_ASSET.ASSET_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.DENOMINATION,
OU_C2D_EA_ELIGIBLE_ASSET.COUNTRY_OF_LOCATION,
OU_C2D_EA_ELIGIBLE_ASSET.ASSET_TYPE,
OU_C2D_EA_ELIGIBLE_ASSET.PRICE_QUOTATION,
OU_C2D_EA_ELIGIBLE_ASSET.COUPON_DEFINITION,
OU_C2D_EA_ELIGIBLE_ASSET.COUPON_RATE,
OU_C2D_EA_ELIGIBLE_ASSET.COUPON_FREQUENCY,
OU_C2D_EA_ELIGIBLE_ASSET.ISSUANCE_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.MATURITY_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.NOMINAL_VAL_OUTSTANDING,
OU_C2D_EA_ELIGIBLE_ASSET.ACTUAL_OUTSTANDING_VALUE,
OU_C2D_EA_ELIGIBLE_ASSET.STRIPS,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_GROUP,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_LT_RATING_ID,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_LT_RATING_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_ST_RATING_ID,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_ST_RATING_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_CODE_TYPE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_CODE_VALUE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_OTHER_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_RESIDENCE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_PSE,
OU_C2D_EA_ELIGIBLE_ASSET.ISS_LEI,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_GROUP,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_LT_RATING_ID,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_LT_RATING_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_CODE_TYPE,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_CODE_VALUE,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_RESIDENCE,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_PSE,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_LEI,
OU_C2D_EA_ELIGIBLE_ASSET.GUAR_ASSESSMENT,
OU_C2D_EA_ELIGIBLE_ASSET.NCB_COMMENT,
OU_C2D_EA_ELIGIBLE_ASSET.REFERENCE_MARKET,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_ID,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_PRG_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_2_ID,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_2_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.LT_RATING_2_PRG_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_ID,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_PRG_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_2_ID,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_2_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ST_RATING_2_PRG_NAME,
OU_C2D_EA_ELIGIBLE_ASSET.ICAS_RATING,
OU_C2D_EA_ELIGIBLE_ASSET.LOAN_LEVEL_DATA,
OU_C2D_EA_ELIGIBLE_ASSET.LOAN_LEVEL_DATA_LAST_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ABS_PUBL_LAST_SURVEILLANCE,
OU_C2D_EA_ELIGIBLE_ASSET.ABS_PUBL_LAST_SURVEILLANCE2,
OU_C2D_EA_ELIGIBLE_ASSET.ABS_TYPE,
OU_C2D_EA_ELIGIBLE_ASSET.ABS_DATE_LAST_COUPON,
OU_C2D_EA_ELIGIBLE_ASSET.OUTRIGHT_PURCHASE,
OU_C2D_EA_ELIGIBLE_ASSET.CEPH_INFLATION_LINKED,
OU_C2D_EA_ELIGIBLE_ASSET.CEPH_CALLABLE_PUTABLE,
OU_C2D_EA_ELIGIBLE_ASSET.CEPH_SINKABLE,
OU_C2D_EA_ELIGIBLE_ASSET.CEPH_COMMENT,
OU_C2D_EA_ELIGIBLE_ASSET.EXTENDIBLE,
OU_C2D_EA_ELIGIBLE_ASSET.EXTENSION_TRIGGER,
OU_C2D_EA_ELIGIBLE_ASSET.EXTENDED_MATURITY_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.EXTENSION_OPTION_EXERCISED,
OU_C2D_EA_ELIGIBLE_ASSET.EFFECTIVE_MATURITY_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.CRD_OR_EQUIVALENT,
OU_C2D_EA_ELIGIBLE_ASSET.COVERED_BOND_OWN_USE,
OU_C2D_EA_ELIGIBLE_ASSET.DATE_TIME_OF_ENTRY,
OU_C2D_EA_ELIGIBLE_ASSET.SENDER_CODE,
OU_C2D_EA_ELIGIBLE_ASSET.STATUS,
OU_C2D_EA_ELIGIBLE_ASSET.UPDATED_BY,
OU_C2D_EA_ELIGIBLE_ASSET.DATE_TIME_OF_STATUS,
OU_C2D_EA_ELIGIBLE_ASSET.VALIDATION_STATUS,
OU_C2D_EA_ELIGIBLE_ASSET.LIQUIDITY_CLASS,
OU_C2D_EA_ELIGIBLE_ASSET.CREDIT_QUALITY_RANK,
OU_C2D_EA_ELIGIBLE_ASSET.NON_OWN_USE_HAIRCUT,
OU_C2D_EA_ELIGIBLE_ASSET.OWN_USE_HAIRCUT,
OU_C2D_EA_ELIGIBLE_ASSET.ECB_COMMENT,
OU_C2D_EA_ELIGIBLE_ASSET.WAL,
OU_C2D_EA_ELIGIBLE_ASSET.WAL_REF_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.ACTION_TYPE,
OU_C2D_EA_ELIGIBLE_ASSET.ACTION_DATE,
OU_C2D_EA_ELIGIBLE_ASSET.DBRS_PROGRAMME_ID,
OU_C2D_EA_ELIGIBLE_ASSET.FITCH_PROGRAMME_ID,
OU_C2D_EA_ELIGIBLE_ASSET.MOODY_PROGRAMME_ID,
OU_C2D_EA_ELIGIBLE_ASSET.SNP_PROGRAMME_ID,
OU_C2D_EA_ELIGIBLE_ASSET.REFERENCE_RATE,
OU_C2D_EA_ELIGIBLE_ASSET.GREEN_SUSTAINABLE,
OU_C2D_EA_ELIGIBLE_ASSET.TEST_INDICATOR,
OU_C2D_EA_ELIGIBLE_ASSET.MPEC_RIAD_CROSSCHECK ,
OU_C2D_EA_ELIGIBLE_ASSET.SCOPE_PROGRAMME_ID,
OU_C2D_EA_ELIGIBLE_ASSET.CREREF_PROGRAMME_ID,
OU_C2D_EA_HEADER.CREATION_TIME ,
ROW_NUMBER() OVER(PARTITION BY OU_C2D_EA_ELIGIBLE_ASSET.ISIN ORDER BY OU_C2D_EA_ELIGIBLE_ASSET.DATE_TIME_OF_ENTRY DESC) as RN
FROM {{ source("ou_c2d", "EA_ELIGIBLE_ASSET") }} OU_C2D_EA_ELIGIBLE_ASSET
JOIN OU_C2D.EA_HEADER OU_C2D_EA_HEADER ON OU_C2D_EA_ELIGIBLE_ASSET.A_EA_HEADER_FK = OU_C2D_EA_HEADER.A_KEY
AND OU_C2D_EA_ELIGIBLE_ASSET.A_ETL_LOAD_SET_FK = OU_C2D_EA_HEADER.A_ETL_LOAD_SET_FK
WHERE OU_C2D_EA_ELIGIBLE_ASSET.ISIN IS NOT NULL)
WHERE RN=1

View File

@@ -0,0 +1,15 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_FOREIGN_EXCHANGE_SWAP_COUNT_TEST_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI
FROM {{ source("ou_c2d", "EA_FOREIGN_EXCHANGE_SWAP_COUNT") }}

View File

@@ -0,0 +1,15 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_INTEREST_RATE_SWAP_PROVIDER_TEST_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI
FROM {{ source("ou_c2d", "EA_INTEREST_RATE_SWAP_PROVIDER") }}

View File

@@ -0,0 +1,16 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_ISSUER_ACCOUNT_BANK_TEST_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI,
RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("ou_c2d", "EA_ISSUER_ACCOUNT_BANK") }}

View File

@@ -0,0 +1,15 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_LIQUIDITY_SUPPORT_PROVIDER_TEST_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI
FROM {{ source("ou_c2d", "EA_LIQUIDITY_SUPPORT_PROVIDER") }}

View File

@@ -0,0 +1,16 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_ORIGINATOR_test_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI,
ROLE
FROM {{ source("ou_c2d", "EA_ORIGINATOR") }}

View File

@@ -0,0 +1,16 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET'],
schema='sf_c2d',
alias='EA_SERVICE_TEST_SQ'
) }}
SELECT A_KEY AS A_KEY,
A_ETL_LOAD_SET_FK AS A_WORKFLOW_HISTORY_KEY,
A_EA_FK,
CODE_TYPE,
CODE_VALUE,
NAME,
COUNTRY_OF_INCORP,
LEI,
ROLE
FROM {{ source("ou_c2d", "EA_SERVICER") }}

View File

@@ -0,0 +1,68 @@
{{
config(
materialized = "table",
tags = ["m_DWH_PRELOAD_SF_RIAD_ENTTY_IDNTFRS_FLTTND_OU_RIAD_ENTTY_IDNTFRS_FLTTND", "A_TASK_HISTORY_SOURCE_INSERT", "A_TASK_HISTORY_TARGET_insert"],
alias = "ENTTY_IDNTFRS_FLTTND_SQ",
schema = "SF_RIAD",
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}"
) }}
SELECT
ou_riad_entty_idntfrs_flttnd.A_KEY,
ou_riad_entty_idntfrs_flttnd.A_WORKFLOW_HISTORY_KEY,
ou_riad_entty_idntfrs_flttnd.ENTTY_RIAD_ID,
ou_riad_entty_idntfrs_flttnd.BSNSS_VLD_FRM,
ou_riad_entty_idntfrs_flttnd.BSNSS_VLD_T,
ou_riad_entty_idntfrs_flttnd.CNTRY,
ou_riad_entty_idntfrs_flttnd.DT_BRTH,
ou_riad_entty_idntfrs_flttnd.DT_CLS,
ou_riad_entty_idntfrs_flttnd.ENTTY_RIAD_CD,
ou_riad_entty_idntfrs_flttnd.NM_ENTTY,
ou_riad_entty_idntfrs_flttnd.ECNMC_ACTVTY,
ou_riad_entty_idntfrs_flttnd.INSTTTNL_SCTR,
ou_riad_entty_idntfrs_flttnd.INSTTTNL_SCTR_DTL,
ou_riad_entty_idntfrs_flttnd.PSTL_BX_CD,
ou_riad_entty_idntfrs_flttnd.STRT,
ou_riad_entty_idntfrs_flttnd.PSTL_CD,
ou_riad_entty_idntfrs_flttnd.CTY,
ou_riad_entty_idntfrs_flttnd.IS_INCTV,
ou_riad_entty_idntfrs_flttnd.IS_UCITS_CMPLNT,
ou_riad_entty_idntfrs_flttnd.INTRNTNL_ORGNSTN_CD,
ou_riad_entty_idntfrs_flttnd.BLNC_SHT_TTL_DMSTC,
ou_riad_entty_idntfrs_flttnd.NT_ASSTS_DMSTC,
ou_riad_entty_idntfrs_flttnd.COLLATERALGROUP,
ou_riad_entty_idntfrs_flttnd.INSTTTNL_SCTR_CNTRL,
ou_riad_entty_idntfrs_flttnd.IS_C2D_RLVNT,
ou_riad_entty_idntfrs_flttnd.IS_RAR_RLVNT,
ou_riad_entty_idntfrs_flttnd.ARTCL_123_STTS,
ou_riad_entty_idntfrs_flttnd.CSPP_ASSSSMNT,
ou_riad_entty_idntfrs_flttnd.ENTRY_DATE,
ou_riad_entty_idntfrs_flttnd.RIAD,
ou_riad_entty_idntfrs_flttnd.AVID,
ou_riad_entty_idntfrs_flttnd.BIC,
ou_riad_entty_idntfrs_flttnd.LEI,
ou_riad_entty_idntfrs_flttnd.NCB,
ou_riad_entty_idntfrs_flttnd.REU,
ou_riad_entty_idntfrs_flttnd.UCDB_CD,
ou_riad_entty_idntfrs_flttnd.VAT,
ou_riad_entty_idntfrs_flttnd.TMS_CD,
ou_riad_entty_idntfrs_flttnd.BLMBRG_CD,
ou_riad_entty_idntfrs_flttnd.C2D_CD,
ou_riad_entty_idntfrs_flttnd.ULTIMATEHEAD_ENTTY_RIAD_CD,
ou_riad_entty_idntfrs_flttnd.ULTIMATEHEAD_ENTTY_RIAD_ID,
ou_riad_entty_idntfrs_flttnd.NMBR_EMPLYS,
ou_riad_entty_idntfrs_flttnd.ENTRPRS_SZ,
ou_riad_entty_idntfrs_flttnd.TYP_BNKNG_LCNS,
ou_riad_entty_idntfrs_flttnd.LGL_FRM,
ou_riad_entty_idntfrs_flttnd.BLNC_SHT_TTL,
ou_riad_entty_idntfrs_flttnd.BLNC_SHT_TTL_GRP,
ou_riad_entty_idntfrs_flttnd.CMMNT
FROM
{{
source("ou_riad", "ENTTY_IDNTFRS_FLTTND") }} ou_riad_entty_idntfrs_flttnd
WHERE
ou_riad_entty_idntfrs_flttnd.A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_max_key(
"w_ODS_RIAD_ENTTY_IDNTFRS_FLTTND",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,21 @@
{{ config(materialized='table',
alias = 'TE_ASSET_RATING_test_SQ',
tags = ['m_DWH_RAT_TE_ASSET_RATING_SF_C2D_EA_ELIGIBLE_ASSET_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
schema = 'DW_TMP') }}
SELECT 'ISIN' AS ISIN_CODE_TYPE,
RTRIM(LTRIM(ISIN)) AS ISIN_CODE_VALUE,
A_WORKFLOW_HISTORY_KEY,
ST_RATING_ID,
ST_RATING_PRG_NAME,
ST_RATING_2_ID,
ST_RATING_2_PRG_NAME,
LT_RATING_ID,
LT_RATING_PRG_NAME,
LT_RATING_2_ID,
LT_RATING_2_PRG_NAME,
SNAPSHOT_DATE,
ACTION_TYPE
FROM {{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }}

View File

@@ -0,0 +1,182 @@
{{ config(materialized='table',
alias = 'TE_ASSET_ROLE_INSTITUTION_test_SQ',
tags = ['m_DWH_ROLE_TE_ASSET_SF_C2D_EA_INSTROLES_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('SQ') }}",
schema = 'DW_TMP') }}
WITH SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT A_WORKFLOW_HISTORY_KEY,
GUAR_CODE_TYPE,
GUAR_CODE_VALUE,
ISS_CODE_TYPE,
ISS_CODE_VALUE,
ISIN,
GUAR_ASSESSMENT,
A_KEY
FROM {{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }}
WHERE ACTION_TYPE='U'
),
SQ_SERV AS (
SELECT DISTINCT SF_C2D_EA_SERVICER.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_SERVICER.CODE_TYPE,
SF_C2D_EA_SERVICER.CODE_VALUE,
SF_C2D_EA_SERVICER.ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN AS ISIN,
'SERV' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_SERVICER") }} SF_C2D_EA_SERVICER
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_SERVICER.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_SERVICER.A_WORKFLOW_HISTORY_KEY = SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_IAB AS(
SELECT DISTINCT SF_C2D_EA_ISSUER_ACCOUNT_BANK.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_ISSUER_ACCOUNT_BANK.CODE_TYPE,
SF_C2D_EA_ISSUER_ACCOUNT_BANK.CODE_VALUE,
NULL AS ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN,
'IAB' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
SF_C2D_EA_ISSUER_ACCOUNT_BANK.RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_ISSUER_ACCOUNT_BANK") }} SF_C2D_EA_ISSUER_ACCOUNT_BANK
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_ISSUER_ACCOUNT_BANK.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_ISSUER_ACCOUNT_BANK.A_WORKFLOW_HISTORY_KEY= SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_GUA_N AS (
SELECT DISTINCT SF_C2D_EA_ADDITIONAL_GUARANTOR.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_ADDITIONAL_GUARANTOR.CODE_TYPE,
SF_C2D_EA_ADDITIONAL_GUARANTOR.CODE_VALUE,
NULL AS ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN,
'GUA_N' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_ADDITIONAL_GUARANTOR") }} SF_C2D_EA_ADDITIONAL_GUARANTOR
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_ADDITIONAL_GUARANTOR.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_ADDITIONAL_GUARANTOR.A_WORKFLOW_HISTORY_KEY= SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_EA_GUA AS (
SELECT A_WORKFLOW_HISTORY_KEY,
GUAR_CODE_TYPE AS CODE_TYPE,
GUAR_CODE_VALUE AS CODE_VALUE,
NULL AS ROLE,
ISIN,
'GUA' AS ROLE_FK,
GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM SF_C2D_EA_ELIGIBLE_ASSET
),
SQ_EA_ISS AS (
SELECT A_WORKFLOW_HISTORY_KEY,
ISS_CODE_TYPE AS CODE_TYPE,
ISS_CODE_VALUE AS CODE_VALUE,
NULL AS ROLE,
ISIN,
'ISS' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM SF_C2D_EA_ELIGIBLE_ASSET
),
SQ_FXSC AS (
SELECT DISTINCT SF_C2D_EA_FOREIGN_EXCHANGE_SWA.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_FOREIGN_EXCHANGE_SWA.CODE_TYPE,
SF_C2D_EA_FOREIGN_EXCHANGE_SWA.CODE_VALUE,
NULL AS ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN AS ISIN,
'FXSC' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_FOREIGN_EXCHANGE_SWAP_COUNT") }} SF_C2D_EA_FOREIGN_EXCHANGE_SWA
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_FOREIGN_EXCHANGE_SWA.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_FOREIGN_EXCHANGE_SWA.A_WORKFLOW_HISTORY_KEY = SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_IRSP AS (
SELECT DISTINCT SF_C2D_EA_INTEREST_RATE_SWAP_P.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_INTEREST_RATE_SWAP_P.CODE_TYPE,
SF_C2D_EA_INTEREST_RATE_SWAP_P.CODE_VALUE,
NULL AS ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN AS ISIN,
'IRSP' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_INTEREST_RATE_SWAP_PROVIDER") }} SF_C2D_EA_INTEREST_RATE_SWAP_P
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_INTEREST_RATE_SWAP_P.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_INTEREST_RATE_SWAP_P.A_WORKFLOW_HISTORY_KEY = SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_ORIG AS (
SELECT DISTINCT SF_C2D_EA_ORIGINATOR.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_ORIGINATOR.CODE_TYPE,
SF_C2D_EA_ORIGINATOR.CODE_VALUE,
SF_C2D_EA_ORIGINATOR.ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN AS ISIN,
'ORIG' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_ORIGINATOR") }} SF_C2D_EA_ORIGINATOR
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_ORIGINATOR.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_ORIGINATOR.A_WORKFLOW_HISTORY_KEY = SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_LSP AS (
SELECT DISTINCT SF_C2D_EA_LIQUIDITY_SUPPORT_PR.A_WORKFLOW_HISTORY_KEY,
SF_C2D_EA_LIQUIDITY_SUPPORT_PR.CODE_TYPE,
SF_C2D_EA_LIQUIDITY_SUPPORT_PR.CODE_VALUE,
NULL AS ROLE,
SF_C2D_EA_ELIGIBLE_ASSET.ISIN AS ISIN,
'LSP' AS ROLE_FK,
NULL AS GUAR_ASSESSMENT,
NULL AS RESERVE_FUND_THRESHOLDS_EXCEED
FROM {{ source("sf_c2d", "EA_LIQUIDITY_SUPPORT_PROVIDER") }} SF_C2D_EA_LIQUIDITY_SUPPORT_PR
INNER JOIN SF_C2D_EA_ELIGIBLE_ASSET
ON SF_C2D_EA_LIQUIDITY_SUPPORT_PR.A_EA_FK = SF_C2D_EA_ELIGIBLE_ASSET.A_KEY
AND SF_C2D_EA_LIQUIDITY_SUPPORT_PR.A_WORKFLOW_HISTORY_KEY = SF_C2D_EA_ELIGIBLE_ASSET.A_WORKFLOW_HISTORY_KEY
),
SQ_UNION AS (
SELECT * FROM SQ_SERV
UNION ALL
SELECT * FROM SQ_IAB
UNION ALL
SELECT * FROM SQ_GUA_N
UNION ALL
SELECT * FROM SQ_EA_GUA
UNION ALL
SELECT * FROM SQ_EA_ISS
UNION ALL
SELECT * FROM SQ_FXSC
UNION ALL
SELECT * FROM SQ_IRSP
UNION ALL
SELECT * FROM SQ_ORIG
UNION ALL
SELECT * FROM SQ_LSP
)
SELECT A_WORKFLOW_HISTORY_KEY,
CASE
WHEN CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
WHEN CODE_TYPE != 'RIAD' AND CODE_TYPE IS NOT NULL AND LENGTH(LTRIM(RTRIM(CODE_TYPE)))!=0 THEN RTRIM(LTRIM(CODE_TYPE))
ELSE 'NCB'
END AS CODE_TYPE,
RTRIM(LTRIM(CODE_VALUE))AS CODE_VALUE,
ROLE,
ISIN,
ROLE_FK,
GUAR_ASSESSMENT,
RESERVE_FUND_THRESHOLDS_EXCEED
FROM SQ_UNION

View File

@@ -0,0 +1,214 @@
{{
config(
materialized="incremental",
incremental_strategy="merge",
unique_key=["asset_fk", "code_type_no_id", "a_valid_from"],
incremental_predicates=[
"DBT_INTERNAL_DEST.CODE_VALUE <> DBT_INTERNAL_SOURCE.CODE_VALUE"
],
merge_update_columns=["a_valid_to"],
schema="DW_RAR",
alias="MU_ASSET_CODE_MAP",
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
tags=["m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
)
}}
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
with
lkp_asset_code_type_no as (select * from {{ ref("LKP_ASSET_CODE_TYPE_NO") }}
where code_type_id in ('MOODY_PROGRAM_ID', 'ISIN')),
sq as (
select
{{ get_workflow_history_key() }} as a_workflow_history_key,
'EADB' as source,
-- isin_code_type_no as isin_code_type_no,
-- moody_program_id_code_type_no as moody_code_type_no,
isin as isin_code_value,
moody_code_value as moody_code_value
from {{ ref("m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET_SQ") }}
)
{% if is_incremental() %}
,
lkp_dw_rar_mu_asset_code_map as (
select
dw_rar_mu_asset_code_map.code_value as code_value,
dw_rar_mu_asset_code_map.source as source,
dw_rar_mu_asset_code_map.asset_fk as asset_fk,
dw_rar_mu_asset_code_map.code_type_no_id as code_type_no_id
from {{ this }} dw_rar_mu_asset_code_map
where
a_valid_to = to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
and code_type_no_id = (
select code_type_no
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }}
where
a_valid_to
= to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
and code_type_id = 'MOODY_PROGRAM_ID'
)
),
all_assets as (
select
sq.a_workflow_history_key,
sq.isin_code_value,
sq.moody_code_value,
sq.source,
trg.code_value,
trg.asset_fk,
trg.a_valid_from, -- needed for merge
trg.a_valid_to,
(
select code_type_no
from lkp_asset_code_type_no
where code_type_id = 'ISIN'
) as isin_code_type_no,
(
select code_type_no
from lkp_asset_code_type_no
where code_type_id = 'MOODY_PROGRAM_ID'
) as moody_code_type_no
from sq
full outer join
(
select
acm.code_value, acm.asset_fk, acm.a_valid_from, acm.a_valid_to
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }} act, {{ this }} acm
where
act.code_type_id = 'ISIN'
and act.code_type_no = acm.code_type_no_id
and acm.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')
and act.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')
) trg
on sq.isin_code_value = trg.code_value
),
insert_update as (
select
all_assets.asset_fk,
all_assets.a_workflow_history_key,
all_assets.a_valid_from, -- needed for merge
all_assets.a_valid_to,
all_assets.source,
all_assets.isin_code_type_no,
all_assets.moody_code_type_no,
all_assets.isin_code_value,
all_assets.moody_code_value,
case
when all_assets.asset_fk is null and all_assets.isin_code_value is not null
then 'I'
when
nvl(lkp_dw_rar_mu_asset_code_map.code_value, '>>NULL<<')
<> nvl(all_assets.moody_code_value, '>>NULL<<')
and lkp_dw_rar_mu_asset_code_map.source <> 'MANU'
then 'U'
-- when sq.isin like 'AT000B0779%' then 'I' --for tests
else 'N'
end ins_upd_flag
from all_assets
left join
lkp_dw_rar_mu_asset_code_map
on all_assets.asset_fk = lkp_dw_rar_mu_asset_code_map.asset_fk
and all_assets.moody_code_type_no
= lkp_dw_rar_mu_asset_code_map.code_type_no_id
)
select
-- case when ins_upd_flag = 'I' then nextval else asset_fk end
-- asset_fk, --
-- <- sequence used in this place is not good idea because a new value is
-- generated for every row even thought ins_upd_flag <> 'I'
case
when ins_upd_flag = 'I'
then /* bw_asset_tests_fnc()*/
{{ sequence_next_value(sequence_name) }}
else asset_fk
end asset_fk, -- <- this is a workaround to above
code_type_no_id,
a_valid_from,
a_valid_to,
a_workflow_history_key,
code_value,
source,
indep_subprocess_fk
from
(
-- insert for MOODY
-- open new row (insert new version of the asset_fk)
select
asset_fk,
moody_code_type_no as code_type_no_id,
sysdate as a_valid_from,
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
a_workflow_history_key,
moody_code_value as code_value,
source,
cast(null as number) as indep_subprocess_fk, -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
ins_upd_flag
from insert_update
where
ins_upd_flag in ('U', 'I')
and nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
union all
-- insert for ISIN
select
asset_fk,
isin_code_type_no as code_type_no_id,
sysdate as a_valid_from,
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
a_workflow_history_key,
isin_code_value as code_value,
source,
cast(null as number), -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
ins_upd_flag
from insert_update
where
ins_upd_flag = 'I'
and nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
union all
-- close old version of the row meaning update
select
asset_fk,
moody_code_type_no,
a_valid_from,
sysdate a_valid_to,
a_workflow_history_key,
moody_code_value as code_value,
source,
cast(null as number) as indep_subprocess_fk,
ins_upd_flag
from insert_update
where ins_upd_flag = 'U'
)
-- below part is used only if model is executed 1st time and target table doesn't exist
{% else %}
-- initial insert for MOODY
select
{{ sequence_next_value(sequence_name) }} as asset_fk,
(
select code_type_no
from lkp_asset_code_type_no
where code_type_id = 'MOODY_PROGRAM_ID'
) as code_type_no_id,
sysdate as a_valid_from,
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
a_workflow_history_key,
moody_code_value as code_value,
source,
cast(null as number) as indep_subprocess_fk -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
from sq
where nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
union all
-- initial insert for ISIN
select
{{ sequence_next_value(sequence_name) }} as asset_fk,
(
select code_type_no from lkp_asset_code_type_no where code_type_id = 'ISIN'
) as code_type_no_id,
sysdate as a_valid_from,
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
a_workflow_history_key,
isin_code_value as code_value,
source,
cast(null as number) as indep_subprocess_fk -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
from sq
where nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
{% endif %}

View File

@@ -0,0 +1,173 @@
-- This model creates table DW_RAR.NH_ASSET_TEST.
-- The model is a part of the mapping m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD.
-- Pre-/post-hook log data into the control tables.
{{ config(materialized='table',
alias = 'NH_ASSET_TEST',
tags = ['m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD_post_snapshot', 'A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
schema = 'DW_RAR') }}
-- Select all the columns from snapshot.
-- Rename the dbt default historisation columns to the names used in the current setup.
SELECT SS.ASSET_KEY,
SS.IS_SECURED,
SS.CLASSIFICATION,
SS.IS_EXTENDIBLE,
SS.EA_IS_EMERGENCY_COLLATERAL,
SS.TMS_GROUP_PATH,
SS.TMS_GROUP_PATH_NAME,
SS.ISSUE_DATE,
SS.MATURITY_LAST_REDEMPTION_DATE,
SS.TMS_ACTIVE_SINCE,
SS.TMS_ACTIVE_UNTIL,
SS.CURRENCY,
SS.CURRENCY_2,
SS.INTEREST_RATE,
SS.TMS_TYPE,
SS.PERIOD_ID,
SS.PRICING_TYPE,
SS.ASSET_BBG_NAME,
SS.BBG_BM_IDX,
SS.BBG_FLT_BM_MULTIPLIER,
SS.BBG_COLLAT_TYPE,
SS.BBG_MARKET_ISSUE,
SS.BBG_MATURITY_TYPE,
SS.COUPON_TYPE,
SS.POOL_FACTOR,
SS.BBG_FLT_SPREAD,
SS.CSDB_REDEMPTION_TYPE,
SS.CSDB_REDEMPTION_FREQ,
SS.CSDB_REDEMPTION_PRICE,
SS.CSDB_ISSUE_PRICE,
SS.CSDB_STATUS,
SS.UOC_INTEREST_PAYMENT_TYPE,
SS.EA_CSD,
SS.C2D_ASSET_TYPE,
SS.EA_COUPON_TYPE,
SS.EA_REF_MARKET,
SS.EA_CRD_OR_EQUIV,
SS.EA_IS_ABS_LLD,
SS.EA_IS_ABS_LLD_DATE,
SS.EA_ABS_SURVEIL_DATE,
SS.EA_ABS_TYPE,
SS.EA_CEPH_IS_INFLAT,
SS.EA_CEPH_IS_CALL_PUT,
SS.EA_CEPH_IS_SINKABLE,
SS.EA_CEPH_COMMENT,
SS.EA_IS_OUTRIGHT_PURCHASE,
SS.EA_LIQ_CLASS,
SS.EA_DENOMINATION,
SS.EA_NAME,
SS.EA_VALIDATION_STATUS,
SS.EA_NCB_COMMENT,
SS.EA_ISSUANCE_DATE,
SS.C2D_MATURITY_DATE,
SS.MATURITY_DATE,
SS.UOC_BUCKET_SIZE,
SS.IS_ELIGIBLE_VIA_GUARANTOR,
SS.UOC_RESIDUAL_MATURITY,
SS.EA_SENDER_CODE,
SS.EA_NON_OWN_USE_HAIRCUT,
SS.ACCOUNTING_TYPE,
SS.GROUPING_VALUE,
SS.SPREAD_TYPE,
SS.TMS_ELIGIBILITY_TYPE,
SS.REF_AMOUNT_BUCKET,
SS.ISSUANCE_TYPE,
SS.BRANCH6_ID,
SS.BRANCH7_ID,
SS.BRANCH8_ID,
SS.BRANCH9_ID,
SS.TMS_NAME,
SS.CSDB_CSD,
SS.CSDB_SECURITISATION_TYPE,
SS.CFI_CLASSIFICATION,
SS.INSTRUMENT_ESA_95_CLASS,
SS.INSTR_ESA_95_CLASS_VAL_TYPE,
SS.INSTRUMENT_ESA_2010_CLASS,
SS.REDEMPTION_CURRENCY,
SS.CSDB_SUPPL_INFO,
SS.CAP,
SS.REFERENCERATE,
SS.REFERENCERATECOMMENT,
SS.BBG_FLOATER,
SS.BBG_INDUSTRY_GROUP,
SS.CSDB_ESG1,
SS.CSDB_ESG2,
SS.CSDB_ESG3,
SS.REU_SECURITY_DESCRIPTION,
SS.REU_ASSET_CATEGORY,
SS.REU_ASSET_CATEGORY_DESCRIPTION,
SS.REU_ASSET_TYPE,
SS.REU_ASSET_TYPE_DESCRIPTION,
SS.REU_ASSET_SUBTYPE,
SS.REU_ASSET_SUBTYPE_DESCRIPTION,
SS.REU_ISO_CURRENCY,
SS.BBG_DES_NOTES,
SS.BBG_INDUSTRY_SUBGROUP,
SS.BBG_SECURITY_TYP,
SS.BBG_SECURITY_TYP2,
SS.UOC_RESET_PERIOD_MORE_ONE_YEAR,
SS.EA_EXTENSION_OPTION_EXERCISED,
SS.EA_EFFECTIVE_MATURITY_DATE,
SS.EA_COVERED_BOND_OU,
SS.EA_OWN_USE_HAIRCUT,
SS.EA_CQS,
SS.EA_EXTENDIBLE,
SS.EA_EXTENSION_TRIGGER,
SS.EA_EXTENDED_MATURITY_DATE,
SS.EA_ABS_PUBL_SURVEIL_DATE2,
SS.BBG_TICKER,
SS.BBG_STRIP_TYPE,
SS.BBG_EXCHANGE_CODE,
SS.BBG_PRVT_PLACE,
SS.BBG_PUTABLE,
SS.BBG_ISSUER_INDUSTRY,
SS.BBG_INFLATION_LINKED_INDICATOR,
SS.CSDB_IS_PRIVATE_PLACEMENT,
SS.CLASSIFICATION_C2D,
SS.CLASSIFICATION_TMS,
SS.ISSUE_DATE_TMS,
SS.ISSUE_DATE_CSDB,
SS.CURRENCY_TMS,
SS.CURRENCY_MDP,
SS.CURRENCY_CSDB,
SS.COUPON_TYPE_MDP,
SS.COUPON_TYPE_CSDB,
SS.POOL_FACTOR_CEPH,
SS.POOL_FACTOR_CSDB,
SS.MATURITY_DATE_TMS,
SS.MATURITY_DATE_MDP,
SS.CP_PROGRAMME,
SS.C2D_ELA_ABS_TYPE,
SS.C2D_EA_ABS_TYPE,
SS.C2D_EA_MATURITY_DATE,
SS.C2D_UC_MATURITY_DATE,
SS.C2D_UC_ASSET_TYPE,
SS.C2D_EA_ASSET_TYPE,
SS.C2D_ELA_ASSET_TYPE,
SS.C2D_UC_DENOMINATION,
SS.C2D_EA_DENOMINATION,
SS.C2D_UC_OA_ID,
SS.C2D_UC_CONTRACT_ID,
SS.C2D_UC_INSTRMNT_ID,
SS.MDP_CMA_DEFAULTED_DATE,
SS.MDP_CMA_DEFAULTED_STANDARD,
SS.MDP_CMA_QUOTE_CONVENTION,
SS.MDP_CMA_RESTRUCTURING_TYPE,
SS.MDP_CMA_MATURITY_DATE,
SS.MDP_CMA_TENOR,
SS.MDP_CMA_SENIORITY,
SS.MDP_CMA_INSTRUMENT_TYPE,
SS.MDP_CMA_CURRENCY,
SS.C2D_EA_REFERENCE_RATE,
SS.C2D_EA_GREEN_SUSTAINABLE,
SS.TMS_FUTURES_MATURITY_BUCKET,
SS.BBG_MTY_YEARS_TDY,
dbt_valid_to AS TO_DATE,
FROM_DATE,
dbt_valid_from AS A_INSERTION_DATE,
dbt_valid_to AS A_CORRECTION_DATE
FROM {{ ref("NH_ASSET_snapshot") }} SS

View File

@@ -0,0 +1,703 @@
-- This model incrementally updates the target table DW_TMP.TE_ASSET_test by adding new rows and updating the already existing ones.
-- Wether the row is new or existing one is determined by ASSET_KEY column.
-- The model is a part of the mapping m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD.
-- Pre-/post-hook log data into the control tables.
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
{{ config(materialized='incremental',
incremental_strategy='merge',
unique_key='ASSET_KEY',
tags = ['m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
schema='DW_TMP',
alias = 'TE_ASSET_test',
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
merge_update_columns=['ASSET_KEY',
'CLASSIFICATION',
'EA_IS_EMERGENCY_COLLATERAL',
'C2D_ASSET_TYPE',
'EA_CSD',
'EA_COUPON_TYPE',
'EA_REF_MARKET',
'EA_CRD_OR_EQUIV',
'EA_IS_ABS_LLD',
'EA_IS_ABS_LLD_DATE',
'EA_ABS_SURVEIL_DATE',
'EA_ABS_TYPE',
'EA_CEPH_IS_INFLAT',
'EA_CEPH_IS_CALL_PUT',
'EA_CEPH_IS_SINKABLE',
'EA_CEPH_COMMENT',
'EA_IS_OUTRIGHT_PURCHASE',
'EA_LIQ_CLASS',
'EA_DENOMINATION',
'EA_NCB_COMMENT',
'EA_NAME',
'EA_VALIDATION_STATUS',
'EA_ISSUANCE_DATE',
'C2D_MATURITY_DATE',
'EA_SENDER_CODE',
'EA_NON_OWN_USE_HAIRCUT',
'EA_EXTENSION_OPTION_EXERCISED',
'EA_EFFECTIVE_MATURITY_DATE',
'EA_COVERED_BOND_OU',
'EA_OWN_USE_HAIRCUT',
'EA_CQS',
'EA_EXTENDIBLE',
'EA_EXTENSION_TRIGGER',
'EA_EXTENDED_MATURITY_DATE',
'EA_ABS_PUBL_SURVEIL_DATE2',
'CLASSIFICATION_C2D',
'C2D_EA_ABS_TYPE',
'C2D_EA_MATURITY_DATE',
'C2D_EA_ASSET_TYPE',
'C2D_EA_DENOMINATION',
'CURRENCY',
'C2D_EA_REFERENCE_RATE',
'C2D_EA_GREEN_SUSTAINABLE']
) }}
-- Set sequence_name: to be used for the generation of the next sequence value.
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
-- Select data from Source Qualifier
-- Implement the GET_ASSET_CODE_MAP_CACHE lookup:
-- - join with DW_REF_MAIN.ASSET_CODE_TYPE
-- - join with DW_RAR.MU_ASSET_CODE_MAP
-- - get the lookup ASSET_FK for the corresponding ISIN
-- Perform some data transformation
-- Filter data: keep rows where ASSET_FK is not null
WITH PASS_THROUGH AS (
SELECT CASE
WHEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL THEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK
ELSE NULL
END AS ASSET_FK,
'Marketable' AS CLASSIFICATION,
CASE
WHEN EMERGENCY_COLLATERAL IS NOT NULL THEN
CASE
WHEN REGEXP_LIKE(EMERGENCY_COLLATERAL,'^[0-9]+$') THEN
CASE
WHEN TO_NUMBER(EMERGENCY_COLLATERAL)=0 THEN 'N'
ELSE 'Y'
END
ELSE
CASE
WHEN UPPER(EMERGENCY_COLLATERAL) IN ('N','NO','') THEN 'N'
ELSE 'Y'
END
END
END AS EMERGENCY_COLLATERAL,
COUNTRY_OF_LOCATION,
ASSET_TYPE,
COUPON_DEFINITION,
REFERENCE_MARKET,
CRD_OR_EQUIVALENT,
CASE
WHEN LOAN_LEVEL_DATA IS NOT NULL THEN
CASE
WHEN REGEXP_LIKE(LOAN_LEVEL_DATA,'^[0-9]+$') THEN
CASE
WHEN TO_NUMBER(LOAN_LEVEL_DATA)=0 THEN 'N'
ELSE 'Y'
END
ELSE
CASE
WHEN UPPER(LOAN_LEVEL_DATA) IN ('N','NO','') THEN 'N'
ELSE 'Y'
END
END
END AS LOAN_LEVEL_DATA,
LOAN_LEVEL_DATA_LAST_DATE,
ABS_PUBL_LAST_SURVEILLANCE,
ABS_TYPE,
CASE
WHEN CEPH_INFLATION_LINKED IS NOT NULL THEN
CASE
WHEN REGEXP_LIKE(CEPH_INFLATION_LINKED,'^[0-9]+$') THEN
CASE
WHEN TO_NUMBER(CEPH_INFLATION_LINKED)=0 THEN 'N'
ELSE 'Y'
END
ELSE
CASE
WHEN UPPER(CEPH_INFLATION_LINKED) IN ('N','NO','') THEN 'N'
ELSE 'Y'
END
END
END AS CEPH_INFLATION_LINKED,
CEPH_CALLABLE_PUTABLE,
CASE
WHEN CEPH_SINKABLE IS NOT NULL THEN
CASE
WHEN REGEXP_LIKE(CEPH_SINKABLE,'^[0-9]+$') THEN
CASE
WHEN TO_NUMBER(CEPH_SINKABLE)=0 THEN 'N'
ELSE 'Y'
END
ELSE
CASE
WHEN UPPER(CEPH_SINKABLE) IN ('N','NO','') THEN 'N'
ELSE 'Y'
END
END
END AS CEPH_SINKABLE,
CEPH_COMMENT,
CASE
WHEN OUTRIGHT_PURCHASE IS NOT NULL THEN
CASE
WHEN REGEXP_LIKE(OUTRIGHT_PURCHASE,'^[0-9]+$') THEN
CASE
WHEN TO_NUMBER(OUTRIGHT_PURCHASE)=0 THEN 'N'
ELSE 'Y'
END
ELSE
CASE
WHEN UPPER(OUTRIGHT_PURCHASE) IN ('N','NO','') THEN 'N'
ELSE 'Y'
END
END
END AS OUTRIGHT_PURCHASE,
LIQUIDITY_CLASS,
DENOMINATION,
ASSET_NAME,
VALIDATION_STATUS,
NCB_COMMENT,
ISSUANCE_DATE,
MATURITY_DATE,
SENDER_CODE,
ABS_PUBL_LAST_SURVEILLANCE2,
COVERED_BOND_OWN_USE,
CREDIT_QUALITY_RANK,
EXTENDED_MATURITY_DATE,
EXTENDIBLE,
EXTENSION_OPTION_EXERCISED,
EXTENSION_TRIGGER,
NON_OWN_USE_HAIRCUT,
OWN_USE_HAIRCUT,
EA_EFFECTIVE_MATURITY_DATE,
REFERENCE_RATE,
GREEN_SUSTAINABLE,
ROW_NUMBER() OVER (PARTITION BY ASSET_FK ORDER BY ASSET_FK) AS rn
FROM {{ ref("m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_TE_ASSET_SQ") }} SQ
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
FROM DW_REF_MAIN.ASSET_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
FROM DW_RAR.MU_ASSET_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
),
-- Select data from the previous subquery.
-- Join with the target table DW_TMP.TE_ASSET_test.
-- Update information in columns based on the current target table data and the incoming values.
-- Remove duplicate rows.
CHECK_GET_ASSET_KEY AS (
SELECT inp.ASSET_FK,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EMERGENCY_COLLATERAL
ELSE
CASE
WHEN lkp.EA_IS_EMERGENCY_COLLATERAL IS NOT NULL THEN lkp.EA_IS_EMERGENCY_COLLATERAL
ELSE inp.EMERGENCY_COLLATERAL
END
END AS CLASSIFICATION,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EMERGENCY_COLLATERAL
ELSE
CASE
WHEN lkp.EA_IS_EMERGENCY_COLLATERAL IS NOT NULL THEN lkp.EA_IS_EMERGENCY_COLLATERAL
ELSE inp.EMERGENCY_COLLATERAL
END
END AS EA_IS_EMERGENCY_COLLATERAL,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_TYPE
ELSE
CASE
WHEN lkp.C2D_ASSET_TYPE IS NOT NULL THEN lkp.C2D_ASSET_TYPE
ELSE inp.ASSET_TYPE
END
END AS C2D_ASSET_TYPE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.COUNTRY_OF_LOCATION
ELSE
CASE
WHEN lkp.EA_CSD IS NOT NULL THEN lkp.EA_CSD
ELSE inp.COUNTRY_OF_LOCATION
END
END AS EA_CSD,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.COUPON_DEFINITION
ELSE
CASE
WHEN lkp.EA_COUPON_TYPE IS NOT NULL THEN lkp.EA_COUPON_TYPE
ELSE inp.COUPON_DEFINITION
END
END AS EA_COUPON_TYPE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.REFERENCE_MARKET
ELSE
CASE
WHEN lkp.EA_REF_MARKET IS NOT NULL THEN lkp.EA_REF_MARKET
ELSE inp.REFERENCE_MARKET
END
END AS EA_REF_MARKET,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CRD_OR_EQUIVALENT
ELSE
CASE
WHEN lkp.EA_CRD_OR_EQUIV IS NOT NULL THEN lkp.EA_CRD_OR_EQUIV
ELSE inp.CRD_OR_EQUIVALENT
END
END AS EA_CRD_OR_EQUIV,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.LOAN_LEVEL_DATA
ELSE
CASE
WHEN lkp.EA_IS_ABS_LLD IS NOT NULL THEN lkp.EA_IS_ABS_LLD
ELSE inp.LOAN_LEVEL_DATA
END
END AS EA_IS_ABS_LLD,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.LOAN_LEVEL_DATA_LAST_DATE
ELSE
CASE
WHEN lkp.EA_IS_ABS_LLD_DATE IS NOT NULL THEN lkp.EA_IS_ABS_LLD_DATE
ELSE inp.LOAN_LEVEL_DATA_LAST_DATE
END
END AS EA_IS_ABS_LLD_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_PUBL_LAST_SURVEILLANCE
ELSE
CASE
WHEN lkp.EA_ABS_SURVEIL_DATE IS NOT NULL THEN lkp.EA_ABS_SURVEIL_DATE
ELSE inp.ABS_PUBL_LAST_SURVEILLANCE
END
END AS EA_ABS_SURVEIL_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_TYPE
ELSE
CASE
WHEN lkp.EA_ABS_TYPE IS NOT NULL THEN lkp.EA_ABS_TYPE
ELSE inp.ABS_TYPE
END
END AS EA_ABS_TYPE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_INFLATION_LINKED
ELSE
CASE
WHEN lkp.EA_CEPH_IS_INFLAT IS NOT NULL THEN lkp.EA_CEPH_IS_INFLAT
ELSE inp.CEPH_INFLATION_LINKED
END
END AS EA_CEPH_IS_INFLAT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_CALLABLE_PUTABLE
ELSE
CASE
WHEN lkp.EA_CEPH_IS_CALL_PUT IS NOT NULL THEN lkp.EA_CEPH_IS_CALL_PUT
ELSE inp.CEPH_CALLABLE_PUTABLE
END
END AS EA_CEPH_IS_CALL_PUT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_SINKABLE
ELSE
CASE
WHEN lkp.EA_CEPH_IS_SINKABLE IS NOT NULL THEN lkp.EA_CEPH_IS_SINKABLE
ELSE inp.CEPH_SINKABLE
END
END AS EA_CEPH_IS_SINKABLE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_COMMENT
ELSE
CASE
WHEN lkp.EA_CEPH_COMMENT IS NOT NULL THEN lkp.EA_CEPH_COMMENT
ELSE inp.CEPH_COMMENT
END
END AS EA_CEPH_COMMENT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.OUTRIGHT_PURCHASE
ELSE
CASE
WHEN lkp.EA_IS_OUTRIGHT_PURCHASE IS NOT NULL THEN lkp.EA_IS_OUTRIGHT_PURCHASE
ELSE inp.OUTRIGHT_PURCHASE
END
END AS EA_IS_OUTRIGHT_PURCHASE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.LIQUIDITY_CLASS
ELSE
CASE
WHEN lkp.EA_LIQ_CLASS IS NOT NULL THEN lkp.EA_LIQ_CLASS
ELSE inp.LIQUIDITY_CLASS
END
END AS EA_LIQ_CLASS,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
ELSE
CASE
WHEN lkp.EA_DENOMINATION IS NOT NULL THEN lkp.EA_DENOMINATION
ELSE inp.DENOMINATION
END
END AS EA_DENOMINATION,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.NCB_COMMENT
ELSE
CASE
WHEN lkp.EA_NCB_COMMENT IS NOT NULL THEN lkp.EA_NCB_COMMENT
ELSE inp.NCB_COMMENT
END
END AS EA_NCB_COMMENT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_NAME
ELSE
CASE
WHEN lkp.EA_NAME IS NOT NULL THEN lkp.EA_NAME
ELSE inp.ASSET_NAME
END
END AS EA_NAME,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.VALIDATION_STATUS
ELSE
CASE
WHEN lkp.EA_VALIDATION_STATUS IS NOT NULL THEN lkp.EA_VALIDATION_STATUS
ELSE inp.VALIDATION_STATUS
END
END AS EA_VALIDATION_STATUS,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ISSUANCE_DATE
ELSE
CASE
WHEN lkp.EA_ISSUANCE_DATE IS NOT NULL THEN lkp.EA_ISSUANCE_DATE
ELSE inp.ISSUANCE_DATE
END
END AS EA_ISSUANCE_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.MATURITY_DATE
ELSE
CASE
WHEN lkp.C2D_MATURITY_DATE IS NOT NULL THEN lkp.C2D_MATURITY_DATE
ELSE inp.MATURITY_DATE
END
END AS C2D_MATURITY_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.SENDER_CODE
ELSE
CASE
WHEN lkp.EA_SENDER_CODE IS NOT NULL THEN lkp.EA_SENDER_CODE
ELSE inp.SENDER_CODE
END
END AS EA_SENDER_CODE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.NON_OWN_USE_HAIRCUT
ELSE
CASE
WHEN lkp.EA_NON_OWN_USE_HAIRCUT IS NOT NULL THEN lkp.EA_NON_OWN_USE_HAIRCUT
ELSE inp.NON_OWN_USE_HAIRCUT
END
END AS EA_NON_OWN_USE_HAIRCUT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENSION_OPTION_EXERCISED
ELSE
CASE
WHEN lkp.EA_EXTENSION_OPTION_EXERCISED IS NOT NULL THEN lkp.EA_EXTENSION_OPTION_EXERCISED
ELSE inp.EXTENSION_OPTION_EXERCISED
END
END AS EA_EXTENSION_OPTION_EXERCISED,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EA_EFFECTIVE_MATURITY_DATE
ELSE
CASE
WHEN lkp.EA_EFFECTIVE_MATURITY_DATE IS NOT NULL THEN lkp.EA_EFFECTIVE_MATURITY_DATE
ELSE inp.EA_EFFECTIVE_MATURITY_DATE
END
END AS EA_EFFECTIVE_MATURITY_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.COVERED_BOND_OWN_USE
ELSE
CASE
WHEN lkp.EA_COVERED_BOND_OU IS NOT NULL THEN lkp.EA_COVERED_BOND_OU
ELSE inp.COVERED_BOND_OWN_USE
END
END AS EA_COVERED_BOND_OU,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.OWN_USE_HAIRCUT
ELSE
CASE
WHEN lkp.EA_OWN_USE_HAIRCUT IS NOT NULL THEN lkp.EA_OWN_USE_HAIRCUT
ELSE inp.OWN_USE_HAIRCUT
END
END AS EA_OWN_USE_HAIRCUT,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CREDIT_QUALITY_RANK
ELSE
CASE
WHEN lkp.EA_CQS IS NOT NULL THEN lkp.EA_CQS
ELSE inp.CREDIT_QUALITY_RANK
END
END AS EA_CQS,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENDIBLE
ELSE
CASE
WHEN lkp.EA_EXTENDIBLE IS NOT NULL THEN lkp.EA_EXTENDIBLE
ELSE inp.EXTENDIBLE
END
END AS EA_EXTENDIBLE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENSION_TRIGGER
ELSE
CASE
WHEN lkp.EA_EXTENSION_TRIGGER IS NOT NULL THEN lkp.EA_EXTENSION_TRIGGER
ELSE inp.EXTENSION_TRIGGER
END
END AS EA_EXTENSION_TRIGGER,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENDED_MATURITY_DATE
ELSE
CASE
WHEN lkp.EA_EXTENDED_MATURITY_DATE IS NOT NULL THEN lkp.EA_EXTENDED_MATURITY_DATE
ELSE inp.EXTENDED_MATURITY_DATE
END
END AS EA_EXTENDED_MATURITY_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_PUBL_LAST_SURVEILLANCE2
ELSE
CASE
WHEN lkp.EA_ABS_PUBL_SURVEIL_DATE2 IS NOT NULL THEN lkp.EA_ABS_PUBL_SURVEIL_DATE2
ELSE inp.ABS_PUBL_LAST_SURVEILLANCE2
END
END AS EA_ABS_PUBL_SURVEIL_DATE2,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.CLASSIFICATION
ELSE
CASE
WHEN lkp.CLASSIFICATION_C2D IS NOT NULL THEN lkp.CLASSIFICATION_C2D
ELSE inp.CLASSIFICATION
END
END AS CLASSIFICATION_C2D,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_TYPE
ELSE
CASE
WHEN lkp.C2D_EA_ABS_TYPE IS NOT NULL THEN lkp.C2D_EA_ABS_TYPE
ELSE inp.ABS_TYPE
END
END AS C2D_EA_ABS_TYPE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.MATURITY_DATE
ELSE
CASE
WHEN lkp.C2D_EA_MATURITY_DATE IS NOT NULL THEN lkp.C2D_EA_MATURITY_DATE
ELSE inp.MATURITY_DATE
END
END AS C2D_EA_MATURITY_DATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_TYPE
ELSE
CASE
WHEN lkp.C2D_EA_ASSET_TYPE IS NOT NULL THEN lkp.C2D_EA_ASSET_TYPE
ELSE inp.ASSET_TYPE
END
END AS C2D_EA_ASSET_TYPE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
ELSE
CASE
WHEN lkp.C2D_EA_DENOMINATION IS NOT NULL THEN lkp.C2D_EA_DENOMINATION
ELSE inp.DENOMINATION
END
END AS C2D_EA_DENOMINATION,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
ELSE
CASE
WHEN lkp.CURRENCY IS NOT NULL THEN lkp.CURRENCY
ELSE inp.DENOMINATION
END
END AS CURRENCY,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.REFERENCE_RATE
ELSE
CASE
WHEN lkp.C2D_EA_REFERENCE_RATE IS NOT NULL THEN lkp.C2D_EA_REFERENCE_RATE
ELSE inp.REFERENCE_RATE
END
END AS C2D_EA_REFERENCE_RATE,
CASE
WHEN lkp.ASSET_KEY IS NULL THEN inp.GREEN_SUSTAINABLE
ELSE
CASE
WHEN lkp.C2D_EA_GREEN_SUSTAINABLE IS NOT NULL THEN lkp.C2D_EA_GREEN_SUSTAINABLE
ELSE inp.GREEN_SUSTAINABLE
END
END AS C2D_EA_GREEN_SUSTAINABLE
FROM PASS_THROUGH inp
LEFT JOIN DW_TMP.TE_ASSET_test lkp ON inp.ASSET_FK = lkp.ASSET_KEY
WHERE rn=1
)
-- Select data from previous subquery.
-- Generate a new ASSET_FK value if null.
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
SELECT CASE WHEN ASSET_FK IS NULL THEN {{ sequence_next_value(sequence_name) }}
ELSE ASSET_FK
END AS ASSET_KEY,
CLASSIFICATION,
EA_IS_EMERGENCY_COLLATERAL,
C2D_ASSET_TYPE,
EA_CSD,
EA_COUPON_TYPE,
EA_REF_MARKET,
EA_CRD_OR_EQUIV,
EA_IS_ABS_LLD,
EA_IS_ABS_LLD_DATE,
EA_ABS_SURVEIL_DATE,
EA_ABS_TYPE,
EA_CEPH_IS_INFLAT,
EA_CEPH_IS_CALL_PUT,
EA_CEPH_IS_SINKABLE,
EA_CEPH_COMMENT,
EA_IS_OUTRIGHT_PURCHASE,
EA_LIQ_CLASS,
EA_DENOMINATION,
EA_NCB_COMMENT,
EA_NAME,
EA_VALIDATION_STATUS,
EA_ISSUANCE_DATE,
C2D_MATURITY_DATE,
EA_SENDER_CODE,
EA_NON_OWN_USE_HAIRCUT,
EA_EXTENSION_OPTION_EXERCISED,
EA_EFFECTIVE_MATURITY_DATE,
EA_COVERED_BOND_OU,
EA_OWN_USE_HAIRCUT,
EA_CQS,
EA_EXTENDIBLE,
EA_EXTENSION_TRIGGER,
EA_EXTENDED_MATURITY_DATE,
EA_ABS_PUBL_SURVEIL_DATE2,
CLASSIFICATION_C2D,
C2D_EA_ABS_TYPE,
C2D_EA_MATURITY_DATE,
C2D_EA_ASSET_TYPE,
C2D_EA_DENOMINATION,
CURRENCY,
C2D_EA_REFERENCE_RATE,
C2D_EA_GREEN_SUSTAINABLE,
CAST(NULL AS VARCHAR2(255)) AS IS_SECURED,
CAST(NULL AS VARCHAR2(255)) AS IS_EXTENDIBLE,
CAST(NULL AS VARCHAR2(255)) AS TMS_GROUP_PATH,
CAST(NULL AS VARCHAR2(255)) AS TMS_GROUP_PATH_NAME,
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE,
CAST(NULL AS VARCHAR2(255)) AS MATURITY_LAST_REDEMPTION_DATE,
CAST(NULL AS VARCHAR2(255)) AS TMS_ACTIVE_SINCE,
CAST(NULL AS VARCHAR2(255)) AS TMS_ACTIVE_UNTIL,
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_2,
CAST(NULL AS VARCHAR2(255)) AS INTEREST_RATE,
CAST(NULL AS VARCHAR2(255)) AS TMS_TYPE,
CAST(NULL AS VARCHAR2(255)) AS PERIOD_ID,
CAST(NULL AS VARCHAR2(255)) AS PRICING_TYPE,
CAST(NULL AS VARCHAR2(255)) AS ASSET_BBG_NAME,
CAST(NULL AS VARCHAR2(255)) AS BBG_BM_IDX,
CAST(NULL AS VARCHAR2(255)) AS BBG_FLT_BM_MULTIPLIER,
CAST(NULL AS VARCHAR2(255)) AS BBG_COLLAT_TYPE,
CAST(NULL AS VARCHAR2(255)) AS BBG_MARKET_ISSUE,
CAST(NULL AS VARCHAR2(255)) AS BBG_MATURITY_TYPE,
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE,
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR,
CAST(NULL AS VARCHAR2(255)) AS BBG_FLT_SPREAD,
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_TYPE,
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_FREQ,
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_PRICE,
CAST(NULL AS VARCHAR2(255)) AS CSDB_ISSUE_PRICE,
CAST(NULL AS VARCHAR2(255)) AS CSDB_STATUS,
CAST(NULL AS VARCHAR2(255)) AS UOC_INTEREST_PAYMENT_TYPE,
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE,
CAST(NULL AS VARCHAR2(255)) AS UOC_BUCKET_SIZE,
CAST(NULL AS VARCHAR2(255)) AS IS_ELIGIBLE_VIA_GUARANTOR,
CAST(NULL AS VARCHAR2(255)) AS UOC_RESIDUAL_MATURITY,
CAST(NULL AS VARCHAR2(255)) AS ACCOUNTING_TYPE,
CAST(NULL AS VARCHAR2(255)) AS GROUPING_VALUE,
CAST(NULL AS VARCHAR2(255)) AS SPREAD_TYPE,
CAST(NULL AS VARCHAR2(255)) AS TMS_ELIGIBILITY_TYPE,
CAST(NULL AS VARCHAR2(255)) AS REF_AMOUNT_BUCKET,
CAST(NULL AS VARCHAR2(255)) AS ISSUANCE_TYPE,
CAST(NULL AS VARCHAR2(255)) AS BRANCH6_ID,
CAST(NULL AS VARCHAR2(255)) AS BRANCH7_ID,
CAST(NULL AS VARCHAR2(255)) AS BRANCH8_ID,
CAST(NULL AS VARCHAR2(255)) AS BRANCH9_ID,
CAST(NULL AS VARCHAR2(255)) AS TMS_NAME,
CAST(NULL AS VARCHAR2(255)) AS CSDB_CSD,
CAST(NULL AS VARCHAR2(255)) AS CSDB_SECURITISATION_TYPE,
CAST(NULL AS VARCHAR2(255)) AS CFI_CLASSIFICATION,
CAST(NULL AS VARCHAR2(255)) AS INSTRUMENT_ESA_95_CLASS,
CAST(NULL AS VARCHAR2(255)) AS INSTR_ESA_95_CLASS_VAL_TYPE,
CAST(NULL AS VARCHAR2(255)) AS INSTRUMENT_ESA_2010_CLASS,
CAST(NULL AS VARCHAR2(255)) AS REDEMPTION_CURRENCY,
CAST(NULL AS VARCHAR2(255)) AS CSDB_SUPPL_INFO,
CAST(NULL AS VARCHAR2(255)) AS UOC_RESET_PERIOD_MORE_ONE_YEAR,
CAST(NULL AS VARCHAR2(255)) AS CAP,
CAST(NULL AS VARCHAR2(255)) AS REFERENCERATE,
CAST(NULL AS VARCHAR2(255)) AS REFERENCERATECOMMENT,
CAST(NULL AS VARCHAR2(255)) AS BBG_TICKER,
CAST(NULL AS VARCHAR2(255)) AS BBG_STRIP_TYPE,
CAST(NULL AS VARCHAR2(255)) AS BBG_MTY_YEARS_TDY,
CAST(NULL AS VARCHAR2(255)) AS BBG_EXCHANGE_CODE,
CAST(NULL AS VARCHAR2(255)) AS BBG_PRVT_PLACE,
CAST(NULL AS VARCHAR2(255)) AS BBG_PUTABLE,
CAST(NULL AS VARCHAR2(255)) AS BBG_ISSUER_INDUSTRY,
CAST(NULL AS VARCHAR2(255)) AS BBG_INFLATION_LINKED_INDICATOR,
CAST(NULL AS VARCHAR2(255)) AS CSDB_IS_PRIVATE_PLACEMENT,
CAST(NULL AS VARCHAR2(255)) AS CLASSIFICATION_TMS,
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE_TMS,
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE_CSDB,
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_TMS,
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_MDP,
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_CSDB,
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE_MDP,
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE_CSDB,
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR_CEPH,
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR_CSDB,
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE_TMS,
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE_MDP,
CAST(NULL AS VARCHAR2(255)) AS CP_PROGRAMME,
CAST(NULL AS VARCHAR2(255)) AS C2D_ELA_ABS_TYPE,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_MATURITY_DATE,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_ASSET_TYPE,
CAST(NULL AS VARCHAR2(255)) AS C2D_ELA_ASSET_TYPE,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_DENOMINATION,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_OA_ID,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_CONTRACT_ID,
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_INSTRMNT_ID,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULTED_DATE,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULTED_STANDARD,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_QUOTE_CONVENTION,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_RESTRUCTURING_TYPE,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_MATURITY_DATE,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_TENOR,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_SENIORITY,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_INSTRUMENT_TYPE,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_CURRENCY,
CAST(NULL AS VARCHAR2(255)) AS TMS_FUTURES_MATURITY_BUCKET,
CAST(NULL AS VARCHAR2(255)) AS BBG_FLOATER,
CAST(NULL AS VARCHAR2(255)) AS BBG_INDUSTRY_GROUP,
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG1,
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG2,
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG3,
CAST(NULL AS VARCHAR2(255)) AS REU_SECURITY_DESCRIPTION,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_CATEGORY,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_CATEGORY_DESCRIPTION,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_TYPE,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_TYPE_DESCRIPTION,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_SUBTYPE,
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_SUBTYPE_DESCRIPTION,
CAST(NULL AS VARCHAR2(255)) AS REU_ISO_CURRENCY,
CAST(NULL AS VARCHAR2(255)) AS BBG_DES_NOTES,
CAST(NULL AS VARCHAR2(255)) AS BBG_INDUSTRY_SUBGROUP,
CAST(NULL AS VARCHAR2(255)) AS BBG_SECURITY_TYP,
CAST(NULL AS VARCHAR2(255)) AS BBG_SECURITY_TYP2,
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
FROM CHECK_GET_ASSET_KEY

View File

@@ -0,0 +1,190 @@
-- This model incrementally updates the target table DW_TMP.TE_ASSET_TRANSACTIONAL_DATA_test by adding new rows and updating the already existing ones.
-- Wether the row is new or existing one is determined by ASSET_KEY column.
-- The model is a part of the mapping m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD.
-- Pre-/post-hook log data into the control tables.
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
{{ config(materialized='incremental',
incremental_strategy='merge',
unique_key='ASSET_FK',
tags = ['m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='DW_TMP',
alias = 'TE_ASSET_TRANSACTIONAL_DATA_test',
merge_update_columns = ['ASSET_FK',
'C2D_ABS_LAST_COUPON_DATE',
'C2D_COUPON_RATE',
'EA_COUPON_FREQ',
'EA_NOMINAL_VALUE_OUTSTAND_EUR',
'EA_ACTUAL_VALUE_OUTSTAND_EUR',
'STRIPS',
'EA_NOMINAL_VALUE_OUTSTAND_LC',
'EA_ACTUAL_VALUE_OUTSTAND_LC']
) }}
-- Set sequence_name: to be used for the generation of the next sequence value.
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
-- Select data from Source Qualifier
-- Implement the GET_ASSET_CODE_MAP_CACHE lookup:
-- - join with DW_REF_MAIN.ASSET_CODE_TYPE
-- - join with DW_RAR.MU_ASSET_CODE_MAP
-- - get the lookup ASSET_FK for the corresponding ISIN
-- Perform some data transformation
-- Filter data: keep rows where ASSET_FK is not null
WITH PASS_THROUGH AS (
SELECT CASE
WHEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL THEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK
ELSE NULL
END AS ASSET_FK,
ABS_DATE_LAST_COUPON,
COUPON_RATE,
COUPON_FREQUENCY,
EA_NOMINAL_VALUE_OUTSTAND_EUR,
EA_ACTUAL_VALUE_OUTSTAND_EUR,
STRIPS,
EA_NOMINAL_VALUE_OUTSTAND_LC,
EA_ACTUAL_VALUE_OUTSTAND_LC,
ROW_NUMBER() OVER (PARTITION BY ASSET_FK ORDER BY ASSET_FK) AS rn
FROM {{ ref("m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_TE_ASSET_SQ") }} SQ
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
FROM DW_REF_MAIN.ASSET_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
FROM DW_RAR.MU_ASSET_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
),
-- Select data from the previous subquery.
-- Join with the target table DW_TMP.TE_ASSET_test.
-- Update information in columns based on the current target table data and the incoming values.
-- Remove duplicate rows.
CHECK_GET_ASSET_KEY AS (
SELECT inp.ASSET_FK,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.ABS_DATE_LAST_COUPON
ELSE
CASE
WHEN lkp_trans.C2D_ABS_LAST_COUPON_DATE IS NOT NULL THEN lkp_trans.C2D_ABS_LAST_COUPON_DATE
ELSE inp.ABS_DATE_LAST_COUPON
END
END AS C2D_ABS_LAST_COUPON_DATE,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.COUPON_RATE
ELSE
CASE
WHEN lkp_trans.C2D_COUPON_RATE IS NOT NULL THEN lkp_trans.C2D_COUPON_RATE
ELSE inp.COUPON_RATE
END
END AS C2D_COUPON_RATE,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.COUPON_FREQUENCY
ELSE
CASE
WHEN lkp_trans.EA_COUPON_FREQ IS NOT NULL THEN lkp_trans.EA_COUPON_FREQ
ELSE inp.COUPON_FREQUENCY
END
END AS EA_COUPON_FREQ,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_NOMINAL_VALUE_OUTSTAND_EUR
ELSE
CASE
WHEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_EUR IS NOT NULL THEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_EUR
ELSE inp.EA_NOMINAL_VALUE_OUTSTAND_EUR
END
END AS EA_NOMINAL_VALUE_OUTSTAND_EUR,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_ACTUAL_VALUE_OUTSTAND_EUR
ELSE
CASE
WHEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_EUR IS NOT NULL THEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_EUR
ELSE inp.EA_ACTUAL_VALUE_OUTSTAND_EUR
END
END AS EA_ACTUAL_VALUE_OUTSTAND_EUR,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.STRIPS
ELSE
CASE
WHEN lkp_trans.STRIPS IS NOT NULL THEN lkp_trans.STRIPS
ELSE inp.STRIPS
END
END AS STRIPS,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_NOMINAL_VALUE_OUTSTAND_LC
ELSE
CASE
WHEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_LC IS NOT NULL THEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_LC
ELSE inp.EA_NOMINAL_VALUE_OUTSTAND_LC
END
END AS EA_NOMINAL_VALUE_OUTSTAND_LC,
CASE
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_ACTUAL_VALUE_OUTSTAND_LC
ELSE
CASE
WHEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_LC IS NOT NULL THEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_LC
ELSE inp.EA_ACTUAL_VALUE_OUTSTAND_LC
END
END AS EA_ACTUAL_VALUE_OUTSTAND_LC
FROM PASS_THROUGH inp
LEFT JOIN DW_TMP.TE_ASSET_TRANSACTIONAL_DATA_test lkp_trans ON lkp_trans.ASSET_FK = inp.ASSET_FK
WHERE rn=1
)
-- Select data from previous subquery.
-- Generate a new ASSET_FK value if null.
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
SELECT CASE WHEN ASSET_FK IS NULL THEN {{ sequence_next_value(sequence_name) }}
ELSE ASSET_FK
END AS ASSET_FK,
C2D_ABS_LAST_COUPON_DATE,
C2D_COUPON_RATE,
EA_COUPON_FREQ,
EA_NOMINAL_VALUE_OUTSTAND_EUR,
EA_ACTUAL_VALUE_OUTSTAND_EUR,
STRIPS,
EA_NOMINAL_VALUE_OUTSTAND_LC,
EA_ACTUAL_VALUE_OUTSTAND_LC,
CAST(NULL AS VARCHAR2(255)) AS CSDB_LAST_COUPON_RATE,
CAST(NULL AS VARCHAR2(255)) AS CSDB_LAST_COUPON_DATE,
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE,
CAST(NULL AS VARCHAR2(255)) AS BBG_ISSUE_AMT,
CAST(NULL AS VARCHAR2(255)) AS COUPON_CURRENCY,
CAST(NULL AS VARCHAR2(255)) AS CSDB_ISSUE_AMT,
CAST(NULL AS VARCHAR2(255)) AS DATE_BASIS,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_EUR,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2_EUR,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2_TYPE,
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ,
CAST(NULL AS VARCHAR2(255)) AS WAL,
CAST(NULL AS VARCHAR2(255)) AS WAL_DATE,
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE_TMS,
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE_MDP,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC_MDP,
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC_CSDB,
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ_TMS,
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ_CSDB,
CAST(NULL AS VARCHAR2(255)) AS TMS_BISIP_DURATION,
CAST(NULL AS VARCHAR2(255)) AS BBG_MTY_YEARS_TDY,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_COUPON_RATE,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_PAYMENT_FREQUENCY,
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULT_PROBABILITY,
CAST(NULL AS VARCHAR2(255)) AS BBG_CUR_MKT_CAP,
CAST(NULL AS VARCHAR2(255)) AS BBG_YAS_YLD_SPREAD,
CAST(NULL AS VARCHAR2(255)) AS BBG_Z_SPRD_MID,
CAST(NULL AS VARCHAR2(255)) AS BBG_BLP_I_SPRD_MID,
CAST(NULL AS VARCHAR2(255)) AS BBG_MID_G_SPREAD,
CAST(NULL AS VARCHAR2(255)) AS BBG_IDX_RATIO,
CAST(NULL AS VARCHAR2(255)) AS FIXING_RATE,
CAST(NULL AS VARCHAR2(255)) AS SPREAD,
CAST(NULL AS VARCHAR2(255)) AS FLOOR,
CAST(NULL AS VARCHAR2(255)) AS CAP,
CAST(NULL AS VARCHAR2(255)) AS FACTOR,
CAST(NULL AS VARCHAR2(255)) AS BBG_DVD_CRNCY,
CAST(NULL AS VARCHAR2(255)) AS BBG_DVD_PAY_DT,
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
FROM CHECK_GET_ASSET_KEY

View File

@@ -0,0 +1,87 @@
{{
config(
materialized="incremental",
incremental_strategy="merge",
unique_key=["asset_fk"],
incremental_predicates=[
"DBT_INTERNAL_SOURCE.UPD_INS = 'U'"
],
merge_update_columns=["ea_eligibility_status", "limit_amount", "tms_eligibility_type", "isin_with_larger_limit", "indep_subprocess_fk"],
schema="DW_TMP",
alias="TE_ASSET_ELIGIBILITY_LIMIT",
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
tags=["m_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT", "A_TASK_HISTORY_TARGET_insert"],
)
}}
WITH EA_SQ AS (SELECT 'ISIN' AS CODE_TYPE_ISIN,
TRIM(ISIN) AS CODE_VALUE_ISIN,
STATUS
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET")}}
WHERE ACTION_TYPE = 'U'),
UMI_SQ AS (SELECT 'TMS' AS CODE_TYPE_TMS,
TRIM(UMI_ID) AS CODE_VALUE_TMS,
OUTSTANDING_SIZE
FROM {{ source("sf_tms", "UMISECURITYINFO") }} ),
GET_ASSET_CODE_MAP AS (SELECT * FROM {{ ref("LKP_MU_ASSET_CODE_MAP_ASSET_FK")}}),
ASSET_ENRICHMENT AS (SELECT DISTINCT DACM.ASSET_FK AS ASSET_FK,
AE.INSTR_REPORT_TMS_ELIGIBILITY_TYPE AS INSTR_REPORT_TMS_ELIGIBILITY_TYPE
FROM {{ source("sf_tms", "ASSET_ENRICHMENT") }} AE
JOIN (SELECT * FROM GET_ASSET_CODE_MAP WHERE CODE_TYPE_ID in ('ISIN','TMS')) DACM
ON AE.TYPE4_TMS=DACM.CODE_VALUE),
ISIN_WITH_LARGER_LIMITS AS (SELECT DISTINCT DACM.ASSET_FK AS ASSET_FK
FROM {{ source("sf_led", "ISIN_WITH_LARGER_LIMITS")}} IWLL
JOIN (SELECT * FROM GET_ASSET_CODE_MAP WHERE CODE_TYPE_ID in ('ISIN','TMS')) DACM
ON IWLL.IDENTIFIER_TYPE=DACM.CODE_TYPE_ID
AND IWLL.IDENTIFIER =DACM.CODE_VALUE),
UMI_FLTR AS (SELECT code_type_tms, code_value_tms, outstanding_size, asset_fk, a_valid_from, a_valid_to
FROM UMI_SQ sq
LEFT JOIN GET_ASSET_CODE_MAP gacm
ON sq.CODE_TYPE_TMS = gacm.code_type_id AND sq.code_value_tms = gacm.code_value
WHERE ASSET_FK IS NOT NULL),
EA_FLTR AS (SELECT code_type_isin, code_value_isin, status, asset_fk, a_valid_from, a_valid_to
FROM EA_SQ sq
LEFT JOIN GET_ASSET_CODE_MAP gacm
ON sq.CODE_TYPE_ISIN = gacm.code_type_id AND sq.code_value_isin = gacm.code_value
WHERE ASSET_FK IS NOT NULL),
EA_UMI AS (SELECT NVL(EA.ASSET_FK, UMI.ASSET_FK) AS ASSET_FK,
STATUS,
OUTSTANDING_SIZE
FROM EA_FLTR EA
FULL OUTER JOIN UMI_FLTR UMI
ON EA.ASSET_FK = UMI.ASSET_FK),
SOURCES AS (SELECT EU.ASSET_FK,
EU.STATUS AS EA_ELIGIBILITY_STATUS,
AE.INSTR_REPORT_TMS_ELIGIBILITY_TYPE AS TMS_ELIGIBILITY_TYPE,
EU.OUTSTANDING_SIZE AS LIMIT_AMOUNT,
CASE WHEN IWILL.ASSET_FK IS NULL THEN 'N' ELSE 'Y' END AS ISIN_WITH_LARGER_LIMIT
FROM EA_UMI EU
LEFT JOIN ASSET_ENRICHMENT AE
ON EU.ASSET_FK = AE.ASSET_FK
LEFT JOIN ISIN_WITH_LARGER_LIMITS IWILL
ON EU.ASSET_FK = IWILL.ASSET_FK),
FINAL_LOOKUP AS (SELECT SRC.EA_ELIGIBILITY_STATUS,
SRC.TMS_ELIGIBILITY_TYPE,
SRC.LIMIT_AMOUNT,
SRC.ISIN_WITH_LARGER_LIMIT,
CASE WHEN AEL.ASSET_FK IS NULL THEN 'I'
WHEN NVL(AEL.EA_ELIGIBILITY_STATUS, '01') = NVL(SRC.EA_ELIGIBILITY_STATUS, '01') AND NVL(AEL.LIMIT_AMOUNT, -999999999) = NVL(SRC.LIMIT_AMOUNT,-999999999)
AND NVL(AEL.TMS_ELIGIBILITY_TYPE, '>>NULL<<') = NVL(SRC.TMS_ELIGIBILITY_TYPE, '>>NULL<<') AND NVL(AEL.ISIN_WITH_LARGER_LIMIT, '>>NULL<<') = NVL(SRC.ISIN_WITH_LARGER_LIMIT,'>>NULL<<')
THEN 'N' ELSE 'U' END AS UPD_INS,
SRC.ASSET_FK,
CAST(NULL AS VARCHAR2(1 CHAR)) AS TMS_PSPP_BLOCKED,
(SELECT MAX(A_TASK_HISTORY_KEY) FROM CT_MRDS.A_TASK_HISTORY WHERE TASK_RUN_ID = '{{ invocation_id}}') AS INDEP_SUBPROCESS_FK
FROM SOURCES SRC
LEFT JOIN {{ this }} AEL
ON SRC.ASSET_FK = AEL.ASSET_FK)
SELECT ASSET_FK,
EA_ELIGIBILITY_STATUS,
TMS_ELIGIBILITY_TYPE,
LIMIT_AMOUNT,
ISIN_WITH_LARGER_LIMIT,
TMS_PSPP_BLOCKED,
INDEP_SUBPROCESS_FK,
UPD_INS
FROM FINAL_LOOKUP
WHERE UPD_INS IN ('I','U')

View File

@@ -0,0 +1,33 @@
{{ config(materialized='incremental',
incremental_strategy='append',
schema='CT_MRDS',
alias='ERR_LOG',
tags=["m_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT"],
) }}
{% set sequence_name = source("ct_rar_sequences", "AK_ERR_LOG") %}
WITH UMI_SQ AS (SELECT A_WORKFLOW_HISTORY_KEY,
'TMS' AS CODE_TYPE_TMS,
TRIM(UMI_ID) AS CODE_VALUE_TMS,
OUTSTANDING_SIZE
FROM {{ source("sf_tms", "UMISECURITYINFO") }} )
SELECT {{ sequence_next_value(sequence_name) }} AS ERR_LOG_KEY,
A_WORKFLOW_HISTORY_KEY, -- will be target key
22 AS ERR_MESSAGE_FK,
2 AS ERR_SEVERITY_FK,
'{{ var("orchestration_run_id") }}' AS ERR_WORKFLOW_RUN_ID,
'{{ var("workflow_name") }}' as ERR_WORKFLOW_NAME,
'm_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT' as ERR_MAPPING_NAME,
'm_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT' as ERR_LOCATION,
'SF_TMS_UMISECURITYINFO' AS ERR_SOURCE,
'UMI_ID' AS ERR_KEY_BUSINESS,
'TMS_CODE_VALUE' AS ERR_KEY_BUSINESS_VALUE,
'A_WORKFLOW_HISTORY_KEY' AS ERR_KEY_TECHNICAL,
TO_CHAR(A_WORKFLOW_HISTORY_KEY) AS ERR_KEY_TECHNICAL_VALUE,
'UMI_ID Code Value not found in DW_RAR_MU_ASSET_CODE_MAP. The source row will not be processed.' AS ERR_DESCRIPTION,
(SELECT ERR_MESSAGE FROM CT_RAR.ERR_MESSAGE WHERE ERR_MESSAGE_KEY = 22) AS ERR_MESSAGE,
A_WORKFLOW_HISTORY_KEY AS INDEP_SUBPROCESS_FK -- will be indep subprocess key
FROM UMI_SQ sq
LEFT JOIN {{ ref("LKP_MU_ASSET_CODE_MAP_ASSET_FK")}} acm
ON sq.CODE_TYPE_TMS = acm.code_type_id AND sq.code_value_tms = acm.code_value
WHERE ASSET_FK IS NULL

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias = 'EA_ADDITIONAL_GUARANTOR_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ADDITIONAL_GUARANTOR_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,141 @@
-- This model incrementally updates the target table sf_c2d.EA_ELIGIBLE_ASSET_test by adding new rows and updating the already existing ones.
-- Wether the row is new or existing one is determined by ISIN column.
-- The model is a part of the mapping m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET.
-- Pre-/post-hook log data into the control tables.
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
{{
config(
materialized='incremental',
incremental_strategy='merge',
schema = 'sf_c2d',
unique_key='ISIN',
merge_exclude_columns=['EMERGENCY_COLLATERAL','GUAR_OTHER_NAME','ISS_OTHER_NAME'],
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET', 'A_TASK_HISTORY_TARGET_insert'],
alias='EA_ELIGIBLE_ASSET_test',
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}"
)
}}
-- Create lookup:
-- join SQ with the target model
-- get the latest DATE_TIME_OF_ENTRY timestamp for each ISIN from the current target table data.
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset_test sf_c2d_ea_eligible_asset
RIGHT JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
-- Join SQ table with the lookup
-- Filter the incoming data: keep rows where ISIN is new or DATE_TIME_OF_ENTRY is later than the lookup one.
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.*
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY )
-- Select the filtered data with some naming adjustments.
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
SELECT A_KEY,
A_WORKFLOW_HISTORY_KEY,
ISIN,
ORN,
ASSET_NAME,
DENOMINATION,
COUNTRY_OF_LOCATION,
ASSET_TYPE,
PRICE_QUOTATION,
COUPON_DEFINITION,
COUPON_RATE,
COUPON_FREQUENCY,
ISSUANCE_DATE,
MATURITY_DATE,
NOMINAL_VAL_OUTSTANDING,
ISS_GROUP,
ISS_LT_RATING_ID,
ISS_LT_RATING_DATE,
ISS_ST_RATING_ID,
ISS_ST_RATING_DATE,
ISS_CODE_TYPE,
ISS_CODE_VALUE,
ISS_NAME,
ISS_RESIDENCE,
ISS_PSE,
GUAR_GROUP,
GUAR_LT_RATING_ID,
GUAR_LT_RATING_DATE,
GUAR_CODE_TYPE,
GUAR_CODE_VALUE,
GUAR_NAME,
GUAR_RESIDENCE,
GUAR_PSE,
NCB_COMMENT,
REFERENCE_MARKET,
LT_RATING_ID,
LT_RATING_DATE,
LT_RATING_PRG_NAME,
LT_RATING_2_ID,
LT_RATING_2_DATE,
LT_RATING_2_PRG_NAME,
ST_RATING_ID,
ST_RATING_DATE,
ST_RATING_PRG_NAME,
ST_RATING_2_ID,
ST_RATING_2_DATE,
ST_RATING_2_PRG_NAME,
ICAS_RATING,
OUTRIGHT_PURCHASE,
CRD_OR_EQUIVALENT,
DATE_TIME_OF_ENTRY,
SENDER_CODE,
STATUS,
DATE_TIME_OF_STATUS,
VALIDATION_STATUS,
LIQUIDITY_CLASS,
ECB_COMMENT,
LOAN_LEVEL_DATA,
LOAN_LEVEL_DATA_LAST_DATE,
ABS_PUBL_LAST_SURVEILLANCE,
ABS_TYPE,
ABS_DATE_LAST_COUPON,
CEPH_INFLATION_LINKED,
CEPH_CALLABLE_PUTABLE,
CEPH_SINKABLE,
CEPH_COMMENT,
A_EA_HEADER_FK,
ABS_PUBL_LAST_SURVEILLANCE2,
ACTION_TYPE,
ACTION_DATE,
COVERED_BOND_OWN_USE,
CREDIT_QUALITY_RANK,
EFFECTIVE_MATURITY_DATE,
EXTENDED_MATURITY_DATE,
EXTENDIBLE,
EXTENSION_OPTION_EXERCISED,
EXTENSION_TRIGGER,
GUAR_LEI,
GUAR_ASSESSMENT,
ISS_LEI,
NON_OWN_USE_HAIRCUT,
OWN_USE_HAIRCUT,
WAL,
WAL_REF_DATE,
ACTUAL_OUTSTANDING_VALUE,
STRIPS,
UPDATED_BY,
O_SNAPSHOT_DATE as SNAPSHOT_DATE,
DBRS_PROGRAMME_ID,
FITCH_PROGRAMME_ID,
MOODY_PROGRAMME_ID,
SNP_PROGRAMME_ID,
REFERENCE_RATE,
GREEN_SUSTAINABLE,
TEST_INDICATOR,
MPEC_RIAD_CROSSCHECK,
SCOPE_PROGRAMME_ID,
CREREF_PROGRAMME_ID,
CAST(NULL AS VARCHAR2(255)) AS EMERGENCY_COLLATERAL,
CAST(NULL AS VARCHAR2(255)) AS GUAR_OTHER_NAME,
CAST(NULL AS VARCHAR2(255)) AS ISS_OTHER_NAME
FROM FILTERED_EA_ELIGIBLE_ASSETS

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_FOREIGN_EXCHANGE_SWAP_COUNT_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_FOREIGN_EXCHANGE_SWAP_COUNT_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_INTEREST_RATE_SWAP_PROVIDER_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_INTEREST_RATE_SWAP_PROVIDER_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_ISSUER_ACCOUNT_BANK_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ISSUER_ACCOUNT_BANK_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_LIQUIDITY_SUPPORT_PROVIDER_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_LIQUIDITY_SUPPORT_PROVIDER_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_ORIGINATOR_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ORIGINATOR_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,23 @@
{{ config(materialized='table',
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
schema='sf_c2d',
alias='EA_SERVICE_test'
) }}
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
GROUP BY sf_c2d_ea_eligible_asset.ISIN
),
FILTERED_EA_ELIGIBLE_ASSETS AS (
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
SELECT SQ.*
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_SERVICER_SQ")}} SQ
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK

View File

@@ -0,0 +1,63 @@
{{ config(
materialized = "table",
schema = "SF_RIAD",
alias = "ENTTY_IDNTFRS_FLTTND",
tags = ["m_DWH_PRELOAD_SF_RIAD_ENTTY_IDNTFRS_FLTTND_OU_RIAD_ENTTY_IDNTFRS_FLTTND", "A_TASK_HISTORY_TARGET_insert"],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}"
) }}
SELECT
A_KEY,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY,
ENTTY_RIAD_ID,
BSNSS_VLD_FRM,
BSNSS_VLD_T,
CNTRY,
DT_BRTH,
DT_CLS,
ENTTY_RIAD_CD,
NM_ENTTY,
ECNMC_ACTVTY,
INSTTTNL_SCTR,
INSTTTNL_SCTR_DTL,
PSTL_BX_CD,
STRT,
PSTL_CD,
CTY,
IS_INCTV,
IS_UCITS_CMPLNT,
INTRNTNL_ORGNSTN_CD,
BLNC_SHT_TTL_DMSTC,
NT_ASSTS_DMSTC,
COLLATERALGROUP,
INSTTTNL_SCTR_CNTRL,
IS_C2D_RLVNT,
IS_RAR_RLVNT,
ARTCL_123_STTS,
CSPP_ASSSSMNT,
ENTRY_DATE,
RIAD,
AVID,
BIC,
LEI,
NCB,
REU,
UCDB_CD,
VAT,
TMS_CD,
BLMBRG_CD,
C2D_CD,
ULTIMATEHEAD_ENTTY_RIAD_CD,
ULTIMATEHEAD_ENTTY_RIAD_ID,
NMBR_EMPLYS,
ENTRPRS_SZ,
TYP_BNKNG_LCNS,
LGL_FRM,
BLNC_SHT_TTL,
BLNC_SHT_TTL_GRP,
CMMNT
FROM
{{ ref(
"m_DWH_PRELOAD_SF_RIAD_ENTTY_IDNTFRS_FLTTND_OU_RIAD_ENTTY_IDNTFRS_FLTTND_SQ"
) }}

View File

@@ -0,0 +1,173 @@
{{ config(materialized='incremental',
incremental_strategy='append',
unique_key='ASSET_FK',
tags = ['m_DWH_RAT_TE_ASSET_RATING_SF_C2D_EA_ELIGIBLE_ASSET_LOAD','A_TASK_HISTORY_TARGET_insert'],
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
schema='DW_TMP',
alias = 'TE_ASSET_RATING_test'
) }}
WITH MAPPLET AS (
SELECT ASSET_FK,
ISIN_CODE_VALUE AS ISIN,
RTRIM(LTRIM(ST_RATING_ID)) AS ST_RATING_ID,
RTRIM(LTRIM(ST_RATING_PRG_NAME)) AS ST_RATING_PRG_NAME,
RTRIM(LTRIM(ST_RATING_2_ID)) AS ST_RATING_2_ID,
RTRIM(LTRIM(ST_RATING_2_PRG_NAME)) AS ST_RATING_2_PRG_NAME,
RTRIM(LTRIM(LT_RATING_ID)) AS LT_RATING_ID,
RTRIM(LTRIM(LT_RATING_PRG_NAME)) AS LT_RATING_PRG_NAME,
RTRIM(LTRIM(LT_RATING_2_ID)) AS LT_RATING_2_ID,
RTRIM(LTRIM(LT_RATING_2_PRG_NAME)) AS LT_RATING_2_PRG_NAME,
ACTION_TYPE
FROM {{ ref("m_DWH_RAT_TE_ASSET_RATING_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_SQ") }} SQ
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
FROM DW_REF_MAIN.ASSET_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
FROM DW_RAR.MU_ASSET_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
WHERE ASSET_FK IS NOT NULL
),
ST_RATING_ID_NOT_NULL AS (
SELECT ASSET_FK,
ST_RATING_ID,
ST_RATING_PRG_NAME,
CASE
WHEN SUBSTR(ST_RATING_ID,1,2)='SP' THEN 1
ELSE 0
END AS v_RATING_TYPE_SP
FROM MAPPLET
WHERE ST_RATING_ID IS NOT NULL AND SUBSTR(ST_RATING_ID,1,1)='S'
AND SUBSTR(ST_RATING_ID,2,1) IN ('A','P')
AND SUBSTR(ST_RATING_ID,3,2) IN ('MY','SP','DB','IA','SC')
),
ST_RATING_ID_NOT_NULL_2 AS (
SELECT ASSET_FK,
ST_RATING_ID AS VALUE,
ST_RATING_PRG_NAME AS PROGRAMME_NAME,
CASE
WHEN v_RATING_TYPE_SP=1 THEN 'EADB_I_ST_P_'||SUBSTR(ST_RATING_ID,3,2)
ELSE 'EADB_I_ST_'||SUBSTR(ST_RATING_ID,3,2)
END AS RATING_TYPE_FK,
'C2D_EA' AS SOURCE
FROM ST_RATING_ID_NOT_NULL
),
ST_RATING_2_ID_NOT_NULL AS (
SELECT ASSET_FK,
ST_RATING_2_ID,
ST_RATING_2_PRG_NAME,
CASE
WHEN SUBSTR(ST_RATING_2_ID,1,2)='SP' THEN 1
ELSE 0
END AS v_RATING_TYPE_SP
FROM MAPPLET
WHERE ST_RATING_2_ID IS NOT NULL
AND SUBSTR(ST_RATING_2_ID,1,1)='S'
AND SUBSTR(ST_RATING_2_ID,2,1) IN ('A','P')
AND SUBSTR(ST_RATING_2_ID,3,2) IN ('MY','SP','DB','IA','SC')
),
ST_RATING_2_ID_NOT_NULL_2 AS (
SELECT ASSET_FK,
ST_RATING_2_ID AS VALUE,
ST_RATING_2_PRG_NAME AS PROGRAMME_NAME,
CASE
WHEN v_RATING_TYPE_SP=1 THEN 'EADB_I_ST_P_'||SUBSTR(ST_RATING_2_ID,3,2)
ELSE 'EADB_I_ST_'||SUBSTR(ST_RATING_2_ID,3,2)
END AS RATING_TYPE_FK,
'C2D_EA' AS SOURCE
FROM ST_RATING_2_ID_NOT_NULL
),
LT_RATING_ID_NOT_NULL AS (
SELECT ASSET_FK,
LT_RATING_ID,
LT_RATING_PRG_NAME,
CASE
WHEN SUBSTR(LT_RATING_ID,1,2)='LP' THEN 1
ELSE 0
END AS v_RATING_TYPE_LP
FROM MAPPLET
WHERE LT_RATING_ID IS NOT NULL AND SUBSTR(LT_RATING_ID,1,1)='L'
AND SUBSTR(LT_RATING_ID,2,1) IN ('A','P')
AND SUBSTR(ST_RATING_ID,3,2) IN ('MY','SP','DB','IA','SC')
),
LT_RATING_ID_NOT_NULL_2 AS(
SELECT ASSET_FK,
LT_RATING_ID AS VALUE,
LT_RATING_PRG_NAME AS PROGRAMME_NAME,
CASE
WHEN v_RATING_TYPE_LP=1 THEN 'EADB_I_LT_P_'||SUBSTR(LT_RATING_ID,3,2)
ELSE 'EADB_I_LT_'||SUBSTR(LT_RATING_ID,3,2)
END AS RATING_TYPE_FK,
'C2D_EA' AS SOURCE
FROM LT_RATING_ID_NOT_NULL
),
LT_RATING_2_ID_NOT_NULL AS (
SELECT ASSET_FK,
LT_RATING_2_ID,
LT_RATING_2_PRG_NAME,
CASE
WHEN SUBSTR(LT_RATING_2_ID,1,2)='LP' THEN 1
ELSE 0
END AS v_RATING_TYPE_LP
FROM MAPPLET
WHERE LT_RATING_2_ID IS NOT NULL AND SUBSTR(LT_RATING_2_ID,1,1)='L'
AND SUBSTR(LT_RATING_2_ID,2,1) IN ('A','P')
AND SUBSTR(ST_RATING_2_ID,3,2) IN ('MY','SP','DB','IA','SC')
),
LT_RATING_2_ID_NOT_NULL_2 AS(
SELECT ASSET_FK,
LT_RATING_2_ID AS VALUE,
LT_RATING_2_PRG_NAME AS PROGRAMME_NAME,
CASE
WHEN v_RATING_TYPE_LP=1 THEN 'EADB_I_LT_P_'||SUBSTR(LT_RATING_2_ID,3,2)
ELSE 'EADB_I_LT_'||SUBSTR(LT_RATING_2_ID,3,2)
END AS RATING_TYPE_FK,
'C2D_EA' AS SOURCE
FROM LT_RATING_2_ID_NOT_NULL
),
UNION_SQ AS (
SELECT * FROM ST_RATING_ID_NOT_NULL_2
UNION ALL
SELECT * FROM ST_RATING_2_ID_NOT_NULL_2
UNION ALL
SELECT * FROM LT_RATING_ID_NOT_NULL_2
UNION ALL
SELECT * FROM LT_RATING_2_ID_NOT_NULL_2),
DEDUPLICATED AS (
SELECT ASSET_FK,
VALUE,
PROGRAMME_NAME,
RATING_TYPE_FK,
SOURCE,
ROW_NUMBER() OVER (PARTITION BY ASSET_FK, RATING_TYPE_FK ORDER BY ASSET_FK ASC, RATING_TYPE_FK ASC) AS rn
FROM UNION_SQ)
SELECT ASSET_FK,
VALUE,
PROGRAMME_NAME,
RATING_TYPE_FK,
SOURCE,
CAST(NULL AS VARCHAR2(255)) AS DATE_,
CAST(NULL AS VARCHAR2(255)) AS OTHER_NOTES,
CAST(NULL AS VARCHAR2(255)) AS IS_PRELIMENARY,
CAST(NULL AS VARCHAR2(255)) AS WATCHLIST_VALUE,
CAST(NULL AS VARCHAR2(255)) AS WATCHLIST_DATE,
CAST(NULL AS VARCHAR2(255)) AS OUTLOOK_VALUE,
CAST(NULL AS VARCHAR2(255)) AS OUTLOOK_DATE,
CAST(NULL AS VARCHAR2(255)) AS RATING_ACTION,
CAST(NULL AS VARCHAR2(255)) AS RATING_ACTION_DATE,
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK -- Added to replicate the original target table.
FROM DEDUPLICATED WHERE rn=1

View File

@@ -0,0 +1,201 @@
{{ config(
materialized = "incremental",
incremental_strategy="append",
schema = "DW_TMP",
alias = "TE_INSTITUTION_RATING_GUAR",
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
pre_hook = "{{ control_model_start() }}",
post_hook = "{{ control_model_end('TRG') }}"
) }}
WITH EVALUATE_VALUE AS (
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
SELECT
CASE
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
ELSE SQ.ISS_CODE_TYPE
END AS ISS_CODE_TYPE,
SQ.ISS_CODE_VALUE,
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
CASE
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
--:UDF.UDF_TRIM(inp_CODE_TYPE)
--LTRIM(RTRIM(input_string))
WHEN SQ.GUAR_CODE_TYPE IS NULL
OR LENGTH(LTRIM(RTRIM(SQ.GUAR_CODE_TYPE))) = 0 THEN 'NCB'
ELSE UPPER(LTRIM(RTRIM(CAST(SQ.GUAR_CODE_TYPE AS VARCHAR2(255)))))
END AS CODE_TYPE,
SQ.GUAR_CODE_VALUE AS CODE_VALUE,
SQ.ISS_LT_RATING_ID,
SQ.ISS_ST_RATING_ID,
SQ.GUAR_LT_RATING_ID,
SQ.A_WORKFLOW_HISTORY_KEY
FROM
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
WHERE SQ.ACTION_TYPE = 'U'
),
LKP_CODE_TYPE_NO AS (
SELECT
EVALUATE_VALUE.CODE_TYPE AS CODE_TYPE_NO,
EVALUATE_VALUE.CODE_TYPE AS GUAR_CODE_TYPE,
EVALUATE_VALUE.CODE_VALUE AS GUAR_CODE_VALUE,
EVALUATE_VALUE.GUAR_LT_RATING_ID,
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID AS CODE_TYPE_NO_ID,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE
FROM EVALUATE_VALUE
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
FROM DW_REF_MAIN.INSTITUTION_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_INSTITUTION_CODE_TYPE
ON DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(EVALUATE_VALUE.CODE_TYPE)))
LEFT JOIN (SELECT INSTITUTION_FK , CODE_TYPE_NO_ID, CODE_VALUE
FROM DW_RAR.MU_INSTITUTION_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_INSTITUTION_CODE_MAP
ON DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO
AND DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(EVALUATE_VALUE.CODE_VALUE))
),
EXP_GET_INSTITUTION_KEY AS (
SELECT
--iif(isnull(CODE_VALUE), null, Inp_INSTITUTION_FK)
CASE
WHEN LKP_CODE_TYPE_NO.INSTITUTION_FK IS NULL THEN NULL
ELSE LKP_CODE_TYPE_NO.INSTITUTION_FK
END AS INSTITUTION_FK,
--iif(isnull(CODE_VALUE), null, inp_CODE_TYPE_NO)
CASE
WHEN LKP_CODE_TYPE_NO.CODE_VALUE IS NULL THEN NULL
ELSE LKP_CODE_TYPE_NO.CODE_TYPE_NO
END AS CODE_TYPE_NO,
LKP_CODE_TYPE_NO.CODE_VALUE,
LKP_CODE_TYPE_NO.CODE_TYPE_NO_ID,
LKP_CODE_TYPE_NO.CODE_VALUE,
LKP_CODE_TYPE_NO.GUAR_CODE_TYPE,
LKP_CODE_TYPE_NO.GUAR_CODE_VALUE,
LKP_CODE_TYPE_NO.GUAR_LT_RATING_ID
FROM
LKP_CODE_TYPE_NO
),
FILL_NULL_INSTITUTION_CODE_KEY AS (
SELECT
EXP_GET_INSTITUTION_KEY.INSTITUTION_FK,
--EXP_GET_INSTITUTION_KEY.CODE_TYPE_NO,
--EXP_GET_INSTITUTION_KEY.CODE_VALUE,
--EXP_GET_INSTITUTION_KEY.CODE_TYPE_NO_ID,
--EXP_GET_INSTITUTION_KEY.CODE_VALUE1,
EXP_GET_INSTITUTION_KEY.GUAR_CODE_TYPE,
EXP_GET_INSTITUTION_KEY.GUAR_CODE_VALUE,
EXP_GET_INSTITUTION_KEY.GUAR_LT_RATING_ID
FROM
EXP_GET_INSTITUTION_KEY
--not isnull(INSTITUTION_FK) AND NOT ISNULL(GUAR_LT_RATING_ID)
WHERE
EXP_GET_INSTITUTION_KEY.INSTITUTION_FK IS NOT NULL
AND EXP_GET_INSTITUTION_KEY.GUAR_LT_RATING_ID IS NOT NULL
),
EXP_MAP_GUAR_TARGET AS (
SELECT
FILL_NULL_INSTITUTION_CODE_KEY.INSTITUTION_FK,
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID AS RATING,
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='SP','EADB_O_LT_G_SP',
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='DB','EADB_O_LT_G_DB',
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='IA','EADB_O_LT_G_IA',
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='MY','EADB_O_LT_G_MY',
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='SC','EADB_O_LT_G_SC',NULL)))))
--rtrim(ltrim(RATING))
CASE
WHEN (
SUBSTR(
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
3,
2
)
) = 'SP' THEN 'EADB_O_LT_G_SP'
WHEN (
SUBSTR(
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
3,
2
)
) = 'DP' THEN 'EADB_O_LT_G_DP'
WHEN (
SUBSTR(
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
3,
2
)
) = 'IA' THEN 'EADB_O_LT_G_IA'
WHEN (
SUBSTR(
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
3,
2
)
) = 'MY' THEN 'EADB_O_LT_G_MY'
WHEN (
SUBSTR(
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
3,
2
)
) = 'SC' THEN 'EADB_O_LT_G_SC'
ELSE CAST(NULL AS VARCHAR2(255))
END AS RATING_TYPE_FK,
DW_REF_MAIN_RATING.NUMERICAL_EQUIVALENT
FROM
FILL_NULL_INSTITUTION_CODE_KEY
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON DW_REF_MAIN_RATING.RATING_VALUE_CODE = FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
),
AGG_MAX_NUM_EQUIVALENT AS (
SELECT
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT,
EXP_MAP_GUAR_TARGET.RATING
FROM
EXP_MAP_GUAR_TARGET
GROUP BY
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT,
EXP_MAP_GUAR_TARGET.RATING
ORDER BY
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT
)
SELECT
AGG_MAX_NUM_EQUIVALENT.INSTITUTION_FK,
AGG_MAX_NUM_EQUIVALENT.RATING_TYPE_FK,
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
AGG_MAX_NUM_EQUIVALENT.RATING AS VALUE,
CAST(NULL as varchar2(255)) AS DATE_,
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
CAST(NULL as varchar2(255)) AS VALUE_PD,
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
AGG_MAX_NUM_EQUIVALENT.NUMERICAL_EQUIVALENT,
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
--SETVARIABLE($$Var_m_Start_StartTime,NULL)
CAST(NULL as date) AS SNAPSHOT_DATE,
CAST(NULL as varchar2(255)) AS RATING_ACTION,
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
'C2D_EA' AS SOURCE,
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
FROM
AGG_MAX_NUM_EQUIVALENT

View File

@@ -0,0 +1,189 @@
{{ config(
materialized = "incremental",
incremental_strategy="append",
schema = "DW_TMP",
alias = "TE_INSTITUTION_RATING_LT",
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
pre_hook = "{{ control_model_start() }}",
post_hook = "{{ control_model_end('TRG') }}"
) }}
WITH SOURCE_QUALIFIER AS (
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
SELECT
CASE
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
ELSE SQ.ISS_CODE_TYPE
END AS ISS_CODE_TYPE,
SQ.ISS_CODE_VALUE,
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
CASE
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
WHEN SQ.GUAR_CODE_TYPE IS NULL THEN 'NCB'
ELSE SQ.GUAR_CODE_TYPE
END AS GUAR_CODE_TYPE,
SQ.GUAR_CODE_VALUE,
SQ.ISS_LT_RATING_ID,
SQ.ISS_ST_RATING_ID,
SQ.GUAR_LT_RATING_ID,
SQ.A_WORKFLOW_HISTORY_KEY
FROM
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
WHERE SQ.ACTION_TYPE = 'U'
),
EVALUATE_VALUE AS (
SELECT * FROM SOURCE_QUALIFIER
LEFT JOIN (
SELECT
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO,
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID --FROM DW_REF_INSTITUTION_CODE_TYPE
FROM
DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID = UPPER(LTRIM(RTRIM(SOURCE_QUALIFIER.ISS_CODE_TYPE)))
LEFT JOIN (
SELECT
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE --FROM DW_RAR_MU_INSTITUTION_CODE_MAP
FROM
DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID = LKP_CODE_TYPE_NO.CODE_TYPE_NO
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE = SOURCE_QUALIFIER.ISS_CODE_VALUE
),
MPL_GET_INSTITUTION_CODE_KEY AS (
SELECT
--iif(isnull(CODE_VALUE),null,Inp_INSTITUTION_FK)
CASE
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
ELSE CAST(EVALUATE_VALUE.INSTITUTION_FK AS VARCHAR2(255))
END AS INSTITUTION_FK,
--iif(isnull(CODE_VALUE),null,inp_CODE_TYPE_NO)
CASE
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
ELSE EVALUATE_VALUE.CODE_TYPE_NO
END AS CODE_TYPE_NO,
--NSTRING udf_clean_CODE_TYPE( inp_CODE_TYPE as string )
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
--:UDF.UDF_TRIM(inp_CODE_TYPE)
--LTRIM(RTRIM(input_string))
CASE
WHEN EVALUATE_VALUE.ISS_CODE_TYPE IS NULL
OR LENGTH(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) = 0 THEN 'NCB'
ELSE CAST(
UPPER(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) AS varchar2(255))
END AS CODE_TYPE,
EVALUATE_VALUE.CODE_VALUE,
EVALUATE_VALUE.CODE_TYPE_NO_ID,
EVALUATE_VALUE.CODE_VALUE AS CODE_VALUE1,
EVALUATE_VALUE.ISS_CODE_TYPE,
EVALUATE_VALUE.ISS_LT_RATING_ID,
EVALUATE_VALUE.ISS_ST_RATING_ID
FROM
EVALUATE_VALUE
),
FIL_NULL_INSTITUTION_CODE_KEY AS (
SELECT
MPL.INSTITUTION_FK,
MPL.ISS_CODE_TYPE,
MPL.CODE_VALUE,
MPL.ISS_LT_RATING_ID,
MPL.ISS_ST_RATING_ID
FROM
MPL_GET_INSTITUTION_CODE_KEY MPL
WHERE
MPL.INSTITUTION_FK IS NOT NULL
AND MPL.ISS_LT_RATING_ID IS NOT NULL
),
EXP_MAP_LT_TARGET AS (
SELECT
FILL_NULL.INSTITUTION_FK,
--IIF(SUBSTR(RATING,3,2)='SP','EADB_O_LT_SP',
--IIF(SUBSTR(RATING,3,2)='DB','EADB_O_LT_DB',
--IIF(SUBSTR(RATING,3,2)='IA','EADB_O_LT_IA',
--IIF(SUBSTR(RATING,3,2)='MY','EADB_O_LT_MY',
--IIF(SUBSTR(RATING,3,2)='SC','EADB_O_LT_SC',NULL)))))
CASE
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'SP' THEN 'EADB_O_LT_SP'
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'DB' THEN 'EADB_O_LT_DB'
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'IA' THEN 'EADB_O_LT_IA'
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'MY' THEN 'EADB_O_LT_MY'
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'SC' THEN 'EADB_O_LT_SC'
ELSE CAST(NULL AS VARCHAR2(255))
END AS RATING_TYPE_FK,
--rtrim(ltrim(RATING))
RTRIM(LTRIM(FILL_NULL.ISS_LT_RATING_ID)) AS RATING,
'A' AS DUMMY
FROM
FIL_NULL_INSTITUTION_CODE_KEY FILL_NULL
),
LKP_MAIN_RATING AS (
SELECT
EXP_MAP_LT_TARGET.INSTITUTION_FK,
EXP_MAP_LT_TARGET.RATING_TYPE_FK,
EXP_MAP_LT_TARGET.RATING,
DW_REF_MAIN_RATING.NUMERICAL_EQUIVALENT
FROM EXP_MAP_LT_TARGET
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON EXP_MAP_LT_TARGET.RATING = DW_REF_MAIN_RATING.RATING_VALUE_CODE
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
),
EXP_GET_RECORD_COUNT_LT AS (
SELECT
LKP_MAIN_RATING.INSTITUTION_FK,
LKP_MAIN_RATING.RATING_TYPE_FK,
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT,
LKP_MAIN_RATING.RATING,
---SETVARIABLE($$Var_m_Start_StartTime,NULL)
CAST(NULL as date) AS SNAPSHOT_DATE,
'C2D_EA' AS SOURCE,
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
FROM
LKP_MAIN_RATING LKP_MAIN_RATING
GROUP BY
LKP_MAIN_RATING.INSTITUTION_FK,
LKP_MAIN_RATING.RATING_TYPE_FK,
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT,
LKP_MAIN_RATING.RATING
ORDER BY
LKP_MAIN_RATING.INSTITUTION_FK,
LKP_MAIN_RATING.RATING_TYPE_FK,
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT
)
SELECT
EXP_LT_COUNT.INSTITUTION_FK,
EXP_LT_COUNT.RATING_TYPE_FK,
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
EXP_LT_COUNT.RATING AS VALUE,
CAST(NULL as varchar2(255)) AS DATE_,
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
CAST(NULL as varchar2(255)) AS VALUE_PD,
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
EXP_LT_COUNT.NUMERICAL_EQUIVALENT,
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
EXP_LT_COUNT.SNAPSHOT_DATE,
CAST(NULL as varchar2(255)) AS RATING_ACTION,
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
EXP_LT_COUNT.SOURCE,
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
EXP_LT_COUNT.INDEP_SUBPROCESS_FK
FROM
EXP_GET_RECORD_COUNT_LT EXP_LT_COUNT

View File

@@ -0,0 +1,184 @@
{{ config(
materialized = "incremental",
incremental_strategy="append",
schema = "DW_TMP",
alias = "TE_INSTITUTION_RATING_ST",
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
pre_hook = "{{ control_model_start() }}",
post_hook = "{{ control_model_end('TRG') }}"
) }}
WITH SOURCE_QUALIFIER AS (
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
SELECT
CASE
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
ELSE SQ.ISS_CODE_TYPE
END AS ISS_CODE_TYPE,
SQ.ISS_CODE_VALUE,
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
CASE
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
WHEN SQ.GUAR_CODE_TYPE IS NULL THEN 'NCB'
ELSE SQ.GUAR_CODE_TYPE
END AS GUAR_CODE_TYPE,
SQ.GUAR_CODE_VALUE,
SQ.ISS_LT_RATING_ID,
SQ.ISS_ST_RATING_ID,
SQ.GUAR_LT_RATING_ID,
SQ.A_WORKFLOW_HISTORY_KEY
FROM
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
WHERE SQ.ACTION_TYPE = 'U'
),
EVALUATE_VALUE AS (
SELECT * FROM SOURCE_QUALIFIER
LEFT JOIN (
SELECT
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO,
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID --FROM DW_REF_INSTITUTION_CODE_TYPE
FROM
DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID = UPPER(LTRIM(RTRIM(SOURCE_QUALIFIER.ISS_CODE_TYPE)))
LEFT JOIN (
SELECT
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE --FROM DW_RAR_MU_INSTITUTION_CODE_MAP
FROM
DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID = LKP_CODE_TYPE_NO.CODE_TYPE_NO
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE = SOURCE_QUALIFIER.ISS_CODE_VALUE
),
MPL_GET_INSTITUTION_CODE_KEY AS (
SELECT
--iif(isnull(CODE_VALUE),null,Inp_INSTITUTION_FK)
CASE
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
ELSE CAST(EVALUATE_VALUE.INSTITUTION_FK AS VARCHAR2(255))
END AS INSTITUTION_FK,
--iif(isnull(CODE_VALUE),null,inp_CODE_TYPE_NO)
CASE
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
ELSE EVALUATE_VALUE.CODE_TYPE_NO
END AS CODE_TYPE_NO,
--NSTRING udf_clean_CODE_TYPE( inp_CODE_TYPE as string )
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
--:UDF.UDF_TRIM(inp_CODE_TYPE)
--LTRIM(RTRIM(input_string))
CASE
WHEN EVALUATE_VALUE.ISS_CODE_TYPE IS NULL
OR LENGTH(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) = 0 THEN 'NCB'
ELSE CAST(
UPPER(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) AS varchar2(255))
END AS GUAR_CODE_TYPE,
EVALUATE_VALUE.CODE_VALUE,
EVALUATE_VALUE.CODE_TYPE_NO_ID,
EVALUATE_VALUE.CODE_VALUE AS CODE_VALUE1,
EVALUATE_VALUE.ISS_CODE_TYPE,
EVALUATE_VALUE.ISS_LT_RATING_ID,
EVALUATE_VALUE.ISS_ST_RATING_ID
FROM
EVALUATE_VALUE
),
FIL_NULL_INSTITUTION_CODE_KEY AS (
SELECT
MPL.INSTITUTION_FK,
MPL.ISS_CODE_TYPE,
MPL.CODE_VALUE,
MPL.ISS_LT_RATING_ID,
MPL.ISS_ST_RATING_ID
FROM
MPL_GET_INSTITUTION_CODE_KEY MPL
WHERE
MPL.INSTITUTION_FK IS NOT NULL
AND MPL.ISS_ST_RATING_ID IS NOT NULL
),
EXP_MAP_ST_TARGET AS (
SELECT
FILL_NULL.INSTITUTION_FK,
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='SP','EADB_O_ST_SP',
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='DB','EADB_O_ST_DB',
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='IA','EADB_O_ST_IA',
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='MY','EADB_O_ST_MY',
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='SC','EADB_O_ST_SC',NULL)))))
CASE
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'SP' THEN 'EADB_O_ST_SP'
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'DB' THEN 'EADB_O_ST_DB'
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'IA' THEN 'EADB_O_ST_IA'
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'MY' THEN 'EADB_O_ST_MY'
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'SC' THEN 'EADB_O_ST_SC'
ELSE CAST(NULL AS VARCHAR2(255))
END AS RATING_TYPE_FK,
--rtrim(ltrim(RATING))
RTRIM(LTRIM(FILL_NULL.ISS_ST_RATING_ID)) AS RATING,
'A' AS DUMMY
FROM
FIL_NULL_INSTITUTION_CODE_KEY FILL_NULL
),
LOOKUP AS (
SELECT * FROM EXP_MAP_ST_TARGET
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON EXP_MAP_ST_TARGET.RATING = DW_REF_MAIN_RATING.RATING_VALUE_CODE
WHERE
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
),
EXP_GET_RECORD_COUNT_ST AS (
SELECT
LOOKUP.INSTITUTION_FK,
LOOKUP.RATING_TYPE_FK,
LOOKUP.NUMERICAL_EQUIVALENT,
LOOKUP.RATING,
---SETVARIABLE($$Var_m_Start_StartTime,NULL)
CAST(NULL as date) AS SNAPSHOT_DATE,
'C2D_EA' AS SOURCE,
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
FROM
LOOKUP
GROUP BY
LOOKUP.INSTITUTION_FK,
LOOKUP.RATING_TYPE_FK,
LOOKUP.NUMERICAL_EQUIVALENT,
LOOKUP.RATING
ORDER BY
LOOKUP.INSTITUTION_FK,
LOOKUP.RATING_TYPE_FK,
LOOKUP.NUMERICAL_EQUIVALENT
)
SELECT
EXP_ST_COUNT.INSTITUTION_FK,
EXP_ST_COUNT.RATING_TYPE_FK,
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
EXP_ST_COUNT.RATING AS VALUE,
CAST(NULL as varchar2(255)) AS DATE_,
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
CAST(NULL as varchar2(255)) AS VALUE_PD,
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
EXP_ST_COUNT.NUMERICAL_EQUIVALENT,
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
EXP_ST_COUNT.SNAPSHOT_DATE,
CAST(NULL as varchar2(255)) AS RATING_ACTION,
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
CAST(NULL as varchar2(255)) AS SOURCE,
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
EXP_ST_COUNT.INDEP_SUBPROCESS_FK
FROM
EXP_GET_RECORD_COUNT_ST EXP_ST_COUNT

View File

@@ -0,0 +1,78 @@
{{ config(materialized='incremental',
incremental_strategy='append',
unique_key='ASSET_FK',
pre_hook="{{ control_model_start() }}",
post_hook="{{ control_model_end('TRG') }}",
alias = 'TE_ASSET_ROLE_INSTITUTION_test',
tags = ['m_DWH_ROLE_TE_ASSET_SF_C2D_EA_INSTROLES_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
schema = 'DW_TMP') }}
WITH ASSET_VALUES AS (
SELECT CASE
WHEN SQ.CODE_VALUE IS NULL THEN NULL
ELSE LKP_INSTITUTION_CODE_KEY.INSTITUTION_FK
END AS INSTITUTION_FK,
CASE
WHEN ROLE_FK='GUA_N' THEN 'GUA'
ELSE ROLE_FK
END AS ROLE_FK,
'ISIN' AS CODE_TYPE_ASSET,
ISIN,
RTRIM(LTRIM(ISIN)) AS CODE_VALUE_ASSET,
ROLE,
GUAR_ASSESSMENT,
RESERVE_FUND_THRESHOLDS_EXCEED,
'C2D_EA' AS SOURCE
FROM {{ ref("m_DWH_ROLE_TE_ASSET_SF_C2D_EA_INSTROLES_LOAD_SQ") }} SQ
LEFT JOIN (SELECT DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO AS CODE_TYPE_NO,
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID AS CODE_TYPE_ID
FROM DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID=UPPER(LTRIM(RTRIM(SQ.CODE_TYPE)))
LEFT JOIN (SELECT DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK AS INSTITUTION_FK,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID AS CODE_TYPE_NO_ID,
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE AS CODE_VALUE
FROM DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID=LKP_CODE_TYPE_NO.CODE_TYPE_NO
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE=SQ.CODE_VALUE
WHERE INSTITUTION_FK IS NOT NULL
),
TRANS AS (
SELECT DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK AS ASSET_FK,
AV.INSTITUTION_FK,
AV.ROLE_FK,
AV.ROLE,
AV.GUAR_ASSESSMENT,
AV.RESERVE_FUND_THRESHOLDS_EXCEED,
AV.SOURCE,
ROW_NUMBER() OVER (PARTITION BY DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK, AV.INSTITUTION_FK, AV.ROLE_FK, AV.SOURCE ORDER BY DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK ASC ,AV.INSTITUTION_FK ASC ,AV.ROLE_FK ASC ,AV.ROLE ASC ,AV.SOURCE ASC) AS rn
FROM ASSET_VALUES AV
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
FROM DW_REF_MAIN.ASSET_CODE_TYPE
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(AV.CODE_TYPE_ASSET)))
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
FROM DW_RAR.MU_ASSET_CODE_MAP
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(AV.CODE_VALUE_ASSET))
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
)
SELECT TRANS.ASSET_FK,
TRANS.INSTITUTION_FK,
TRANS.ROLE_FK,
TRANS.ROLE AS SUBROLE_ID,
TRANS.GUAR_ASSESSMENT,
TRANS.RESERVE_FUND_THRESHOLDS_EXCEED,
TRANS.SOURCE,
CAST(NULL AS VARCHAR2(255)) AS COVER_PERCENT,
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
FROM DW_TMP.TE_ASSET_ROLE_INSTITUTION_test DW_TMP_TE_ASSET_ROLE_INSTITUTITION
RIGHT JOIN TRANS ON DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ASSET_FK = TRANS.ASSET_FK
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.INSTITUTION_FK = TRANS.INSTITUTION_FK
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ROLE_FK = TRANS.ROLE_FK
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.SOURCE = TRANS.SOURCE
WHERE DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ASSET_FK IS NULL AND rn=1