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

4
dbt/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
target/
dbt_packages/
logs/

15
dbt/README.md Normal file
View File

@@ -0,0 +1,15 @@
Welcome to your new dbt project!
### Using the starter project
Try running the following commands:
- dbt run
- dbt test
### Resources:
- Learn more about dbt [in the docs](https://docs.getdbt.com/docs/introduction)
- Check out [Discourse](https://discourse.getdbt.com/) for commonly asked questions and answers
- Join the [chat](https://community.getdbt.com/) on Slack for live discussions and support
- Find [dbt events](https://events.getdbt.com) near you
- Check out [the blog](https://blog.getdbt.com/) for the latest news on dbt's development and best practices

47
dbt/__profiles.yml Normal file
View File

@@ -0,0 +1,47 @@
mrds:
target: dev
outputs:
dev:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
tst:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
acc:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
prd:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4

47
dbt/_profiles.yml Normal file
View File

@@ -0,0 +1,47 @@
mrds:
target: dev
outputs:
dev:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
tst:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
acc:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4
prd:
type: $DBT_PROFILE_TARGET_TYPE
host: $DBT_PROFILE_TARGET_HOST
user: $DBT_PROFILE_TARGET_USER
password: $DBT_PROFILE_TARGET_PASSWORD
port: $DBT_PROFILE_TARGET_PORT
database: $DBT_DATABASE_NAME
service: $DBT_PROFILE_TARGET_SERVICE_NAME
protocol: tcps
schema: public
threads: 4

0
dbt/analyses/.gitkeep Normal file
View File

68
dbt/dbt_project.yml Normal file
View File

@@ -0,0 +1,68 @@
# Name your project! Project names should contain only lowercase characters
# and underscores. A good package name should reflect your organization's
# name or the intended use of these models
name: 'mrds'
version: '1.0.0'
config-version: 2
# This setting configures which "profile" dbt uses for this project.
profile: 'mrds'
# These configurations specify where dbt should look for different types of files.
# The `model-paths` config, for example, states that models in this project can be
# found in the "models/" directory. You probably won't need to change these!
model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]
macro-paths: ["macros"]
snapshot-paths: ["snapshots"]
clean-targets: # directories to be removed by `dbt clean`
- "target"
- "dbt_packages"
vars:
dbt_timezone: 'Europe/Berlin'
orchestration_run_id: null
input_service_name: null
workflow_name: null
tag_to_run: 'default_tag_lineage'
flags:
send_anonymous_usage_stats: False
#on-run-start:
# - "{{ control_run_start() }}"
on-run-end:
- "{{ control_run_end(results) }}"
# Configuring models
# Full documentation: https://docs.getdbt.com/docs/configuring-models
# In this example config, we tell dbt to build all models in the example/
# directory as views. These settings can be overridden in the individual model
# files using the `{{ config(...) }}` macro.
models:
+on_schema_change: "sync_all_columns"
mrds:
# Config indicated by + and applies to all files under models/example/
example:
+enabled: false
mopdb:
source_qualifiers:
+pre-hook: "{{ control_model_start() }}"
+post-hook: "{{ control_model_end('SQ') }}"
+materialized: table
targets:
+pre-hook: "{{ control_model_start() }}"
+post-hook: "{{ control_model_end('TRG') }}"
rar:
source_qualifiers:
+materialized: table
snapshots:
+pre-hook: "{{ control_model_start() }}"
+post-hook: "{{ control_model_end() }}"

View File

@@ -0,0 +1,39 @@
# Script to remove DBT environment variables permanently from User scope
# Run this script to clean up all DBT-related environment variables
Write-Host "Removing DBT environment variables for all targets..." -ForegroundColor Red
Write-Host "It can runs slowly, please wait with patience ..." -ForegroundColor Red
Write-Host ""
# POC Environment
Write-Host "Removing POC environment variables..." -ForegroundColor Yellow
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_TYPE_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_HOST_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_USER_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PASSWORD_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PORT_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_DATABASE_NAME_POC', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_SERVICE_NAME_POC', $null, 'User')
# DEV Environment
Write-Host "Removing DEV environment variables..." -ForegroundColor Yellow
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_TYPE_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_HOST_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_USER_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PASSWORD_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PORT_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_DATABASE_NAME_DEV', $null, 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_SERVICE_NAME_DEV', $null, 'User')
Write-Host ""
Write-Host "All environment variables have been removed successfully!" -ForegroundColor Green
Write-Host ""
Write-Host "IMPORTANT: You need to restart PowerShell for changes to take effect." -ForegroundColor Yellow
Write-Host ""
Write-Host "To verify, open a NEW PowerShell window and run:" -ForegroundColor Yellow
Write-Host " Get-ChildItem Env: | Where-Object Name -like 'DBT_*'" -ForegroundColor White
Write-Host ""
Write-Host "Expected result: No variables should be found." -ForegroundColor White

View File

@@ -0,0 +1,38 @@
# Script to set DBT environment variables permanently for User
# Run this script once to configure all environment variables for all targets
Write-Host "Setting DBT environment variables for all targets..." -ForegroundColor Green
Write-Host ""
Write-Host "It can runs slowly, please wait with patience ..." -ForegroundColor Red
Write-Host ""
# POC Environment
Write-Host "Setting POC environment variables..." -ForegroundColor Cyan
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_TYPE_POC', 'oracle', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_HOST_POC', 'PE-lzprd-mrds-tst-dmarsdb1.adb.eu-frankfurt-1.oraclecloud.com', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_USER_POC', 'MRDS_LOADER', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PASSWORD_POC', 'Mars_db_12345678', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PORT_POC', '1521', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_DATABASE_NAME_POC', 'G9E081DDAD95B2D_DMARSDB1', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_SERVICE_NAME_POC', 'g9e081ddad95b2d_dmarsdb1_low.adb.oraclecloud.com', 'User')
# DEV Environment
Write-Host "Setting DEV environment variables..." -ForegroundColor Cyan
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_TYPE_DEV', 'oracle', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_HOST_DEV', 'PE-lzprd-mrds-tst-dmopdb.adb.eu-frankfurt-1.oraclecloud.com', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_USER_DEV', 'MRDS_LOADER', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PASSWORD_DEV', 'Tesat_ysklLawga_uskjas3', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_PORT_DEV', '1521', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_DATABASE_NAME_DEV', 'G9E081DDAD95B2D_DMOPDB', 'User')
[System.Environment]::SetEnvironmentVariable('DBT_PROFILE_TARGET_SERVICE_NAME_DEV', 'g9e081ddad95b2d_dmopdb_medium.adb.oraclecloud.com', 'User')
Write-Host ""
Write-Host "All environment variables have been set successfully!" -ForegroundColor Green
Write-Host ""
Write-Host "IMPORTANT: You need to restart PowerShell for changes to take effect." -ForegroundColor Yellow
Write-Host ""
Write-Host "To verify, open a NEW PowerShell window and run:" -ForegroundColor Yellow
Write-Host " Get-ChildItem Env: | Where-Object Name -like 'DBT_*'" -ForegroundColor White

0
dbt/macros/.gitkeep Normal file
View File

View File

@@ -0,0 +1,19 @@
{% macro check_data_exists(table_name) %}
{% if execute %}
{% set run_sql %}
select count(*)
from (
select 1 res
from {{ table_name }}
where rownum = 1
)
{% endset %}
{% set res = run_query(run_sql) %}
{% set row_ct = res.columns[0].values()[0] %}
{{ return(row_ct) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,16 @@
{% macro check_model_exists(model_name) %}
{% if execute %}
{% if manifest %}
{% set model_exists = false %}
{% for node in manifest.nodes.values() %}
{% if node.resource_type == 'model' and node.name == model_name %}
{% set model_exists = true %}
{% break %}
{% endif %}
{% endfor %}
{{ return(model_exists) }}
{% else %}
{{ exceptions.raise_compiler_error("'manifest' object is not available in this context.") }}
{% endif %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,15 @@
{% macro get_child_models(model_name) %}
{% if execute %}
{% set graph = graph.nodes %}
{% set children = [] %}
{% for node, details in graph.items() %}
{% for item in details.depends_on.nodes %}
{% if model_name == item.split('.')[2] %}
{% do children.append(node.split('.')[2]) %}
{% break %}
{% endif %}
{% endfor %}
{% endfor %}
{{ return(children) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,12 @@
{% macro get_parent_models(model_name) %}
{% if execute %}
{% set model = ( graph.nodes.values() | selectattr('name', 'equalto', model_name) | list ).pop() %}
{% set depends_on = model.depends_on['nodes'] %}
{% set new_depends_on = [] %}
{% for item in depends_on %}
{% do new_depends_on.append(item.split('.')[2]) %}
{% endfor %}
{{ return(new_depends_on) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,12 @@
{% macro get_table_qualified_name(model_name) %}
{% if execute %}
{% set models = graph.nodes.values() %}
{% set model = (models | selectattr('name', 'equalto', model_name) | list).pop() %}
{% if model is not none %}
{% set table_qualified_name = model.schema ~ '.' ~ model.alias if model.alias is not none and model.alias != '' else model.schema ~ '.' ~ model.name %}
{{ return(table_qualified_name) }}
{% else %}
{{ exceptions.raise("Model not found: " ~ model_name) }}
{% endif %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,22 @@
{% macro control_external_run_end() %}
{{ elog("START macro -> control_external_run_end", "INFO", 0)}}
{% if flags.WHICH in ('run', 'seed', 'snapshot', 'build', 'run-operation') %}
{{ elog("Get workflow status", "INFO", 1)}}
{% set status = get_workflow_status() %}
{{ check_null("status", status) }}
{{ elog("Run macro update_A_WORKFLOW_HISTORY", "INFO", 1)}}
{{ update_A_WORKFLOW_HISTORY(convert_timezone(m_current_timestamp('dbt'),'YYYY-MM-DD HH24:MI:SS',''), status) }}
{# {{ elog("Run macro insert_A_MOPDB_LOAD_HISTORY", "INFO", 1)}}
{{ insert_A_MOPDB_LOAD_HISTORY() }}#}
{% do run_query('COMMIT') %}
{% else %}
{{ elog("Flag WHICH " ~ flags.WHICH ~ " is out of the list, do nothing.", "WARN", 1)}}
{% endif %}
{{ elog("END macro -> control_external_run_end", "INFO", 0)}}
{% endmacro %}

View File

@@ -0,0 +1,13 @@
{% macro control_external_run_start() %}
{{ elog("START macro -> control_external_run_start", "INFO", 0)}}
{% if flags.WHICH in ('run', 'seed', 'snapshot', 'build', 'run-operation') %}
{{ elog("Run macro insert_A_WORKFLOW_HISTORY", "INFO", 1)}}
{{ insert_A_WORKFLOW_HISTORY() }}
{% do run_query('COMMIT') %}
{% else %}
{{ elog("Flag WHICH " ~ flags.WHICH ~ " is out of the list, do nothing.", "WARN", 1)}}
{% endif %}
{{ elog("END macro -> control_external_run_start", "INFO", 0)}}
{% endmacro %}

View File

@@ -0,0 +1,66 @@
{% macro control_model_end(model_type) %}
{% set model_name = model.name %}
{{ elog("START macro -> control_model_end, model " ~ model_name, "INFO", 0)}}
{{ elog("Get subprocess_key for model " ~ model_name, "INFO", 1)}}
{% set a_task_history_key = get_task_history_key(model_name) %}
{{ check_null("a_task_history_key", a_task_history_key) }}
{% if model_type == 'SQ' %}
{% set table_name = this.schema ~ '.' ~ this.name %}
{{ elog("Check if data exists in SQ, model " ~ model_name, "INFO", 1)}}
{% set sq_data_exists = check_data_exists(table_name) %}
{% if 'm_DWH' in model_name and 'm_DWH_PRELOAD' not in model_name %}
{% set model_sources =get_parent_models(model_name) %}
{% if model_sources | length > 0 %}
{% for model_source in model_sources %}
{% set source_name = get_table_qualified_name(model_source) %}
{{ elog("Run control_source_count for source " ~ source_name ~ ", model " ~ model_name, "INFO", 1)}}
{{ control_source_count(a_task_history_key, source_name,'', '') }}
{% endfor %}
{% endif %}
{% else %}
{% set model_sources =model.sources %}
{% for model_source in model_sources %}
{% if model_source[0] != 'control_tables' %}
{% set source_name = source(model_source[0], model_source[1]) %}
{{ elog("Run control_source_count for source " ~ source_name ~ ", model " ~ model_name, "INFO", 1)}}
{{ control_source_count(a_task_history_key, source_name,'', '') }}
{% endif %}
{% endfor %}
{% endif %}
{% elif model_type == 'TRG' %}
{# {{ elog('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', "INFO", 1) }} #}
{% set parent_models = get_parent_models(model_name) %}
{% if parent_models | length > 0 %}
{% for model in parent_models %}
{% if 'm_DWH' in model or 'm_MOPDB' in model %}
{% set table_name = get_table_qualified_name(model) %}
{# {{ elog('--------------->> Table: ', "INFO", 1) }} #}
{# {{ elog(table_name, "INFO", 1) }} #}
{{ elog("Check if data exists in SQ table: " ~ table_name ~ " for model: " ~ model_name, "INFO", 1)}}
{% set trg_data_exists = check_data_exists(table_name) %}
{{ elog("Run control_source_count for source " ~ table_name ~ ", model " ~ model_name, "INFO", 1)}}
{{ control_source_count(a_task_history_key, table_name,'A_WORKFLOW_HISTORY_KEY', trg_data_exists) }}
{% endif %}
{% endfor %}
{% else %}
{{ elog("There are no parent SQ for model: " ~ model_name, "INFO", 1)}}
{% endif %}
{# {{ log(parent_models, info=True) }} #}
{% endif %}
{{ elog("Run macro update_A_TASK_HISTORY for model " ~ model_name, "INFO", 1)}}
{{ update_A_TASK_HISTORY(a_task_history_key, convert_timezone(m_current_timestamp('dbt'),'YYYY-MM-DD HH24:MI:SS',''), 'Y') }}
{% if sq_data_exists == 0 %}
{{ exceptions.warn("Model " ~ model_name ~ " has no rows.") }}
{% endif %}
{% do run_query('COMMIT') %}
{{ elog("END macro -> control_model_end, model " ~ model_name, "INFO", 0)}}
{% endmacro %}

View File

@@ -0,0 +1,16 @@
{% macro control_model_start() %}
{% set model_name = model.name %}
{{ elog("START macro -> control_model_start, model " ~ model_name, "INFO", 0)}}
{{ elog("Get process_key for model " ~ model_name, "INFO", 1)}}
{% set a_workflow_history_key = get_workflow_history_key() %}
{{ check_null("a_workflow_history_key", a_workflow_history_key) }}
{{ elog("a_workflow_history_key: " ~ a_workflow_history_key, "INFO", 2)}}
{{ elog("Run macro insert_A_TASK_HISTORY for model " ~ model_name, "INFO", 1)}}
{{ insert_A_TASK_HISTORY(a_workflow_history_key, model_name) }}
{% do run_query('COMMIT') %}
{{ elog("END macro -> control_model_start, model " ~ model_name, "INFO", 0)}}
{% endmacro %}

View File

@@ -0,0 +1,49 @@
{% macro control_run_end(results) %}
{% if flags.WHICH in ('run', 'seed', 'snapshot', 'build') %}
{{ elog("START macro -> control_run_end", "INFO", 0)}}
{% for result in results %}
{% if result.status != 'skipped' %}
{% set model_name = result.node.name %}
{% set rows_affected = result.adapter_response.get('rows_affected', 0) %}
{% if result.status == 'success' %} {% if rows_affected == 0 %}{% set status = 'W' %}{% else %}{% set status = 'Y' %}{% endif %} {% else %} {% set status = 'N' %} {% endif %}
{% set completed_at = result.timing[-1].completed_at.strftime("%Y-%m-%d %H:%M:%S") %}
{% set table_name = result.node.relation_name %}
{%set full_model_key = result.node.unique_id%}
{%set model = graph.nodes.get(full_model_key)%}
{%if model is not none and (result.node.path.startswith('mopdb') or result.node.path.startswith('rar')) %}
{%set model_tags = model.config.get('tags',[])%}
{%set input_service_name_var = var('input_service_name') %}
{%if 'A_TASK_HISTORY_TARGET_insert' not in model_tags and input_service_name_var == 'RAR'%}
{# Skip the following lines and go straight to the end #}
{{elog("RAR model without a A_TASK_HISTORY_TARGET_insert tag. Skip inserting into A_TASK_HISTORY_TARGET for" ~ model_name, "INFO", 1)}}
{%elif model.config.materialized == 'table_if_rows_exist' %}
{{ elog("Get subprocess_key for model " ~ model_name, "INFO", 1)}}
{% set a_task_history_key = get_task_history_key(model_name) %}
{%if a_task_history_key != null and rows_affected > 0%}
{{ elog("Run macro insert_A_TASK_HISTORY_TARGET for model " ~ model_name, "INFO", 1)}}
{{ insert_A_TASK_HISTORY_TARGET(a_task_history_key, table_name, status, rows_affected) }}
{% do run_query('COMMIT') %}
{% endif %}
{%else%}
{{ elog("Get subprocess_key for model " ~ model_name, "INFO", 1)}}
{% set a_task_history_key = get_task_history_key(model_name) %}
{{ check_null("a_task_history_key", a_task_history_key) }}
{{ elog("Run macro insert_A_TASK_HISTORY_TARGET for model " ~ model_name, "INFO", 1)}}
{{ insert_A_TASK_HISTORY_TARGET(a_task_history_key, table_name, status, rows_affected) }}
{% do run_query('COMMIT') %}
{% endif %}
{%endif%}
{#
{% if status == 'N' %}
{{ update_A_TASK_HISTORY(a_task_history_key, convert_timezone(completed_at,'YYYY-MM-DD HH24:MI:SS','UTC'), 'N') }}
{% endif %}
#}
{% endif %}
{% endfor %}
{{ elog("END macro -> control_run_end", "INFO", 0)}}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,12 @@
{% macro control_run_start() %}
{% if flags.WHICH in ('run', 'seed', 'snapshot', 'build') %}
{{ elog("START macro -> control_run_start", "INFO", 0)}}
{{ elog("Checking required variables...", "INFO", 1)}}
{{ check_variable("orchestration_run_id") }}
{{ check_variable("input_service_name") }}
{{ check_variable("workflow_name") }}
{{ elog("END macro -> control_run_start", "INFO", 0)}}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,7 @@
{% macro control_source_count(a_task_history_key, table_name, column_name, sq_data_exists) %}
{% set model_name = model.name %}
{{ elog("Run macro insert_A_TASK_HISTORY_SOURCE for model " ~ model_name, "INFO", 2)}}
{{ insert_A_TASK_HISTORY_SOURCE(table_name, a_task_history_key, column_name, sq_data_exists) }}
{% endmacro %}

View File

@@ -0,0 +1,20 @@
{% macro get_task_history_key(model_name) %}
{% if execute %}
{% set fetch_fk %}
SELECT A_TASK_HISTORY_KEY
FROM {{ source('control_tables', 'A_TASK_HISTORY') }}
WHERE TASK_RUN_ID = '{{ invocation_id }}'
AND TASK_NAME = '{{ model_name }}'
AND SERVICE_NAME = '{{ var("input_service_name") }}'
{% endset %}
{% set a_task_history_key_result = run_query(fetch_fk) %}
{% set a_task_history_key = a_task_history_key_result.columns[0].values()[0] %}
{{ return(a_task_history_key) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,17 @@
{% macro get_workflow_history_key() %}
{% if execute %}
{% set fetch_fk %}
SELECT A_WORKFLOW_HISTORY_KEY
FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }}
WHERE ORCHESTRATION_RUN_ID = '{{ var("orchestration_run_id")}}'
and SERVICE_NAME = '{{ var("input_service_name")}}'
{% endset %}
{% set a_workflow_history_key_result = run_query(fetch_fk) %}
{% set a_workflow_history_key = a_workflow_history_key_result.columns[0].values()[0] %}
{{ return(a_workflow_history_key) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,20 @@
{% macro get_workflow_status() %}
{% if execute %}
{% set run_sql %}
select case when sum(case when tht.load_successful in ('W','Y') then 0 else 1 end) = 0 then 'Y' else 'N' end status
from {{ source('control_tables','A_WORKFLOW_HISTORY') }} wh
join {{ source('control_tables','A_TASK_HISTORY') }} th on wh.a_workflow_history_key = th.a_workflow_history_key and wh.service_name = th.service_name
join {{ source('control_tables','A_TASK_HISTORY_TARGET') }} tht on th.a_task_history_key = tht.a_task_history_key and th.service_name = tht.service_name
where wh.service_name = '{{ var("input_service_name") }}'
and wh.workflow_name = '{{ var("workflow_name") }}'
and wh.orchestration_run_id = '{{ var("orchestration_run_id") }}'
{% endset %}
{% set res = run_query(run_sql) %}
{% set status = res.columns[0].values()[0] %}
{{ return(status) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,25 @@
{% macro insert_A_MOPDB_LOAD_HISTORY() %}
{% if execute %}
{% set insert_A_MOPDB_LOAD_HISTORY %}
INSERT INTO {{ source('control_tables', 'A_MOPDB_LOAD_HISTORY') }} (A_WORKFLOW_HISTORY_KEY, A_WORKFLOW_HISTORY_SOURCE_KEY, A_TASK_HISTORY_KEY, TASK_NAME, TASK_START, TASK_END, WORKFLOW_STATUS)
select distinct wh.a_workflow_history_key
,ths.a_workflow_history_source_key
,th.a_task_history_key
,th.task_name
,th.task_start
,th.task_end
,wh.workflow_status
from {{ source('control_tables','A_WORKFLOW_HISTORY') }} wh
join {{ source('control_tables','A_TASK_HISTORY') }} th on wh.a_workflow_history_key = th.a_workflow_history_key and wh.service_name = th.service_name
join {{ source('control_tables','A_TASK_HISTORY_SOURCE') }} ths on th.a_task_history_key = ths.a_task_history_key and th.service_name = ths.service_name
where wh.service_name = '{{ var("input_service_name") }}'
and wh.workflow_name = '{{ var("workflow_name") }}'
and wh.orchestration_run_id = '{{ var("orchestration_run_id") }}'
and ths.a_workflow_history_source_key is not null
{% endset %}
{% do run_query(insert_A_MOPDB_LOAD_HISTORY) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,12 @@
{% macro insert_A_TASK_HISTORY(a_workflow_history_key, model_name) %}
{% if execute %}
{% set insert_A_TASK_HISTORY %}
INSERT INTO {{ source('control_tables', 'A_TASK_HISTORY') }} (A_TASK_HISTORY_KEY, A_WORKFLOW_HISTORY_KEY, TASK_RUN_ID, TASK_NAME, TASK_START, TASK_SUCCESSFUL, SERVICE_NAME)
VALUES ({{ source('control_sequences','A_TASK_HISTORY_SEQ') }}.NEXTVAL, {{ a_workflow_history_key }}, '{{ invocation_id}}' ,'{{ model_name }}', cast(current_timestamp as timestamp(0)), 'N', '{{ var("input_service_name") }}')
{% endset %}
{% do run_query(insert_A_TASK_HISTORY) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,33 @@
{% macro insert_A_TASK_HISTORY_SOURCE(table_name, a_task_history_key, column_name, sq_data_exists) %}
{% if execute %}
{% set insert_A_TASK_HISTORY_SOURCE %}
{% if column_name | length %}
{% if sq_data_exists == 0 %}
INSERT INTO {{ source('control_tables','A_TASK_HISTORY_SOURCE') }} (A_TASK_HISTORY_SOURCE_KEY, A_TASK_HISTORY_KEY, SOURCE_NAME, ROW_COUNT, SERVICE_NAME)
SELECT {{ source('control_sequences','A_TASK_HISTORY_SOURCE_SEQ') }}.NEXTVAL, {{ a_task_history_key }}, '{{ table_name }}', 0, '{{ var("input_service_name") }}' FROM dual
{% else %}
INSERT INTO {{ source('control_tables','A_TASK_HISTORY_SOURCE') }} (A_TASK_HISTORY_SOURCE_KEY, A_TASK_HISTORY_KEY, A_WORKFLOW_HISTORY_SOURCE_KEY, SOURCE_NAME, ROW_COUNT, SERVICE_NAME)
SELECT {{ source('control_sequences','A_TASK_HISTORY_SOURCE_SEQ') }}.NEXTVAL, {{ a_task_history_key }}, col_name, '{{ table_name }}', ct, '{{ var("input_service_name") }}'
FROM (
SELECT {{ column_name }} col_name, count(*) ct
FROM {{ table_name }}
GROUP BY {{ column_name }}
)
{% endif %}
{% else %}
INSERT INTO {{ source('control_tables','A_TASK_HISTORY_SOURCE') }} (A_TASK_HISTORY_SOURCE_KEY, A_TASK_HISTORY_KEY, SOURCE_NAME, ROW_COUNT, SERVICE_NAME)
SELECT {{ source('control_sequences','A_TASK_HISTORY_SOURCE_SEQ') }}.NEXTVAL, {{ a_task_history_key }}, '{{ table_name }}', ct, '{{ var("input_service_name") }}'
FROM (
SELECT count(*) ct
FROM {{ table_name }}
)
{% endif %}
{% endset %}
{% do run_query(insert_A_TASK_HISTORY_SOURCE) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,13 @@
{% macro insert_A_TASK_HISTORY_TARGET(a_task_history_key, model_name, status, rows_affected) %}
{% if execute %}
{% set insert_A_TASK_HISTORY_TARGET %}
INSERT INTO {{ source('control_tables','A_TASK_HISTORY_TARGET') }} (A_TASK_HISTORY_TARGET_KEY, A_TASK_HISTORY_KEY, TARGET_NAME, ROW_COUNT_APPLIED, LOAD_SUCCESSFUL, SERVICE_NAME)
VALUES ({{ source('control_sequences','A_TASK_HISTORY_TARGET_SEQ') }}.NEXTVAL, {{ a_task_history_key }}, '{{ model_name }}', {{ rows_affected }}, '{{ status }}', '{{ var("input_service_name") }}')
{% endset %}
{% do run_query(insert_A_TASK_HISTORY_TARGET) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,13 @@
{% macro insert_A_WORKFLOW_HISTORY() %}
{% if execute %}
{% set insert_A_WORKFLOW_HISTORY %}
INSERT INTO {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} (SERVICE_NAME, A_WORKFLOW_HISTORY_KEY, ORCHESTRATION_RUN_ID, WORKFLOW_NAME, WORKFLOW_START, WORKFLOW_SUCCESSFUL, DBT_INVOCATION_ID)
VALUES ('{{ var("input_service_name") }}', {{ source('control_sequences','A_WORKFLOW_HISTORY_SEQ') }}.NEXTVAL, '{{ var("orchestration_run_id") }}', '{{ var("workflow_name") }}', cast(current_timestamp as timestamp(0)), 'R', '{{ invocation_id }}')
{% endset %}
{% do run_query(insert_A_WORKFLOW_HISTORY) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,16 @@
{% macro update_A_TASK_HISTORY(a_task_history_key, process_end, status) %}
{% if execute %}
{% set update_table %}
UPDATE {{ source('control_tables', 'A_TASK_HISTORY') }}
SET TASK_END = {{ process_end }},
TASK_SUCCESSFUL = '{{ status }}'
WHERE A_TASK_HISTORY_KEY = {{ a_task_history_key }}
{% endset %}
{% do run_query(update_table) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,14 @@
{% macro update_A_WORKFLOW_HISTORY(process_end, status) %}
{% if execute %}
{% set update_table %}
UPDATE {{ source('control_tables', 'A_WORKFLOW_HISTORY') }}
SET WORKFLOW_END = {{ process_end }},
WORKFLOW_SUCCESSFUL = '{{ status }}'
WHERE ORCHESTRATION_RUN_ID = '{{ var("orchestration_run_id") }}'
{% endset %}
{% do run_query(update_table) %}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,12 @@
{% macro convert_timezone(value, format, timezone) %}
{% if timezone | length %}
{% set expression %}
cast (FROM_TZ(to_timestamp('{{ value }}', '{{ format }}'), '{{ timezone }}') at time zone '{{ var("dbt_timezone") }}' as timestamp)
{% endset %}
{% else %}
{% set expression %}
to_timestamp('{{ value }}', '{{ format }}')
{% endset %}
{% endif %}
{{ return(expression) }}
{% endmacro %}

View File

@@ -0,0 +1,8 @@
{% macro clean_boolean_fxcd(column_name) %}
{# Replaces Informatica UDF: udf_clean_BOOLEAN_FIELD_STR_FXCD #}
CASE
WHEN {{ column_name }} IS NULL THEN NULL
WHEN UPPER({{ column_name }}) IN ('N', 'NO', '0', ' ') THEN 'N'
ELSE 'Y'
END
{% endmacro %}

View File

@@ -0,0 +1,21 @@
{% macro create_table_from_source (schema, table, wf_name, task_name, except) %}
{#
Creates a table with a structure identical to the source table.
The content of the created table are all rows from the source table that belong
to the hightest WORKFLOW_HISTORY_KEY in the source table
#}
{% set a_workflow_history_key = get_workflow_history_key() %}
--{{ check_null("a_workflow_history_key", a_workflow_history_key) }}
{{ elog("a_workflow_history_key: " ~ a_workflow_history_key, "INFO", 2)}}
{{ elog("Run macro insert_A_TASK_HISTORY for model " ~ model_name, "INFO", 1)}}
{{ insert_A_TASK_HISTORY(a_workflow_history_key, model_name) }}
select
{{ a_workflow_history_key }} AS A_WORKFLOW_HISTORY_KEY,
source_table.*
from {{ source(schema, table) }} source_table
where source_table.A_WORKFLOW_HISTORY_KEY IN
{{
filter_workflow_history_key(wf_name, task_name)
}}
{% endmacro %}

View File

@@ -0,0 +1,9 @@
{% macro create_table_target (model) %}
{#
Creates a target table with the same structure and content as the source table.
Usually used to move data from SQ tables to the target table.
#}
select
*
from {{ ref(model) }} source_table
{% endmacro %}

View File

@@ -0,0 +1,52 @@
{% macro filter_workflow_history_key(wf_name, tasks_names,custom_string='') %}
{#
The query in this macro determines if data in a target table is up to date or if there is additional data in ODS
Paramters:
wf_name : The name of the ODS workflow that populates the ODS source table
task_name: The name of the task that executes the target model or an expression that returns it
Logic:
1) The query selects all A_WORKFLOW_HISTORY_KEYs that exist in ODS for the workflow passed as parameter wf_name from the workflow history
2) The subquery on LOAD_HISTORY joins the A_WORKFLOW_HISTORY_KEYs from 1) agains the LOAD_HISTORY for the target table and returns a 1 for all
A_WORKFLOW_HISTORY_KEYs that are found in LOAD_HISTORY
3) The NOT IN operator excludes the A_WORKFLOW_HISTORY_KEYs matched in 2) from the result of query 1, returning only the
A_WORKFLOW_HISTORY_KEYs that were not yet loaded into the target table
Example:
For model m_MOPDB_TMS_T_TRANSACTION_OU_TMS_TRANSACTION_LOAD_SQ this macro is called with
wf_name = "w_ODS_TMS_TRANSACTION"
task_name = "substr('m_MOPDB_TMS_T_TRANSACTION_OU_TMS_TRANSACTION_SQ', 1, instr('m_MOPDB_TMS_T_TRANSACTION_OU_TMS_TRANSACTION_SQ', '_', -1) -1)"
This task_name means that the name of the current model is changed to the name of the target model (_SQ being trimmed)
#}
{% if var("input_service_name") == 'MOPDB' %}
{% set load_history_tab = source('control_tables','A_MOPDB_LOAD_HISTORY') %}
{% elif var("input_service_name") == 'RAR' %}
{% set load_history_tab = source('control_tables','A_DWH_LOAD_HISTORY') %}
{% endif %}
{# Set the service name filter used in the WORKFLOW_HISTORY subquery.
Here we change the filter based on whether the input service name is MOPDB or RAR #}
{% if var("input_service_name") == 'MOPDB' %}
{% set service_name_filter = 'MOPDB' %}
{% else %}
{% set service_name_filter = 'RAR' %}
{% endif %}
(SELECT DISTINCT A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY
{{ custom_string }}
FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE A_WORKFLOW_HISTORY.WORKFLOW_NAME like ('{{ wf_name }}')
AND A_WORKFLOW_HISTORY.WORKFLOW_END < (
SELECT WORKFLOW_START FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE A_WORKFLOW_HISTORY.SERVICE_NAME = '{{ service_name_filter }}'
AND A_WORKFLOW_HISTORY_KEY = {{ get_workflow_history_key() }} )
AND A_WORKFLOW_HISTORY.WORKFLOW_SUCCESSFUL = 'Y'
AND A_WORKFLOW_HISTORY.SERVICE_NAME = 'ODS'
{% if var("input_service_name") == 'RAR' %}AND A_WORKFLOW_HISTORY.DQ_FLAG = 'T'{% endif %}
AND NOT EXISTS
(SELECT 1
FROM {{ load_history_tab }} LOAD_HISTORY
WHERE LOAD_HISTORY.A_WORKFLOW_HISTORY_SOURCE_KEY = A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY
AND LOAD_HISTORY.TASK_NAME in ( {{ tasks_names }} )
)
)
{% endmacro %}

View File

@@ -0,0 +1,52 @@
{% macro filter_workflow_history_max_key(wf_name, task_name) %}
{#
The query in this macro determines if data in a target table is up to date or if there is newer data in ODS
Paramters:
wf_name : The name of the ODS workflow that populates the ODS source table
task_name: The name of the task that executes the target model or an expression that returns it
Logic:
1) The subquery (second select from A_WORKFLOW_HISTORY) selects the highest A_WORKFLOW_HISTORY_KEY for the ODS workflow passed in as wf_name,
assuming that this is the latest data available to be loaded into the target
2) The query then queries the LOAD_HISTORY view to check whether that workflow ID has already been loaded into the target table.
If it has already been loaded, the query returns a NULL value, indicating that there is no data to be loaded.
If it has not yet been loaded, the A_WORKFLOW_HISTORY_KEY from the subquery is returned to the calling model (and likely used there
to select the data from the ODS table)
Example:
For model m_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ this macro is called with
wf_name = "w_ODS_CSDB_RATINGS_DEVO"
task_name = "SUBSTR('m_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ', 1, INSTR(
'm_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ', '_', - 1) - 1)"
This task_name means that the name of the current model is changed to the name of the target model (_SQ being trimmed)
#}
{% if var("input_service_name") == 'MOPDB' %}
{% set load_history_tab = source('control_tables','A_MOPDB_LOAD_HISTORY') %}
{% elif var("input_service_name") == 'RAR' %}
{% set load_history_tab = source('control_tables','A_DWH_LOAD_HISTORY') %}
{% endif %}
{# Set the service name filter used in the WORKFLOW_HISTORY subquery.
Here we change the filter based on whether the input service name is MOPDB or RAR #}
{% if var("input_service_name") == 'MOPDB' %}
{% set service_name_filter = 'MOPDB' %}
{% else %}
{% set service_name_filter = 'RAR' %}
{% endif %}
(SELECT CASE WHEN (SELECT COUNT(*)
FROM {{ load_history_tab }} LOAD_HISTORY
WHERE LOAD_HISTORY.A_WORKFLOW_HISTORY_SOURCE_KEY IN (WH.A_WORKFLOW_HISTORY_KEY) AND LOAD_HISTORY.TASK_NAME = {{ task_name }}) > 0
THEN NULL
ELSE WH.A_WORKFLOW_HISTORY_KEY END AS A_WORKFLOW_HISTORY_KEY
FROM (SELECT MAX(A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY) AS A_WORKFLOW_HISTORY_KEY
FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE A_WORKFLOW_HISTORY.WORKFLOW_NAME like ('{{ wf_name }}')
AND A_WORKFLOW_HISTORY.WORKFLOW_END < (
SELECT WORKFLOW_START FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE A_WORKFLOW_HISTORY.SERVICE_NAME = '{{ service_name_filter }}'
AND A_WORKFLOW_HISTORY_KEY = {{ get_workflow_history_key() }} )
AND A_WORKFLOW_HISTORY.WORKFLOW_SUCCESSFUL = 'Y'
AND A_WORKFLOW_HISTORY.SERVICE_NAME = 'ODS'
{% if var("input_service_name") == 'RAR' %} {% endif %}) WH)
{% endmacro %}

View File

@@ -0,0 +1,65 @@
{% macro get_ODS_wf_start_max_key(wf_name, tasks_names) %}
{#
The query in this macro determines if data in a target table is up to date or if there is newer data in ODS
Parameters:
wf_name : The name of the ODS workflow that populates the ODS source table
task_name : The name of the task that executes the target model or an expression that returns it
Logic:
1) The subquery (second select from A_WORKFLOW_HISTORY) selects the highest A_WORKFLOW_HISTORY_KEY
for the ODS workflow passed in as wf_name, assuming that this is the latest data available to be loaded
into the target.
2) The query then queries the LOAD_HISTORY view to check whether that workflow ID has already been loaded
into the target table. If it has already been loaded, the query returns a NULL value, indicating that there
is no data to be loaded. If it has not yet been loaded, the A_WORKFLOW_HISTORY_KEY from the subquery is
returned to the calling model (and likely used there to select the data from the ODS table)
Example:
For model m_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ this macro is
called with wf_name = "w_ODS_CSDB_RATINGS_DEVO"
task_name = "SUBSTR('m_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ',
1, INSTR( 'm_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT_SQ', '_', - 1) - 1)"
This task_name means that the name of the current model is changed to the name of the target model (_SQ being trimmed)
#}
{# Set the lookup table based on the input service name #}
{% if var("input_service_name") == 'MOPDB' %}
{% set load_history_tab = source('control_tables','A_MOPDB_LOAD_HISTORY') %}
{% elif var("input_service_name") == 'RAR' %}
{% set load_history_tab = source('control_tables','A_DWH_LOAD_HISTORY') %}
{% endif %}
{# Set the service name filter used in the WORKFLOW_HISTORY subquery.
Here we change the filter based on whether the input service name is MOPDB or RAR #}
{% if var("input_service_name") == 'MOPDB' %}
{% set service_name_filter = 'MOPDB' %}
{% else %}
{% set service_name_filter = 'RAR' %}
{% endif %}
(SELECT
MAX(A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY) OVER (PARTITION BY TRUNC(A_WORKFLOW_HISTORY.WORKFLOW_START) ) as MAX_ODS_WORKFLOW_KEY_DAY,
A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY,
TRUNC(A_WORKFLOW_HISTORY.WORKFLOW_START) as ODS_WORKFLOW_START
FROM
{{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE
A_WORKFLOW_HISTORY.WORKFLOW_NAME = ('{{ wf_name }}')
AND A_WORKFLOW_HISTORY.WORKFLOW_END < (
SELECT WORKFLOW_START
FROM {{ source('control_tables', 'A_WORKFLOW_HISTORY') }} A_WORKFLOW_HISTORY
WHERE A_WORKFLOW_HISTORY.SERVICE_NAME = '{{ service_name_filter }}'
AND A_WORKFLOW_HISTORY_KEY = {{ get_workflow_history_key() }}
)
AND A_WORKFLOW_HISTORY.WORKFLOW_SUCCESSFUL = 'Y'
AND A_WORKFLOW_HISTORY.SERVICE_NAME = 'ODS'
{% if var("input_service_name") == 'RAR' %}AND A_WORKFLOW_HISTORY.DQ_FLAG = 'T'{% endif %}
AND NOT EXISTS
(SELECT 1
FROM {{ load_history_tab }} LOAD_HISTORY
WHERE LOAD_HISTORY.A_WORKFLOW_HISTORY_SOURCE_KEY = A_WORKFLOW_HISTORY.A_WORKFLOW_HISTORY_KEY
AND LOAD_HISTORY.TASK_NAME in ( {{ tasks_names }} )
)
)
{% endmacro %}

View File

@@ -0,0 +1,33 @@
{% macro sequence_next_value(sequence_name, check_disable=false) %}
{# macro checks if a function for this sequence exists,
if it does, the function is used
if not, the standard command is used
check can be disabled by passing true in the 2nd paramater
#}
{% if execute %}
{% if not check_disable %}
{% set get_func %}
select count(*)
from all_objects
where object_type = 'FUNCTION'
and status = 'VALID'
and owner || '.' || object_name = upper('{{ sequence_name }}_fnc')
{% endset %}
{% set result = run_query(get_func) %}
{% set fnc_count = result.columns[0].values()[0] %}
{% else %}
{% set fnc_count = 0 %}
{% endif %}
{% if fnc_count > 0 %}
{% set nextvalue = sequence_name ~ '_fnc()' %}
{% else %}
{% set nextvalue = sequence_name ~ '.nextval'%}
{% endif %}
{{ return(nextvalue) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,10 @@
{% macro conditional_truncate(target_relation, source_relation) %}
DECLARE
row_count NUMBER;
BEGIN
SELECT COUNT(*) INTO row_count FROM {{ source_relation }};
IF row_count > 0 THEN
EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || '{{ target_relation }}';
END IF;
END;
{% endmacro %}

View File

@@ -0,0 +1,14 @@
{% macro generate_schema_name(custom_schema_name, node) -%}
{%- set default_schema = target.schema -%}
{%- if custom_schema_name is none -%}
{{ default_schema }}
{%- else -%}
{{ custom_schema_name | trim }}
{%- endif -%}
{%- endmacro %}

View File

@@ -0,0 +1,9 @@
{% macro oracle__snapshot_hash_arguments(args) -%}
{# Oracle-specific implementation with NULL-safe SCD_ID generation #}
LOWER(RAWTOHEX(STANDARD_HASH(
{%- for arg in args -%}
coalesce(cast({{ arg }} as varchar(4000)), '__DBT_NULL__')
{%- if not loop.last %} || '|' || {%- endif -%}
{%- endfor -%}
, 'SHA256')))
{%- endmacro %}

View File

@@ -0,0 +1,214 @@
{% macro oracle__snapshot_staging_table(strategy, source_sql, target_relation) -%}
{#--
Custom Oracle snapshot implementation that ensures unified timestamps across all snapshot operations.
SOLUTION: Using strategy.updated_at throughout
- strategy.updated_at generates a single TO_TIMESTAMP literal at Jinja compile time
- This literal is reused everywhere, replacing multiple snapshot_get_time() calls
- Ensures identical timestamps for all records created in the same snapshot run
- Eliminates microsecond differences that occur when unique_key changes (DELETE+INSERT pattern)
Changes from original dbt-oracle v1.9.4 snapshot.sql:
- Line 12: new_scd_id uses strategy.updated_at instead of snapshot_get_time()
- Lines 127-129: deletes CTE uses strategy.updated_at instead of snapshot_get_time() (3 places)
- Lines 174-175: deletion_records CTE uses strategy.updated_at instead of snapshot_get_time() (2 places)
--#}
{% set columns = config.get('snapshot_table_column_names') or get_snapshot_table_column_names() %}
{% if strategy.hard_deletes == 'new_record' %}
{% set new_scd_id = snapshot_hash_arguments([columns.dbt_scd_id, strategy.updated_at]) %}
{% endif %}
with snapshot_query as (
{{ source_sql }}
),
snapshotted_data as (
select {{ target_relation }}.*,
{{ unique_key_fields(strategy.unique_key) }}
from {{ target_relation }}
where
{% if config.get('dbt_valid_to_current') %}
{% set source_unique_key = columns.dbt_valid_to | trim %}
{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}
( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )
{% else %}
{{ columns.dbt_valid_to }} is null
{% endif %}
),
insertions_source_data as (
select
snapshot_query.*,
{{ unique_key_fields(strategy.unique_key) }},
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
{{ oracle__get_dbt_valid_to_current(strategy, columns) }},
{{ strategy.scd_id }} as {{ columns.dbt_scd_id }}
from snapshot_query
),
updates_source_data as (
select
snapshot_query.*,
{{ unique_key_fields(strategy.unique_key) }},
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_to }}
from snapshot_query
),
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}
deletes_source_data as (
select
snapshot_query.*,
{{ unique_key_fields(strategy.unique_key) }}
from snapshot_query
),
{% endif %}
insertions as (
select
'insert' as dbt_change_type,
source_data.*
{%- if strategy.hard_deletes == 'new_record' -%}
,'False' as {{ columns.dbt_is_deleted }}
{%- endif %}
from insertions_source_data source_data
left outer join snapshotted_data
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
where {{ unique_key_is_null(strategy.unique_key, "snapshotted_data") }}
or ({{ unique_key_is_not_null(strategy.unique_key, "snapshotted_data") }} and ({{ strategy.row_changed }})
{%- if strategy.hard_deletes == 'new_record' -%}
or ({{ unique_key_is_not_null(strategy.unique_key, "snapshotted_data") }} and snapshotted_data.{{ columns.dbt_is_deleted }} = 'True')
{%- endif %}
)
),
updates as (
select
'update' as dbt_change_type,
source_data.*,
snapshotted_data.{{ columns.dbt_scd_id }}
{%- if strategy.hard_deletes == 'new_record' -%}
, snapshotted_data.{{ columns.dbt_is_deleted }}
{%- endif %}
from updates_source_data source_data
join snapshotted_data
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
where (
{{ strategy.row_changed }}
)
{%- if strategy.hard_deletes == 'new_record' -%}
or snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'
{%- endif %}
)
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' -%}
,
deletes as (
select
'delete' as dbt_change_type,
source_data.*,
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
{{ strategy.updated_at }} as {{ columns.dbt_valid_to }},
snapshotted_data.{{ columns.dbt_scd_id }}
{%- if strategy.hard_deletes == 'new_record' -%}
, snapshotted_data.{{ columns.dbt_is_deleted }}
{%- endif %}
from snapshotted_data
left join deletes_source_data source_data
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
where {{ unique_key_is_null(strategy.unique_key, "source_data") }}
{%- if strategy.hard_deletes == 'new_record' %}
and not (
--avoid updating the record's valid_to if the latest entry is marked as deleted
snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'
and
{% if config.get('dbt_valid_to_current') %}
{% set source_unique_key = columns.dbt_valid_to | trim %}
{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}
( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )
{% else %}
{{ columns.dbt_valid_to }} is null
{% endif %}
)
{%- endif %}
)
{%- endif %}
{%- if strategy.hard_deletes == 'new_record' %}
{% set source_sql_cols = get_column_schema_from_query(source_sql) %}
,
deletion_records as (
select
'insert' as dbt_change_type,
{%- for col in source_sql_cols -%}
snapshotted_data.{{ adapter.quote(col.column) }},
{% endfor -%}
{%- if strategy.unique_key | is_list -%}
{%- for key in strategy.unique_key -%}
snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},
{% endfor -%}
{%- else -%}
snapshotted_data.dbt_unique_key as dbt_unique_key,
{% endif -%}
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},
{{ new_scd_id }} as {{ columns.dbt_scd_id }},
'True' as {{ columns.dbt_is_deleted }}
from snapshotted_data
left join deletes_source_data source_data
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
where {{ unique_key_is_null(strategy.unique_key, "source_data") }}
and not (
--avoid inserting a new record if the latest one is marked as deleted
snapshotted_data.{{ columns.dbt_is_deleted }} = 'True'
and
{% if config.get('dbt_valid_to_current') %}
{% set source_unique_key = columns.dbt_valid_to | trim %}
{% set target_unique_key = config.get('dbt_valid_to_current') | trim %}
( {{ equals(source_unique_key, target_unique_key) }} or {{ source_unique_key }} is null )
{% else %}
{{ columns.dbt_valid_to }} is null
{% endif %}
)
)
{%- endif %}
select * from insertions
union all
select * from updates
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}
union all
select * from deletes
{%- endif %}
{%- if strategy.hard_deletes == 'new_record' %}
union all
select * from deletion_records
{%- endif %}
{%- endmacro %}

View File

@@ -0,0 +1,14 @@
{% macro unique_key_join_on(unique_key, identifier, from_identifier) %}
{% if unique_key | is_list %}
{% for key in unique_key %}
{% set source_unique_key = (identifier ~ ".dbt_unique_key_" ~ loop.index) | trim %}
{% set target_unique_key = (from_identifier ~ ".dbt_unique_key_" ~ loop.index) | trim %}
{# Use Oracle-specific NULL-safe equality matching oracle__equals macro #}
({{ source_unique_key }} = {{ target_unique_key }} OR ({{ source_unique_key }} IS NULL AND {{ target_unique_key }} IS NULL))
{%- if not loop.last %} and {%- endif %}
{% endfor %}
{% else %}
{# Use Oracle-specific NULL-safe equality for single unique_key as well #}
({{ identifier }}.dbt_unique_key = {{ from_identifier }}.dbt_unique_key OR ({{ identifier }}.dbt_unique_key IS NULL AND {{ from_identifier }}.dbt_unique_key IS NULL))
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,7 @@
{% macro check_null(var_name, var_value) %}
{% if var_value == None or var_value | string == '' %}
{{ elog("Macro local variable " ~ var_name ~ " is empty!", "ERR", 0)}}
{{ exceptions.raise_compiler_error("Variable " ~ var_name ~ " is empty!") }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,7 @@
{% macro check_variable(var_name) %}
{% if var(var_name, none) is none %}
{{ exceptions.raise_compiler_error("The required global variable " ~ var_name ~ " hasn't been provided!") }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,5 @@
{% macro get_main_task_name(source_model_name) %}
{# return({{ source_model_name | split('__')[-1] }}) #}
{% set ret = "substr('" ~ source_model_name ~ "', 1, instr('" ~ source_model_name ~ "', '_', -1) -1)" %}
{{ return(ret) }}
{% endmacro %}

7
dbt/macros/has_tag.sql Normal file
View File

@@ -0,0 +1,7 @@
{% macro has_tag(tag_name, tag_to_run) %}
{% if tag_name == tag_to_run %}
{{ return(true) }}
{% else %}
{{ return(false) }}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,23 @@
{% macro elog(message, level, depth) %}
{% if execute %}
{% set valid_levels = ["INFO", "WARN", "ERR"] %}
{% if level not in valid_levels %}
{{ exceptions.raise_compiler_error("Invalid log level: " ~ level ~ ". Allowed values: " ~ valid_levels | join(", ")) }}
{% endif %}
{% if not depth is number or depth < 0 %}
{{ exception.raise_compiler_error("Depth must be a non-negatibe integer!") }}
{% endif %}
{% if level == "INFO" %}
{% set start_msg = "\033[0m [INFO]: " ~ "*" * depth * 2 %}
{% elif level == "WARN" %}
{% set start_msg = "\033[33m [WARN]: " ~ "*" * depth * 2 %}
{% elif level == "ERR" %}
{% set start_msg = "\033[31m [ERROR]: " ~ "*" * depth * 2 %}
{% endif %}
{{ log(start_msg | trim ~ " " ~ message, info=True)}}
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,22 @@
{% macro m_current_timestamp(type) %}
{% if type | lower == 'db' %}
{% if execute %}
{% set get_timestamp %}
SELECT to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
{% endset %}
{% set result = run_query(get_timestamp) %}
{% set current_timestamp = result.columns[0].values()[0] %}
{% endif %}
{% else %}
{% set current_timestamp = modules.datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") %}
{% endif %}
{{ return(current_timestamp) }}
{% endmacro %}

View File

@@ -0,0 +1,64 @@
{% materialization table_if_rows_exist, adapter='oracle' %}
{%- set target_relation = this -%}
-- Count the number of rows in the source table
{#-- Use the compiled SQL of the model to count rows --#}
{%- set count_query %}
select count(*) as row_count from (
{{ model.compiled_sql }}
)
{%- endset %}
{#-- Execute the count query --#}
{%- set result = run_query(count_query) -%}
{%- set num_rows = result.columns[0].values()[0]|int -%}
{#-- Proceed only if there are rows --#}
{%- if num_rows > 0 -%}
{{ log(num_rows ~ ' rows found in source data. Executing model.', info=True) }}
{#-- collect hooks --#}
{% set pre_hooks = control_model_start() %}
{% set post_hooks = control_model_end('TRG') %}
{#-- run pre_hooks --#}
{% do run_hooks(pre_hooks, inside_transaction=True) %}
{#-- Define a temporary relation with a unique name --#}
{%- set tmp_relation = api.Relation.create(
schema=target_relation.schema,
identifier=target_relation.identifier + '_tmp'
) %}
{#-- Create a temporary table with the model's SQL --#}
{% set ctas_sql = 'CREATE TABLE ' ~ tmp_relation ~ ' AS ' ~ model.compiled_sql %}
{% call statement('main') %}
{{ ctas_sql }}
{% endcall %}
{#-- Drop the existing table if it exists --#}
{%- if adapter.get_relation(target_relation.database, target_relation.schema, target_relation.identifier) is not none -%}
{{ log('Dropping target table ' ~ target_relation.identifier, info=True) }}
{% do run_query('DROP TABLE ' ~ target_relation.schema ~ '.' ~ target_relation.identifier) %}
{%- endif -%}
{#-- Rename the temporary table to the target name --#}
{{ log('Renaming temporary table to target table', info=True) }}
{% do run_query('ALTER TABLE ' ~ tmp_relation ~ ' RENAME TO ' ~ target_relation.identifier) %}
{#-- run post_hooks --#}
{% do run_hooks(post_hooks, inside_transaction=True) %}
{%- else -%}
{#-- Do nothing; leave the target table untouched --#}
{{ log('No rows in source data. Skipping model execution.', info=True) }}
{% call statement('main') %}
SELECT 1 FROM DUAL
{% endcall %}
{%- endif -%}
{#-- Return the target relation to dbt --#}
{{ return({'relations': [target_relation]}) }}
{% endmaterialization %}

View File

@@ -0,0 +1,268 @@
{% macro get_sql_t_collateral_default() %}
-- depends_on: {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }}
select 'MARKET_ASSET' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS, -- to find
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS, -- to find
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
ISSUER_CAS AS ISSUER_CRED_ASSESS_SOURCE,
ISSUER_RATING_ENUM_VALUE,
ISSUER_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(18 CHAR)) AS NONMKT_ASSET_TYPE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_DEBTORS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ELIGIBLE_VIA_GUARANTOR,
CAST(NULL AS VARCHAR2(200 CHAR)) AS DEBTOR_NAME,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_ID,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_GROUP,
CAST(NULL AS VARCHAR2(17 CHAR)) AS DEBTOR_CLASS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS DEBTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS DEBTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS DEBTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS DEBTOR_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(255 CHAR)) AS GUARANTOR_NAME,
CAST(NULL AS VARCHAR2(256 CHAR)) AS GUARANTOR_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS GUARANTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS GUARANTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS GUARANTOR_RATING_NUMBER_VALUE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
CAST(NULL AS DATE) AS MATURITY_DATE, -- to find
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_CLASS,
ISSUER_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS INTEREST_PAYMENT_TYPE,
CAST(NULL AS VARCHAR2(5 CHAR)) AS RESIDUAL_MATURITY,
CAST(NULL AS VARCHAR2(22 CHAR)) AS BUCKET_SIZE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS GUARANTOR_CAS_PROVIDER,
ISSUER_CRED_PROVIDER AS ISSUER_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(1 CHAR)) AS SECURED,
CAST(NULL AS VARCHAR2(10 CHAR)) AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
TRIPARTY_AGENT,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_IDTYPE,
CAST(NULL AS VARCHAR2(1 CHAR)) AS CAP,
CAST(NULL AS VARCHAR2(9 CHAR)) AS REFERENCE_RATE,
CAST(NULL AS VARCHAR2(200 CHAR)) AS REFERENCE_RATE_COMMENT,
CAST(NULL AS VARCHAR2(1 CHAR)) AS RESET_PERIOD_MORE_ONE_YEAR,
CAST(NULL AS VARCHAR2(50 CHAR)) AS OA_ID,
CAST(NULL AS VARCHAR2(60 CHAR)) AS CONTRACT_ID,
CAST(NULL AS VARCHAR2(60 CHAR)) AS INSTRMNT_ID,
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }}
WHERE A_WORKFLOW_HISTORY_KEY IS NULL
UNION
select 'NON_MARKET_ASSET' AS DATASET,
CAST (NULL AS DATE) AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS,
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST (NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST (NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
NO_AGGR_DEBTORS AS NO_OF_AGGREGATED_DEBTORS,
ELIGIBLE_VIA_GUAR AS ELIGIBLE_VIA_GUARANTOR,
DEBTOR_NAME,
DEBTOR_ID,
DEBTOR_TYPE AS DEBTOR_GROUP,
DEBTOR_CLASS,
DEBTOR_RESIDENCE,
DEBTOR_CAS AS DEBTOR_CRED_ASSESS_SOURCE,
DEBTOR_RATING_ENUM_VALUE,
DEBTOR_RATING_NUMBER_VALUE,
GUAR_NAME AS GUARANTOR_NAME,
GUAR_ID AS GUARANTOR_ID,
GUAR_RESIDENCE AS GUARANTOR_RESIDENCE,
GUAR_CRED_CAS AS GUARANTOR_CRED_ASSESS_SOURCE,
GUAR_RATING_ENUM_VALUE AS GUARANTOR_RATING_ENUM_VALUE,
GUAR_RATING_NUMBER_VALUE AS GUARANTOR_RATING_NUMBER_VALUE,
NO_AGGR_ASSETS AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
MATURITY_DATE,
GUAR_CLASS AS GUARANTOR_CLASS,
CAST (NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
INTEREST_PAYMENT_TYPE,
RESIDUAL_MATURITY,
BUCKET_SIZE,
DEBTOR_CRED_PROV AS DEBTOR_CAS_PROVIDER,
GUAR_CRED_PROV AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
SECURED_FLAG AS SECURED,
DENOMINATION AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
CAST(NULL AS VARCHAR2(6 CHAR)) AS TRIPARTY_AGENT,
DEBTOR_ID_TYPE AS DEBTOR_IDTYPE,
CAP,
REFERENCE_RATE,
REFERENCE_RATE_COMMENT,
RESET_PERIOD_MORE_ONE_YEAR,
OA_ID,
CONTRACT_ID,
INSTRMNT_ID,
'C2D_ACC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC_SQ') }}
WHERE A_WORKFLOW_HISTORY_KEY IS NULL
UNION
select 'NON_MARKET_DECC' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
ISIN_CODE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
NOM_AMT_SUBMITTED AS COLL_VALUE_BEFORE_HAIRCUTS,
NOM_AMT_SUBMITTED AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_DEBTORS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ELIGIBLE_VIA_GUARANTOR,
CAST(NULL AS VARCHAR2(200 CHAR)) AS DEBTOR_NAME,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_ID,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_GROUP,
CAST(NULL AS VARCHAR2(17 CHAR)) AS DEBTOR_CLASS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS DEBTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS DEBTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS DEBTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS DEBTOR_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(255 CHAR)) AS GUARANTOR_NAME,
CAST(NULL AS VARCHAR2(256 CHAR)) AS GUARANTOR_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS GUARANTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS GUARANTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS GUARANTOR_RATING_NUMBER_VALUE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
CAST(NULL AS DATE) AS MATURITY_DATE, -- to find
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS INTEREST_PAYMENT_TYPE,
CAST(NULL AS VARCHAR2(5 CHAR)) AS RESIDUAL_MATURITY,
CAST(NULL AS VARCHAR2(22 CHAR)) AS BUCKET_SIZE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(1 CHAR)) AS SECURED,
CAST(NULL AS VARCHAR2(10 CHAR)) AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
TRIPARTY_AGENT,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_IDTYPE, -- check
CAST(NULL AS VARCHAR2(1 CHAR)) AS CAP, -- check
CAST(NULL AS VARCHAR2(9 CHAR)) AS REFERENCE_RATE, -- to find
CAST(NULL AS VARCHAR2(200 CHAR)) AS REFERENCE_RATE_COMMENT, --check
CAST(NULL AS VARCHAR2(1 CHAR)) AS RESET_PERIOD_MORE_ONE_YEAR, -- check
CAST(NULL AS VARCHAR2(50 CHAR)) AS OA_ID, -- check
CAST(NULL AS VARCHAR2(60 CHAR)) AS CONTRACT_ID, -- check
CAST(NULL AS VARCHAR2(60 CHAR)) AS INSTRMNT_ID, -- check
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM_SQ') }}
WHERE A_WORKFLOW_HISTORY_KEY IS NULL
UNION
select 'NON_MARKET_ASSET' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS,
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
NO_AGGR_DEBTORS AS NO_OF_AGGREGATED_DEBTORS,
ELIGIBLE_VIA_GUAR AS ELIGIBLE_VIA_GUARANTOR,
DEBTOR_NAME,
DEBTOR_ID,
DEBTOR_TYPE AS DEBTOR_GROUP,
DEBTOR_CLASS,
DEBTOR_RESIDENCE,
DEBTOR_CAS AS DEBTOR_CRED_ASSESS_SOURCE,
DEBTOR_RATING_ENUM_VALUE,
DEBTOR_RATING_NUMBER_VALUE,
GUAR_NAME AS GUARANTOR_NAME,
GUAR_ID AS GUARANTOR_ID,
GUAR_RESIDENCE AS GUARANTOR_RESIDENCE,
GUAR_CRED_CAS AS GUARANTOR_CRED_ASSESS_SOURCE,
GUAR_RATING_ENUM_VALUE AS GUARANTOR_RATING_ENUM_VALUE,
GUAR_RATING_NUMBER_VALUE AS GUARANTOR_RATING_NUMBER_VALUE,
NO_AGGR_ASSETS AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
MATURITY_DATE,
GUAR_CLASS AS GUARANTOR_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
INTEREST_PAYMENT_TYPE,
RESIDUAL_MATURITY,
BUCKET_SIZE,
DEBTOR_CRED_PROV AS DEBTOR_CAS_PROVIDER,
GUAR_CRED_PROV AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
SECURED_FLAG AS SECURED,
DENOMINATION AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
CAST(NULL AS VARCHAR2(6 CHAR)) AS TRIPARTY_AGENT,
DEBTOR_ID_TYPE AS DEBTOR_IDTYPE,
CAP,
REFERENCE_RATE,
REFERENCE_RATE_COMMENT,
RESET_PERIOD_MORE_ONE_YEAR,
OA_ID,
CONTRACT_ID,
INSTRMNT_ID,
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM_SQ') }}
WHERE A_WORKFLOW_HISTORY_KEY IS NULL
{% endmacro %}

View File

@@ -0,0 +1,100 @@
{% macro get_sql_t_collateral_ma_dissem() %}
-- depends_on: {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }}
select 'MARKET_ASSET' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS, -- to find
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS, -- to find
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
ISSUER_CAS AS ISSUER_CRED_ASSESS_SOURCE,
ISSUER_RATING_ENUM_VALUE,
ISSUER_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(18 CHAR)) AS NONMKT_ASSET_TYPE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_DEBTORS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ELIGIBLE_VIA_GUARANTOR,
CAST(NULL AS VARCHAR2(200 CHAR)) AS DEBTOR_NAME,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_ID,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_GROUP,
CAST(NULL AS VARCHAR2(17 CHAR)) AS DEBTOR_CLASS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS DEBTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS DEBTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS DEBTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS DEBTOR_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(255 CHAR)) AS GUARANTOR_NAME,
CAST(NULL AS VARCHAR2(256 CHAR)) AS GUARANTOR_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS GUARANTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS GUARANTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS GUARANTOR_RATING_NUMBER_VALUE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
CAST(NULL AS DATE) AS MATURITY_DATE, -- to find
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_CLASS,
ISSUER_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS INTEREST_PAYMENT_TYPE,
CAST(NULL AS VARCHAR2(5 CHAR)) AS RESIDUAL_MATURITY,
CAST(NULL AS VARCHAR2(22 CHAR)) AS BUCKET_SIZE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS GUARANTOR_CAS_PROVIDER,
ISSUER_CRED_PROVIDER AS ISSUER_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(1 CHAR)) AS SECURED,
CAST(NULL AS VARCHAR2(10 CHAR)) AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
TRIPARTY_AGENT,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_IDTYPE,
CAST(NULL AS VARCHAR2(1 CHAR)) AS CAP,
CAST(NULL AS VARCHAR2(9 CHAR)) AS REFERENCE_RATE,
CAST(NULL AS VARCHAR2(200 CHAR)) AS REFERENCE_RATE_COMMENT,
CAST(NULL AS VARCHAR2(1 CHAR)) AS RESET_PERIOD_MORE_ONE_YEAR,
CAST(NULL AS VARCHAR2(50 CHAR)) AS OA_ID,
CAST(NULL AS VARCHAR2(60 CHAR)) AS CONTRACT_ID,
CAST(NULL AS VARCHAR2(60 CHAR)) AS INSTRMNT_ID,
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }}
WHERE (REPORTING_NCB, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ this }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM_SQ') }}
)
AND DATASET = 'MARKET_ASSET'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
AND A_WORKFLOW_HISTORY_KEY = MAX_A_WORKFLOW_HISTORY_KEY
{% endmacro %}

View File

@@ -0,0 +1,71 @@
{% macro get_sql_t_collateral_nma_acc() %}
-- depends_on: {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC_SQ') }}
select 'NON_MARKET_ASSET' AS DATASET,
CAST (NULL AS DATE) AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS,
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST (NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST (NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
NO_AGGR_DEBTORS AS NO_OF_AGGREGATED_DEBTORS,
ELIGIBLE_VIA_GUAR AS ELIGIBLE_VIA_GUARANTOR,
DEBTOR_NAME,
DEBTOR_ID,
DEBTOR_TYPE AS DEBTOR_GROUP,
DEBTOR_CLASS,
DEBTOR_RESIDENCE,
DEBTOR_CAS AS DEBTOR_CRED_ASSESS_SOURCE,
DEBTOR_RATING_ENUM_VALUE,
DEBTOR_RATING_NUMBER_VALUE,
GUAR_NAME AS GUARANTOR_NAME,
GUAR_ID AS GUARANTOR_ID,
GUAR_RESIDENCE AS GUARANTOR_RESIDENCE,
GUAR_CRED_CAS AS GUARANTOR_CRED_ASSESS_SOURCE,
GUAR_RATING_ENUM_VALUE AS GUARANTOR_RATING_ENUM_VALUE,
GUAR_RATING_NUMBER_VALUE AS GUARANTOR_RATING_NUMBER_VALUE,
NO_AGGR_ASSETS AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
MATURITY_DATE,
GUAR_CLASS AS GUARANTOR_CLASS,
CAST (NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
INTEREST_PAYMENT_TYPE,
RESIDUAL_MATURITY,
BUCKET_SIZE,
DEBTOR_CRED_PROV AS DEBTOR_CAS_PROVIDER,
GUAR_CRED_PROV AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
SECURED_FLAG AS SECURED,
DENOMINATION AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
CAST(NULL AS VARCHAR2(6 CHAR)) AS TRIPARTY_AGENT,
DEBTOR_ID_TYPE AS DEBTOR_IDTYPE,
CAP,
REFERENCE_RATE,
REFERENCE_RATE_COMMENT,
RESET_PERIOD_MORE_ONE_YEAR,
OA_ID,
CONTRACT_ID,
INSTRMNT_ID,
'C2D_ACC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC_SQ') }}
WHERE (reporting_ncb, SNAPSHOT_DATE) IN (
SELECT DISTINCT reporting_ncb, snapshot_date
FROM {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC_SQ') }})
AND A_WORKFLOW_HISTORY_KEY = MAX_A_WORKFLOW_HISTORY_KEY
{% endmacro %}

View File

@@ -0,0 +1,101 @@
{% macro get_sql_t_collateral_nma_decc_dissem() %}
-- depends_on: {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM_SQ') }}
select 'NON_MARKET_DECC' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
ISIN_CODE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
NOM_AMT_SUBMITTED AS COLL_VALUE_BEFORE_HAIRCUTS,
NOM_AMT_SUBMITTED AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_DEBTORS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ELIGIBLE_VIA_GUARANTOR,
CAST(NULL AS VARCHAR2(200 CHAR)) AS DEBTOR_NAME,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_ID,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_GROUP,
CAST(NULL AS VARCHAR2(17 CHAR)) AS DEBTOR_CLASS,
CAST(NULL AS VARCHAR2(50 CHAR)) AS DEBTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS DEBTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS DEBTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS DEBTOR_RATING_NUMBER_VALUE,
CAST(NULL AS VARCHAR2(255 CHAR)) AS GUARANTOR_NAME,
CAST(NULL AS VARCHAR2(256 CHAR)) AS GUARANTOR_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_RESIDENCE,
CAST(NULL AS VARCHAR2(4 CHAR)) AS GUARANTOR_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(20 CHAR)) AS GUARANTOR_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS GUARANTOR_RATING_NUMBER_VALUE,
CAST(NULL AS NUMBER(10,0)) AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
CAST(NULL AS DATE) AS MATURITY_DATE, -- to find
CAST(NULL AS VARCHAR2(50 CHAR)) AS GUARANTOR_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS INTEREST_PAYMENT_TYPE,
CAST(NULL AS VARCHAR2(5 CHAR)) AS RESIDUAL_MATURITY,
CAST(NULL AS VARCHAR2(22 CHAR)) AS BUCKET_SIZE,
CAST(NULL AS VARCHAR2(100 CHAR)) AS DEBTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(1 CHAR)) AS SECURED,
CAST(NULL AS VARCHAR2(10 CHAR)) AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
TRIPARTY_AGENT,
CAST(NULL AS VARCHAR2(5 CHAR)) AS DEBTOR_IDTYPE, -- check
CAST(NULL AS VARCHAR2(1 CHAR)) AS CAP, -- check
CAST(NULL AS VARCHAR2(9 CHAR)) AS REFERENCE_RATE, -- to find
CAST(NULL AS VARCHAR2(200 CHAR)) AS REFERENCE_RATE_COMMENT, --check
CAST(NULL AS VARCHAR2(1 CHAR)) AS RESET_PERIOD_MORE_ONE_YEAR, -- check
CAST(NULL AS VARCHAR2(50 CHAR)) AS OA_ID, -- check
CAST(NULL AS VARCHAR2(60 CHAR)) AS CONTRACT_ID, -- check
CAST(NULL AS VARCHAR2(60 CHAR)) AS INSTRMNT_ID, -- check
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM_SQ') }}
WHERE (reporting_ncb, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM_SQ') }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ this }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM_SQ') }}
)
AND DATASET = 'NON_MARKET_DECC'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
AND A_WORKFLOW_HISTORY_KEY = MAX_A_WORKFLOW_HISTORY_KEY
{% endmacro %}

View File

@@ -0,0 +1,106 @@
{% macro get_sql_t_collateral_nma_dissem() %}
-- depends_on: {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM_SQ') }}
select 'NON_MARKET_ASSET' AS DATASET,
FILE_CREATION_DATE AS DATABASE_ENTRY_TIMESTAMP,
SNAPSHOT_DATE,
REPORTING_NCB AS NCB,
MFI_ID,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISIN_CODE,
OTHER_REG_NO AS OTHER_REGISTRATION_NUMBER,
NOM_AMT_SUBMITTED AS NOMINAL_AMOUNT_SUBMITTED,
COLL_BEFORE_HAIRCUTS AS COLL_VALUE_BEFORE_HAIRCUTS,
COLL_AFTER_HAIRCUTS AS COLL_VALUE_AFTER_HAIRCUTS,
TYPE_OF_SYSTEM AS SYSTEM_TYPE,
TYPE_OF_OPERATION,
DOM_OR_XBORDER AS DOM_OR_CB,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_CRED_ASSESS_SOURCE,
CAST(NULL AS VARCHAR2(50 CHAR)) AS ISSUER_RATING_ENUM_VALUE,
CAST(NULL AS NUMBER(9,8)) AS ISSUER_RATING_NUMBER_VALUE,
NON_MKT_ASSET_TYPE AS NONMKT_ASSET_TYPE,
NO_AGGR_DEBTORS AS NO_OF_AGGREGATED_DEBTORS,
ELIGIBLE_VIA_GUAR AS ELIGIBLE_VIA_GUARANTOR,
DEBTOR_NAME,
DEBTOR_ID,
DEBTOR_TYPE AS DEBTOR_GROUP,
DEBTOR_CLASS,
DEBTOR_RESIDENCE,
DEBTOR_CAS AS DEBTOR_CRED_ASSESS_SOURCE,
DEBTOR_RATING_ENUM_VALUE,
DEBTOR_RATING_NUMBER_VALUE,
GUAR_NAME AS GUARANTOR_NAME,
GUAR_ID AS GUARANTOR_ID,
GUAR_RESIDENCE AS GUARANTOR_RESIDENCE,
GUAR_CRED_CAS AS GUARANTOR_CRED_ASSESS_SOURCE,
GUAR_RATING_ENUM_VALUE AS GUARANTOR_RATING_ENUM_VALUE,
GUAR_RATING_NUMBER_VALUE AS GUARANTOR_RATING_NUMBER_VALUE,
NO_AGGR_ASSETS AS NO_OF_AGGREGATED_ASSETS,
NCB_COMMENT AS NCB_COMMENTS,
MATURITY_DATE,
GUAR_CLASS AS GUARANTOR_CLASS,
CAST(NULL AS VARCHAR2(8 CHAR)) AS ISSUER_CLASS,
INTEREST_PAYMENT_TYPE,
RESIDUAL_MATURITY,
BUCKET_SIZE,
DEBTOR_CRED_PROV AS DEBTOR_CAS_PROVIDER,
GUAR_CRED_PROV AS GUARANTOR_CAS_PROVIDER,
CAST(NULL AS VARCHAR2(100 CHAR)) AS ISSUER_CAS_PROVIDER,
SECURED_FLAG AS SECURED,
DENOMINATION AS NON_MARKET_DENOMINATION,
MOBILISATION_CHANNEL,
CCB,
INVESTOR_SSS,
INTERMEDIARY_SSS,
ISSUER_SSS,
CAST(NULL AS VARCHAR2(6 CHAR)) AS TRIPARTY_AGENT,
DEBTOR_ID_TYPE AS DEBTOR_IDTYPE,
CAP,
REFERENCE_RATE,
REFERENCE_RATE_COMMENT,
RESET_PERIOD_MORE_ONE_YEAR,
OA_ID,
CONTRACT_ID,
INSTRMNT_ID,
'C2D_UC' AS SOURCE,
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY
from {{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM_SQ') }}
WHERE (reporting_ncb, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM_SQ') }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ this }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ ref('m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM_SQ') }}
)
AND DATASET = 'NON_MARKET_ASSET'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
AND A_WORKFLOW_HISTORY_KEY = MAX_A_WORKFLOW_HISTORY_KEY
AND (reporting_ncb, SNAPSHOT_DATE) NOT IN (
SELECT DISTINCT REPORTING_NCB, SNAPSHOT_DATE
FROM {{ this }}
WHERE SOURCE = 'C2D_ACC'
)
{% endmacro %}

View File

@@ -0,0 +1,126 @@
{% macro get_sql_t_collateral_prehook( model, source_model ) %}
{% if var('tag_to_run') == 'm_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM' %}
DELETE FROM {{ model }}
WHERE DATASET = 'MARKET_ASSET'
AND SOURCE = 'C2D_UC'
AND (NCB, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ source_model }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ model }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ source_model }}
)
AND DATASET = 'MARKET_ASSET'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
{% elif var('tag_to_run') == 'm_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC' %}
DELETE FROM {{ model }}
WHERE DATASET = 'NON_MARKET_ASSET'
AND (NCB, SNAPSHOT_DATE) IN (
SELECT DISTINCT reporting_ncb, snapshot_date
FROM {{ source_model }}
{% elif var('tag_to_run') == 'm_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM' %}
DELETE FROM {{ model }}
WHERE DATASET = 'NON_MARKET_DECC'
AND SOURCE = 'C2D_UC'
AND (NCB, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ source_model }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ model }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ source_model }}
)
AND DATASET = 'NON_MARKET_DECC'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
{% elif var('tag_to_run') == 'm_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM' %}
DELETE FROM {{ model }}
WHERE DATASET = 'NON_MARKET_ASSET'
AND SOURCE = 'C2D_UC'
AND (NCB, SNAPSHOT_DATE) in (
SELECT DISTINCT
src.reporting_ncb,
src.snapshot_date
FROM
{{ source_model }} src
full outer join (SELECT DISTINCT
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
FROM
{{ model }}
WHERE
( ncb,
snapshot_date ) IN (
SELECT DISTINCT
reporting_ncb,
snapshot_date
FROM
{{ source_model }}
)
AND DATASET = 'NON_MARKET_ASSET'
AND SOURCE = 'C2D_UC'
GROUP BY
ncb,
snapshot_date,
DATABASE_ENTRY_TIMESTAMP
) trg on src.reporting_ncb = trg.ncb
and TRUNC(src.snapshot_date) = TRUNC(trg.SNAPSHOT_DATE)
WHERE
src.max_a_workflow_history_key = src.a_workflow_history_key
and src.FILE_CREATION_DATE > NVL(trg.DATABASE_ENTRY_TIMESTAMP,src.FILE_CREATION_DATE - 1)
)
{% endif %}
{% endmacro %}

View File

@@ -0,0 +1,46 @@
#
# This macro overwrites the macro with the same name in the dbt-oracle adapter, which was found in
# /lib/python3.11/site-packages/dbt/include/oracle/macros/adapters.sql
# Reason: The SQL query in the original macro had severe performance issues when accessing sys.all_views
#
{% macro oracle__list_relations_without_caching(schema_relation) %}
{% call statement('list_relations_without_caching', fetch_result=True) -%}
with tables as
(select SYS_CONTEXT('userenv', 'DB_NAME') table_catalog,
owner table_schema,
table_name,
case
when iot_type = 'Y'
then 'IOT'
when temporary = 'Y'
then 'TEMP'
else 'BASE TABLE'
end table_type
from sys.all_tables
where upper(table_name) not in (
select upper(mview_name)
from sys.all_mviews
where upper(owner) = upper('{{ schema_relation.schema }}')
)
union all
select SYS_CONTEXT('userenv', 'DB_NAME'),
owner,
object_name,
object_type
from sys.all_objects
WHERE object_type in ('VIEW', 'MATERIALIZED VIEW')
)
select table_catalog as "database_name"
,table_name as "name"
,table_schema as "schema_name"
,case table_type
when 'BASE TABLE' then 'table'
when 'VIEW' then 'view'
when 'MATERIALIZED VIEW' then 'materialized_view'
end as "kind"
from tables
where table_type in ('BASE TABLE', 'VIEW', 'MATERIALIZED VIEW')
and upper(table_schema) = upper('{{ schema_relation.schema }}')
{% endcall %}
{{ return(load_result('list_relations_without_caching').table) }}
{% endmacro %}

View File

@@ -0,0 +1,38 @@
version: 2
sources:
- name: control_tables
schema: ct_mrds
tables:
- name: A_WORKFLOW_HISTORY
identifier: A_WORKFLOW_HISTORY
- name: A_TASK_HISTORY
identifier: A_TASK_HISTORY
- name: A_TASK_HISTORY_SOURCE
identifier: A_TASK_HISTORY_SOURCE
- name: A_TASK_HISTORY_TARGET
identifier: A_TASK_HISTORY_TARGET
- name: A_MOPDB_LOAD_HISTORY
identifier: A_MOPDB_LOAD_HISTORY
- name: A_DWH_LOAD_HISTORY
identifier: A_DWH_LOAD_HISTORY
- name: control_sequences
schema: ct_mrds
tables:
- name: A_WORKFLOW_HISTORY_SEQ
identifier: A_WORKFLOW_HISTORY_KEY_SEQ
- name: A_TASK_HISTORY_SEQ
identifier: A_TASK_HISTORY_KEY_SEQ
- name: A_TASK_HISTORY_SOURCE_SEQ
identifier: A_TASK_HISTORY_SOURCE_KEY_SEQ
- name: A_TASK_HISTORY_TARGET_SEQ
identifier: A_TASK_HISTORY_TARGET_KEY_SEQ

View File

@@ -0,0 +1,27 @@
/*
Welcome to your first dbt model!
Did you know that you can also configure models directly within SQL files?
This will override configurations stated in dbt_project.yml
Try changing "table" to "view" below
*/
{{ config(materialized='table') }}
with source_data as (
select 1 as id
union all
select null as id
)
select *
from source_data
/*
Uncomment the line below to remove records with null `id` values
*/
-- where id is not null

View File

@@ -0,0 +1,6 @@
-- Use the `ref` function to select from other models
select *
from {{ ref('my_first_dbt_model') }}
where id = 1

View File

@@ -0,0 +1,21 @@
version: 2
models:
- name: my_first_dbt_model
description: "A starter dbt model"
columns:
- name: id
description: "The primary key for this table"
tests:
- unique
- not_null
- name: my_second_dbt_model
description: "A starter dbt model"
columns:
- name: id
description: "The primary key for this table"
tests:
- unique
- not_null

View File

@@ -0,0 +1,37 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_C2D_T_CEPH_OU_CEPH_PRICING"],
alias = "T_CEPH_SQ",
schema = "C2D",
meta={
"author": "Shane Dalisay",
"created": "2026-01-13",
"last_updated_by": "Shane Dalisay",
"last_updated": "2026-01-13 - ticket MARS-193"
}
) }}
SELECT DISTINCT
/*+ PARALLEL(OU_CEPH_PRICING,4) */
OU_CEPH_PRICING.A_KEY,
OU_CEPH_PRICING.A_WORKFLOW_HISTORY_KEY,
CAST(OU_CEPH_PRICING.PRICE_DATE AS TIMESTAMP(6)) AS PRICE_DATE,
CAST(OU_CEPH_PRICING.ISIN_CODE AS VARCHAR2(200 BYTE)) AS ISIN_CODE,
CAST(OU_CEPH_PRICING.PRICE AS NUMBER(28,10)) AS PRICE,
CAST(OU_CEPH_PRICING.WARNING_CODE AS VARCHAR2(20 BYTE)) AS WARNING_CODE,
CAST(OU_CEPH_PRICING.ACCRUED_INTEREST AS NUMBER(28,10)) AS ACCRUED_INTEREST,
CAST(OU_CEPH_PRICING.POOL_FACTOR AS NUMBER(28,10)) AS POOL_FACTOR,
CAST(OU_CEPH_PRICING.PRICE_NATURE AS VARCHAR2(20 BYTE)) AS PRICE_NATURE,
CAST(OU_CEPH_PRICING.WAL AS NUMBER(28,10)) AS WAL,
CAST(OU_CEPH_PRICING.CLEAN_PRICE_WO_MARKDOWN AS NUMBER(28,10)) AS CLEAN_PRICE_WO_MARKDOWN,
CAST(OU_CEPH_PRICING.ACCRUED_INTEREST_WO_MARKDOWN AS NUMBER(28,10)) AS ACCRUED_INTEREST_WO_MARKDOWN,
CAST(OU_CEPH_PRICING.THEORETICAL_PRICE AS NUMBER(28,10)) AS THEORETICAL_PRICE
FROM
{{ source("ods","PRICING")}} OU_CEPH_PRICING
WHERE
OU_CEPH_PRICING.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_CEPH_PRICING",
get_main_task_name(model.name)
)
}}

View File

@@ -0,0 +1,41 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_MA_DISSEM"],
alias='UC_MA_DISSEM_SQ',
schema='C2D'
) }}
SELECT /*+ PARALLEL(OU_C2D_UC_MA_DISSEM,4) */
MAX(OU_C2D_UC_MA_DISSEM.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_C2D_UC_MA_DISSEM.REPORTING_NCB,OU_C2D_UC_MA_DISSEM.SNAPSHOT_DATE ) as MAX_A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_MA_DISSEM.A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_MA_DISSEM.REPORTING_NCB,
OU_C2D_UC_MA_DISSEM.SNAPSHOT_DATE,
OU_C2D_UC_MA_DISSEM.FILE_CREATION_DATE,
OU_C2D_UC_MA_DISSEM.MFI_ID,
OU_C2D_UC_MA_DISSEM.ISIN_CODE,
OU_C2D_UC_MA_DISSEM.OTHER_REG_NO,
OU_C2D_UC_MA_DISSEM.NOM_AMT_SUBMITTED,
OU_C2D_UC_MA_DISSEM.COLL_BEFORE_HAIRCUTS,
OU_C2D_UC_MA_DISSEM.COLL_AFTER_HAIRCUTS,
OU_C2D_UC_MA_DISSEM.TYPE_OF_SYSTEM,
OU_C2D_UC_MA_DISSEM.TYPE_OF_OPERATION,
OU_C2D_UC_MA_DISSEM.DOM_OR_XBORDER,
OU_C2D_UC_MA_DISSEM.ISSUER_CAS,
OU_C2D_UC_MA_DISSEM.ISSUER_CRED_PROVIDER,
OU_C2D_UC_MA_DISSEM.ISSUER_CLASS,
OU_C2D_UC_MA_DISSEM.ISSUER_RATING_ENUM_VALUE,
OU_C2D_UC_MA_DISSEM.ISSUER_RATING_NUMBER_VALUE,
OU_C2D_UC_MA_DISSEM.NCB_COMMENT,
OU_C2D_UC_MA_DISSEM.MOBILISATION_CHANNEL,
OU_C2D_UC_MA_DISSEM.CCB,
OU_C2D_UC_MA_DISSEM.INVESTOR_SSS,
OU_C2D_UC_MA_DISSEM.INTERMEDIARY_SSS,
OU_C2D_UC_MA_DISSEM.ISSUER_SSS,
OU_C2D_UC_MA_DISSEM.TRIPARTY_AGENT,
OU_C2D_UC_MA_DISSEM.SUSPECT_ID,
OU_C2D_UC_MA_DISSEM.QUALITY_CHECK_STATUS,
OU_C2D_UC_MA_DISSEM.ERROR_CODE,
OU_C2D_UC_MA_DISSEM.ERROR_MESSAGE,
OU_C2D_UC_MA_DISSEM.ERROR_POSITION_IN_FILE
FROM
{{ source('ou_c2d','UC_MA_DISSEM') }} OU_C2D_UC_MA_DISSEM
WHERE A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key('w_OU_C2D_UC_DISSEM', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,72 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_ACC"],
alias='UC_NMA_ACC_SQ',
schema='C2D'
) }}
SELECT /*+ PARALLEL(OU_C2D_UC_NMA_ACC,4) */
MAX(OU_C2D_UC_NMA_ACC.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_C2D_UC_NMA_ACC.REPORTING_NCB,OU_C2D_UC_NMA_ACC.SNAPSHOT_DATE ) as MAX_A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_ACC.A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_ACC.REPORTING_NCB,
OU_C2D_UC_NMA_ACC.SNAPSHOT_DATE,
OU_C2D_UC_NMA_ACC.MFI_ID,
OU_C2D_UC_NMA_ACC.OTHER_REG_NO,
OU_C2D_UC_NMA_ACC.TYPE_OF_SYSTEM,
OU_C2D_UC_NMA_ACC.TYPE_OF_OPERATION,
OU_C2D_UC_NMA_ACC.DOM_OR_XBORDER,
OU_C2D_UC_NMA_ACC.NON_MKT_ASSET_TYPE,
OU_C2D_UC_NMA_ACC.MATURITY_DATE,
OU_C2D_UC_NMA_ACC.INTEREST_PAYMENT_TYPE,
OU_C2D_UC_NMA_ACC.CAP,
OU_C2D_UC_NMA_ACC.REFERENCE_RATE,
OU_C2D_UC_NMA_ACC.REFERENCE_RATE_COMMENT,
OU_C2D_UC_NMA_ACC.COLL_BEFORE_HAIRCUTS,
OU_C2D_UC_NMA_ACC.COLL_AFTER_HAIRCUTS,
OU_C2D_UC_NMA_ACC.NO_AGGR_DEBTORS,
OU_C2D_UC_NMA_ACC.ELIGIBLE_VIA_GUAR,
OU_C2D_UC_NMA_ACC.DEBTOR_TYPE,
OU_C2D_UC_NMA_ACC.DEBTOR_NAME,
OU_C2D_UC_NMA_ACC.DEBTOR_ID_TYPE,
OU_C2D_UC_NMA_ACC.DEBTOR_ID,
OU_C2D_UC_NMA_ACC.DEBTOR_CLASS,
OU_C2D_UC_NMA_ACC.DEBTOR_RESIDENCE,
OU_C2D_UC_NMA_ACC.DEBTOR_CAS,
OU_C2D_UC_NMA_ACC.DEBTOR_CRED_PROV,
OU_C2D_UC_NMA_ACC.DEBTOR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_ACC.DEBTOR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_ACC.GUAR_TYPE,
OU_C2D_UC_NMA_ACC.GUAR_NAME,
OU_C2D_UC_NMA_ACC.GUAR_ID_TYPE,
OU_C2D_UC_NMA_ACC.GUAR_ID,
OU_C2D_UC_NMA_ACC.GUAR_CLASS,
OU_C2D_UC_NMA_ACC.GUAR_RESIDENCE,
OU_C2D_UC_NMA_ACC.GUAR_CRED_CAS,
OU_C2D_UC_NMA_ACC.GUAR_CRED_PROV,
OU_C2D_UC_NMA_ACC.GUAR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_ACC.GUAR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_ACC.NO_AGGR_ASSETS,
OU_C2D_UC_NMA_ACC.DENOMINATION,
OU_C2D_UC_NMA_ACC.SECURED_FLAG,
OU_C2D_UC_NMA_ACC.RESIDUAL_MATURITY,
OU_C2D_UC_NMA_ACC.BUCKET_SIZE,
OU_C2D_UC_NMA_ACC.NCB_COMMENT,
OU_C2D_UC_NMA_ACC.VALUATION_METHODOLOGY,
OU_C2D_UC_NMA_ACC.NOM_AMT_SUBMITTED,
OU_C2D_UC_NMA_ACC.RESET_PERIOD_MORE_ONE_YEAR,
OU_C2D_UC_NMA_ACC.MOBILISATION_CHANNEL,
OU_C2D_UC_NMA_ACC.CCB,
OU_C2D_UC_NMA_ACC.INVESTOR_SSS,
OU_C2D_UC_NMA_ACC.INTERMEDIARY_SSS,
OU_C2D_UC_NMA_ACC.ISSUER_SSS,
OU_C2D_UC_NMA_ACC.OA_ID,
OU_C2D_UC_NMA_ACC.CONTRACT_ID,
OU_C2D_UC_NMA_ACC.INSTRMNT_ID
FROM
{{ source('ou_c2d','UC_NMA_ACC') }} OU_C2D_UC_NMA_ACC
WHERE A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key('w_ODS_C2D_UC_ACC', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,40 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DECC_DISSEM"],
alias='UC_NMA_DECC_DISSEM_SQ',
schema='C2D'
) }}
SELECT /*+ PARALLEL(OU_C2D_UC_NMA_DECC_DISSEM,4) */
MAX(OU_C2D_UC_NMA_DECC_DISSEM.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_C2D_UC_NMA_DECC_DISSEM.REPORTING_NCB,OU_C2D_UC_NMA_DECC_DISSEM.SNAPSHOT_DATE ) as MAX_A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_DECC_DISSEM.A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_DECC_DISSEM.REPORTING_NCB,
OU_C2D_UC_NMA_DECC_DISSEM.SNAPSHOT_DATE,
OU_C2D_UC_NMA_DECC_DISSEM.FILE_CREATION_DATE,
OU_C2D_UC_NMA_DECC_DISSEM.MFI_ID,
OU_C2D_UC_NMA_DECC_DISSEM.ISIN_CODE,
OU_C2D_UC_NMA_DECC_DISSEM.NOM_AMT_SUBMITTED,
OU_C2D_UC_NMA_DECC_DISSEM.TYPE_OF_SYSTEM,
OU_C2D_UC_NMA_DECC_DISSEM.TYPE_OF_OPERATION,
OU_C2D_UC_NMA_DECC_DISSEM.DOM_OR_XBORDER,
OU_C2D_UC_NMA_DECC_DISSEM.NON_MKT_ASSET_TYPE,
OU_C2D_UC_NMA_DECC_DISSEM.NCB_COMMENT,
OU_C2D_UC_NMA_DECC_DISSEM.MOBILISATION_CHANNEL,
OU_C2D_UC_NMA_DECC_DISSEM.CCB,
OU_C2D_UC_NMA_DECC_DISSEM.INVESTOR_SSS,
OU_C2D_UC_NMA_DECC_DISSEM.INTERMEDIARY_SSS,
OU_C2D_UC_NMA_DECC_DISSEM.ISSUER_SSS,
OU_C2D_UC_NMA_DECC_DISSEM.TRIPARTY_AGENT,
OU_C2D_UC_NMA_DECC_DISSEM.SUSPECT_ID,
OU_C2D_UC_NMA_DECC_DISSEM.QUALITY_CHECK_STATUS,
OU_C2D_UC_NMA_DECC_DISSEM.ERROR_CODE,
OU_C2D_UC_NMA_DECC_DISSEM.ERROR_MESSAGE,
OU_C2D_UC_NMA_DECC_DISSEM.ERROR_POSITION_IN_FILE
FROM
{{ source('ou_c2d','UC_NMA_DECC_DISSEM') }} OU_C2D_UC_NMA_DECC_DISSEM
WHERE A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key('w_ODS_C2D_UC_DISSEMI', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,77 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_T_COLLATERAL_ALL_SOURCES_OU_C2D_UC_NMA_DISSEM"],
alias='UC_NMA_DISSEM_SQ',
schema='C2D'
) }}
SELECT /*+ PARALLEL(OU_C2D_UC_NMA_DISSEM,4) */
MAX(OU_C2D_UC_NMA_DISSEM.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_C2D_UC_NMA_DISSEM.REPORTING_NCB,OU_C2D_UC_NMA_DISSEM.SNAPSHOT_DATE ) as MAX_A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_DISSEM.A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_DISSEM.REPORTING_NCB,
OU_C2D_UC_NMA_DISSEM.SNAPSHOT_DATE,
OU_C2D_UC_NMA_DISSEM.FILE_CREATION_DATE,
OU_C2D_UC_NMA_DISSEM.MFI_ID,
OU_C2D_UC_NMA_DISSEM.OTHER_REG_NO,
OU_C2D_UC_NMA_DISSEM.TYPE_OF_SYSTEM,
OU_C2D_UC_NMA_DISSEM.TYPE_OF_OPERATION,
OU_C2D_UC_NMA_DISSEM.DOM_OR_XBORDER,
OU_C2D_UC_NMA_DISSEM.NON_MKT_ASSET_TYPE,
OU_C2D_UC_NMA_DISSEM.MATURITY_DATE,
OU_C2D_UC_NMA_DISSEM.INTEREST_PAYMENT_TYPE,
OU_C2D_UC_NMA_DISSEM.CAP,
OU_C2D_UC_NMA_DISSEM.REFERENCE_RATE,
OU_C2D_UC_NMA_DISSEM.REFERENCE_RATE_COMMENT,
OU_C2D_UC_NMA_DISSEM.COLL_BEFORE_HAIRCUTS,
OU_C2D_UC_NMA_DISSEM.COLL_AFTER_HAIRCUTS,
OU_C2D_UC_NMA_DISSEM.NO_AGGR_DEBTORS,
OU_C2D_UC_NMA_DISSEM.ELIGIBLE_VIA_GUAR,
OU_C2D_UC_NMA_DISSEM.DEBTOR_TYPE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_NAME,
OU_C2D_UC_NMA_DISSEM.DEBTOR_ID_TYPE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_ID,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CLASS,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RESIDENCE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CAS,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CRED_PROV,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_DISSEM.GUAR_TYPE,
OU_C2D_UC_NMA_DISSEM.GUAR_NAME,
OU_C2D_UC_NMA_DISSEM.GUAR_ID_TYPE,
OU_C2D_UC_NMA_DISSEM.GUAR_ID,
OU_C2D_UC_NMA_DISSEM.GUAR_CLASS,
OU_C2D_UC_NMA_DISSEM.GUAR_RESIDENCE,
OU_C2D_UC_NMA_DISSEM.GUAR_CRED_CAS,
OU_C2D_UC_NMA_DISSEM.GUAR_CRED_PROV,
OU_C2D_UC_NMA_DISSEM.GUAR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_DISSEM.GUAR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_DISSEM.NO_AGGR_ASSETS,
OU_C2D_UC_NMA_DISSEM.DENOMINATION,
OU_C2D_UC_NMA_DISSEM.SECURED_FLAG,
OU_C2D_UC_NMA_DISSEM.RESIDUAL_MATURITY,
OU_C2D_UC_NMA_DISSEM.BUCKET_SIZE,
OU_C2D_UC_NMA_DISSEM.NCB_COMMENT,
OU_C2D_UC_NMA_DISSEM.VALUATION_METHODOLOGY,
OU_C2D_UC_NMA_DISSEM.NOM_AMT_SUBMITTED,
OU_C2D_UC_NMA_DISSEM.RESET_PERIOD_MORE_ONE_YEAR,
OU_C2D_UC_NMA_DISSEM.MOBILISATION_CHANNEL,
OU_C2D_UC_NMA_DISSEM.CCB,
OU_C2D_UC_NMA_DISSEM.INVESTOR_SSS,
OU_C2D_UC_NMA_DISSEM.INTERMEDIARY_SSS,
OU_C2D_UC_NMA_DISSEM.ISSUER_SSS,
OU_C2D_UC_NMA_DISSEM.SUSPECT_ID,
OU_C2D_UC_NMA_DISSEM.QUALITY_CHECK_STATUS,
OU_C2D_UC_NMA_DISSEM.ERROR_CODE,
OU_C2D_UC_NMA_DISSEM.ERROR_MESSAGE,
OU_C2D_UC_NMA_DISSEM.ERROR_POSITION_IN_FILE,
OU_C2D_UC_NMA_DISSEM.OA_ID,
OU_C2D_UC_NMA_DISSEM.CONTRACT_ID,
OU_C2D_UC_NMA_DISSEM.INSTRMNT_ID
FROM
{{ source('ou_c2d','UC_NMA_DISSEM') }} OU_C2D_UC_NMA_DISSEM
WHERE A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key('w_ODS_C2D_UC_DISSEMI', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,47 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_UC_AGGREGATED"],
alias='UC_AGG_MA_DISSEM_SQ',
schema='C2D'
) }}
SELECT DISTINCT
A_WORKFLOW_HISTORY_KEY ,
REPORTING_NCB ,
SNAPSHOT_DATE ,
FILE_CREATION_DATE ,
MFI_ID ,
ISIN_CODE ,
OTHER_REG_NO ,
NOM_AMT_SUBMITTED ,
COLL_BEFORE_HAIRCUTS ,
COLL_AFTER_HAIRCUTS ,
TYPE_OF_SYSTEM ,
TYPE_OF_OPERATION ,
DOM_OR_XBORDER ,
ISSUER_CAS ,
ISSUER_CRED_PROVIDER ,
ISSUER_CLASS ,
ISSUER_RATING_ENUM_VALUE ,
ISSUER_RATING_NUMBER_VALUE ,
NCB_COMMENT ,
MOBILISATION_CHANNEL ,
CCB ,
INVESTOR_SSS ,
INTERMEDIARY_SSS ,
ISSUER_SSS ,
TRIPARTY_AGENT ,
SUSPECT_ID ,
QUALITY_CHECK_STATUS ,
ERROR_CODE ,
ERROR_MESSAGE ,
ERROR_POSITION_IN_FILE
FROM
{{ source('ou_c2d','UC_MA_DISSEM') }}
WHERE (A_WORKFLOW_HISTORY_KEY,REPORTING_NCB) IN
(SELECT MAX(A_WORKFLOW_HISTORY_KEY), REPORTING_NCB
FROM {{ source('ou_c2d','UC_MA_DISSEM') }}
WHERE (SNAPSHOT_DATE, REPORTING_NCB) IN
(SELECT MAX(SNAPSHOT_DATE), REPORTING_NCB
FROM {{ source('ou_c2d','UC_MA_DISSEM') }}
GROUP BY REPORTING_NCB)
GROUP BY REPORTING_NCB)

View File

@@ -0,0 +1,42 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_UC_AGGREGATED"],
alias='UC_AGG_NMA_DECC_DISSEM_SQ',
schema='C2D'
) }}
SELECT DISTINCT
A_WORKFLOW_HISTORY_KEY,
REPORTING_NCB ,
SNAPSHOT_DATE ,
FILE_CREATION_DATE ,
MFI_ID ,
ISIN_CODE ,
NOM_AMT_SUBMITTED ,
TYPE_OF_SYSTEM ,
TYPE_OF_OPERATION ,
DOM_OR_XBORDER ,
NON_MKT_ASSET_TYPE ,
NCB_COMMENT ,
MOBILISATION_CHANNEL ,
CCB ,
INVESTOR_SSS ,
INTERMEDIARY_SSS ,
ISSUER_SSS ,
TRIPARTY_AGENT ,
SUSPECT_ID ,
QUALITY_CHECK_STATUS ,
ERROR_CODE ,
ERROR_MESSAGE ,
ERROR_POSITION_IN_FILE
FROM
{{ source('ou_c2d','UC_NMA_DECC_DISSEM') }} OU_C2D_UC_NMA_DECC_DISSEM -- IU_ODB.
WHERE (A_WORKFLOW_HISTORY_KEY,REPORTING_NCB) IN
(SELECT MAX(A_WORKFLOW_HISTORY_KEY),
REPORTING_NCB
FROM {{ source('ou_c2d','UC_NMA_DECC_DISSEM') }} OU_C2D_UC_NMA_DECC_DISSEM
WHERE (SNAPSHOT_DATE, REPORTING_NCB) IN
(SELECT MAX(SNAPSHOT_DATE),
REPORTING_NCB
FROM {{ source('ou_c2d','UC_NMA_DECC_DISSEM') }} OU_C2D_UC_NMA_DECC_DISSEM
GROUP BY REPORTING_NCB)
GROUP BY REPORTING_NCB)

View File

@@ -0,0 +1,81 @@
{{ config(materialized='table',
tags=["m_MOPDB_C2D_UC_AGGREGATED"],
alias='UC_AGG_NMA_DISSEM_SQ',
schema='C2D'
) }}
SELECT DISTINCT
OU_C2D_UC_NMA_DISSEM.A_WORKFLOW_HISTORY_KEY,
OU_C2D_UC_NMA_DISSEM.REPORTING_NCB,
OU_C2D_UC_NMA_DISSEM.SNAPSHOT_DATE,
OU_C2D_UC_NMA_DISSEM.FILE_CREATION_DATE,
OU_C2D_UC_NMA_DISSEM.MFI_ID,
OU_C2D_UC_NMA_DISSEM.OTHER_REG_NO,
OU_C2D_UC_NMA_DISSEM.TYPE_OF_SYSTEM,
OU_C2D_UC_NMA_DISSEM.TYPE_OF_OPERATION,
OU_C2D_UC_NMA_DISSEM.DOM_OR_XBORDER,
OU_C2D_UC_NMA_DISSEM.NON_MKT_ASSET_TYPE,
OU_C2D_UC_NMA_DISSEM.MATURITY_DATE,
OU_C2D_UC_NMA_DISSEM.INTEREST_PAYMENT_TYPE,
OU_C2D_UC_NMA_DISSEM.CAP,
OU_C2D_UC_NMA_DISSEM.REFERENCE_RATE,
OU_C2D_UC_NMA_DISSEM.REFERENCE_RATE_COMMENT,
OU_C2D_UC_NMA_DISSEM.COLL_BEFORE_HAIRCUTS,
OU_C2D_UC_NMA_DISSEM.COLL_AFTER_HAIRCUTS,
OU_C2D_UC_NMA_DISSEM.NO_AGGR_DEBTORS,
OU_C2D_UC_NMA_DISSEM.ELIGIBLE_VIA_GUAR,
OU_C2D_UC_NMA_DISSEM.DEBTOR_TYPE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_NAME,
OU_C2D_UC_NMA_DISSEM.DEBTOR_ID_TYPE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_ID,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CLASS,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RESIDENCE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CAS,
OU_C2D_UC_NMA_DISSEM.DEBTOR_CRED_PROV,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_DISSEM.DEBTOR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_DISSEM.GUAR_TYPE,
OU_C2D_UC_NMA_DISSEM.GUAR_NAME,
OU_C2D_UC_NMA_DISSEM.GUAR_ID_TYPE,
OU_C2D_UC_NMA_DISSEM.GUAR_ID,
OU_C2D_UC_NMA_DISSEM.GUAR_CLASS,
OU_C2D_UC_NMA_DISSEM.GUAR_RESIDENCE,
OU_C2D_UC_NMA_DISSEM.GUAR_CRED_CAS,
OU_C2D_UC_NMA_DISSEM.GUAR_CRED_PROV,
OU_C2D_UC_NMA_DISSEM.GUAR_RATING_ENUM_VALUE,
OU_C2D_UC_NMA_DISSEM.GUAR_RATING_NUMBER_VALUE,
OU_C2D_UC_NMA_DISSEM.NO_AGGR_ASSETS,
OU_C2D_UC_NMA_DISSEM.DENOMINATION,
OU_C2D_UC_NMA_DISSEM.SECURED_FLAG,
OU_C2D_UC_NMA_DISSEM.RESIDUAL_MATURITY,
OU_C2D_UC_NMA_DISSEM.BUCKET_SIZE,
OU_C2D_UC_NMA_DISSEM.NCB_COMMENT,
OU_C2D_UC_NMA_DISSEM.VALUATION_METHODOLOGY,
OU_C2D_UC_NMA_DISSEM.NOM_AMT_SUBMITTED,
OU_C2D_UC_NMA_DISSEM.RESET_PERIOD_MORE_ONE_YEAR,
OU_C2D_UC_NMA_DISSEM.MOBILISATION_CHANNEL,
OU_C2D_UC_NMA_DISSEM.CCB,
OU_C2D_UC_NMA_DISSEM.INVESTOR_SSS,
OU_C2D_UC_NMA_DISSEM.INTERMEDIARY_SSS,
OU_C2D_UC_NMA_DISSEM.ISSUER_SSS,
OU_C2D_UC_NMA_DISSEM.SUSPECT_ID,
OU_C2D_UC_NMA_DISSEM.QUALITY_CHECK_STATUS,
OU_C2D_UC_NMA_DISSEM.ERROR_CODE,
OU_C2D_UC_NMA_DISSEM.ERROR_MESSAGE,
OU_C2D_UC_NMA_DISSEM.ERROR_POSITION_IN_FILE,
OU_C2D_UC_NMA_DISSEM.OA_ID,
OU_C2D_UC_NMA_DISSEM.CONTRACT_ID,
OU_C2D_UC_NMA_DISSEM.INSTRMNT_ID
FROM
{{ source('ou_c2d','UC_NMA_DISSEM') }} OU_C2D_UC_NMA_DISSEM
WHERE
(OU_C2D_UC_NMA_DISSEM.A_WORKFLOW_HISTORY_KEY, OU_C2D_UC_NMA_DISSEM.REPORTING_NCB ) IN
(SELECT MAX(OU_C2D_UC_NMA_DISSEM.A_WORKFLOW_HISTORY_KEY),
OU_C2D_UC_NMA_DISSEM.REPORTING_NCB
FROM {{ source('ou_c2d','UC_NMA_DISSEM') }} OU_C2D_UC_NMA_DISSEM
WHERE (OU_C2D_UC_NMA_DISSEM.SNAPSHOT_DATE, OU_C2D_UC_NMA_DISSEM.REPORTING_NCB) IN
(SELECT MAX(OU_C2D_UC_NMA_DISSEM.SNAPSHOT_DATE),
OU_C2D_UC_NMA_DISSEM.REPORTING_NCB
FROM {{ source('ou_c2d','UC_NMA_DISSEM') }} OU_C2D_UC_NMA_DISSEM
GROUP BY OU_C2D_UC_NMA_DISSEM.REPORTING_NCB)
GROUP BY OU_C2D_UC_NMA_DISSEM.REPORTING_NCB)

View File

@@ -0,0 +1,172 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_CSDB_DEBT_DAILY_OU_CSDB_DEBT_DAILY"],
alias = "DEBT_DAILY_SQ",
schema = "CSDB",
meta={
"author": "Adelina Borisova",
"created": "2025-04-17",
"last_updated_by": "Atanas Georgiev",
"last_updated": "2025-10-03"
}
) }}
WITH LOAD_HISTORY AS
(
{{ get_ODS_wf_start_max_key("w_ODS_CSDB_DEBT_DAILY", get_main_task_name(model.name) ) }}
),
DATE_LIST_MATCHING as
(
SELECT distinct
OU_CSDB_DEBT_DAILY.A_WORKFLOW_HISTORY_KEY as A_WORKFLOW_HISTORY_KEY ,
LOAD_HISTORY.MAX_ODS_WORKFLOW_KEY_DAY as MAX_ODS_WORKFLOW_KEY_DAY,
LOAD_HISTORY.ODS_WORKFLOW_START as ODS_WORKFLOW_START
FROM
{{ source("ods","DEBT_DAILY")}} OU_CSDB_DEBT_DAILY
INNER JOIN
LOAD_HISTORY
ON LOAD_HISTORY.A_WORKFLOW_HISTORY_KEY = OU_CSDB_DEBT_DAILY.A_WORKFLOW_HISTORY_KEY
)
SELECT /*+ PARALLEL(ou_csdb_debt_daily,4) */
OU_CSDB_DEBT_DAILY.A_KEY,
OU_CSDB_DEBT_DAILY.NEWUPDATED,
OU_CSDB_DEBT_DAILY.IDLOADDATE_DIM,
OU_CSDB_DEBT_DAILY.EXTERNALCODE_ISIN,
OU_CSDB_DEBT_DAILY.EXTERNALCODETYPE_NC,
OU_CSDB_DEBT_DAILY.EXTERNALCODE_NATIONAL,
OU_CSDB_DEBT_DAILY.IDIRINSTRUMENT,
OU_CSDB_DEBT_DAILY.SHORTNAME,
OU_CSDB_DEBT_DAILY.IDIRDEPOSITORY,
OU_CSDB_DEBT_DAILY.IDIRDEBTTYPE,
OU_CSDB_DEBT_DAILY.IDIRASSETSECTYPE,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_CFI,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAI,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAI_DM,
OU_CSDB_DEBT_DAILY.IDIRCURRENCY_NOMINAL,
OU_CSDB_DEBT_DAILY.AMOUNTISSUED,
OU_CSDB_DEBT_DAILY.AMOUNTOUTSTANDING,
OU_CSDB_DEBT_DAILY.AMOUNTOUTSTANDING_EUR,
OU_CSDB_DEBT_DAILY.POOLFACTOR,
OU_CSDB_DEBT_DAILY.ISSUEPRICE,
OU_CSDB_DEBT_DAILY.IDISSUEDATE,
OU_CSDB_DEBT_DAILY.IDIRCOUPONTYPE,
OU_CSDB_DEBT_DAILY.IDIRCOUPONFREQUENCY,
OU_CSDB_DEBT_DAILY.IDIRCURRENCY_COUPON,
OU_CSDB_DEBT_DAILY.COUPONRATE,
OU_CSDB_DEBT_DAILY.COUPONDATE,
OU_CSDB_DEBT_DAILY.IDIRREDEMPTIONTYPE,
OU_CSDB_DEBT_DAILY.IDIRREDEMPTIONFREQUENCY,
OU_CSDB_DEBT_DAILY.IDIRCURRENCY_REDEMPTION,
OU_CSDB_DEBT_DAILY.REDEMPTIONPRICE,
OU_CSDB_DEBT_DAILY.IDMATURITYDATE,
OU_CSDB_DEBT_DAILY.IDIRORGANISATIONALIASTYPE_IS,
OU_CSDB_DEBT_DAILY.ISSUERSOURCECODE,
OU_CSDB_DEBT_DAILY.ISSUEREXTERNALCODE_MFI,
OU_CSDB_DEBT_DAILY.ISSUEREXTERNALCODE_BIC,
OU_CSDB_DEBT_DAILY.ISSUEREXTERNALCODE_BEI,
OU_CSDB_DEBT_DAILY.IDIRORGANISATION_ISSUER,
OU_CSDB_DEBT_DAILY.ISSUERNAME,
OU_CSDB_DEBT_DAILY.IDIRCOUNTRY,
OU_CSDB_DEBT_DAILY.IDIRCOUNTRY_DM,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAO,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAO_DM,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_NACE,
OU_CSDB_DEBT_DAILY.PUBLICATIONPRICEDATE,
OU_CSDB_DEBT_DAILY.PUBLICATIONPRICE,
OU_CSDB_DEBT_DAILY.PUBLICATIONPRICETYPE,
OU_CSDB_DEBT_DAILY.PUBLICATIONPRICEQUOTATIONBASIS,
OU_CSDB_DEBT_DAILY.MONTHLYAVERAGEPRICE,
OU_CSDB_DEBT_DAILY.ACCRUALSTARTDATE,
OU_CSDB_DEBT_DAILY.DEBTACCRUALDEBTOR,
OU_CSDB_DEBT_DAILY.DEBTACCRUALDEBTOR_DM,
OU_CSDB_DEBT_DAILY.DEBTACCRUALCREDITOR,
OU_CSDB_DEBT_DAILY.DEBTACCRUALCREDITOR_TYP,
OU_CSDB_DEBT_DAILY.ACCRUEDINTEREST,
OU_CSDB_DEBT_DAILY.YTMNONOPTIONADJUSTED,
OU_CSDB_DEBT_DAILY.ESCB_ISSUER_IDENT,
OU_CSDB_DEBT_DAILY.ESCB_ISSUER_IDENT_TYP,
OU_CSDB_DEBT_DAILY.IDUDCMPPARTY,
OU_CSDB_DEBT_DAILY.AMOUNTOUTSTANDINGTYPE,
OU_CSDB_DEBT_DAILY.MARKETCAPITALISATION,
OU_CSDB_DEBT_DAILY.MARKETCAPITALISATION_EUR,
OU_CSDB_DEBT_DAILY.VA_SECURITYSTATUS,
OU_CSDB_DEBT_DAILY.VA_INSTRSUPPLEMENTARYCLASS,
OU_CSDB_DEBT_DAILY.VA_RESIDUALMATURITYCLASS,
OU_CSDB_DEBT_DAILY.VA_ISINSEC,
OU_CSDB_DEBT_DAILY.VA_ISELIGIBLEFOREADB,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAI10,
OU_CSDB_DEBT_DAILY.IDIRCLASSIFICATIONCODE_ESAO10,
OU_CSDB_DEBT_DAILY.IDIRDEBTTYPE_N,
OU_CSDB_DEBT_DAILY.SENIORITY,
OU_CSDB_DEBT_DAILY.ISSUEREXTERNALCODE_LEI,
OU_CSDB_DEBT_DAILY.A_WORKFLOW_HISTORY_KEY,
OU_CSDB_DEBT_DAILY.INSTR_ESA2010_CLASS_VALUETYPE,
OU_CSDB_DEBT_DAILY.ISS_ESA2010_CLASS_VALUETYPE,
OU_CSDB_DEBT_DAILY.SEC_STATUS_DATE,
OU_CSDB_DEBT_DAILY.GROUP_TYPE,
OU_CSDB_DEBT_DAILY.HAS_EMBEDDED_OPTION,
OU_CSDB_DEBT_DAILY.VOLUME_TRADED,
OU_CSDB_DEBT_DAILY.PRIMARY_LISTING_NAME,
OU_CSDB_DEBT_DAILY.PRIM_LISTING_RESIDENCY_COUNTRY,
OU_CSDB_DEBT_DAILY.INSTR_PORTFOLIO_FLAGS,
OU_CSDB_DEBT_DAILY.BOND_DURATION,
OU_CSDB_DEBT_DAILY.RESIDUAL_MATURITY,
OU_CSDB_DEBT_DAILY.ORIGINAL_MATURITY,
OU_CSDB_DEBT_DAILY.CFIN_CLASSIFICATION,
OU_CSDB_DEBT_DAILY.COUPONFIRSTPAYMENTDATE,
OU_CSDB_DEBT_DAILY.COUPONLASTPAYMENTDATE,
OU_CSDB_DEBT_DAILY.COUPONRATEUNDERLYINGCODE_ISIN,
OU_CSDB_DEBT_DAILY.COUPONRATESPREAD,
OU_CSDB_DEBT_DAILY.COUPONRATEMULTIPLIER,
OU_CSDB_DEBT_DAILY.COUPONRATECAP,
OU_CSDB_DEBT_DAILY.COUPONRATEFLOOR,
OU_CSDB_DEBT_DAILY.IDISSUEDATE_TRANCHE,
OU_CSDB_DEBT_DAILY.ISSUEPRICE_TRANCHE,
OU_CSDB_DEBT_DAILY.VA_ISPRIVATEPLACEMENT,
OU_CSDB_DEBT_DAILY.RIAD_CODE,
OU_CSDB_DEBT_DAILY.RIAD_OUID ,
OU_CSDB_DEBT_DAILY.ESG1,
OU_CSDB_DEBT_DAILY.ESG2,
OU_CSDB_DEBT_DAILY.ESG3,
OU_CSDB_DEBT_DAILY.STRIP,
OU_CSDB_DEBT_DAILY.DEPOSITORY_RECEIPT,
OU_CSDB_DEBT_DAILY.RULE_144A,
OU_CSDB_DEBT_DAILY.REG_S,
OU_CSDB_DEBT_DAILY.WARRANT,
OU_CSDB_DEBT_DAILY.CSEC_RELEVANCE_STOCK,
OU_CSDB_DEBT_DAILY.CSEC_RELEVANCE_GROSS_ISSUANCE,
OU_CSDB_DEBT_DAILY.CSEC_RELEVANCE_REDEMPTION,
OU_CSDB_DEBT_DAILY.ACCRUING_COUPON,
OU_CSDB_DEBT_DAILY.ACCRUING_DISCOUNT,
CAST(NULL as varchar2(255)) AS PLACEHOLDER32,
CAST(NULL as varchar2(255)) AS PLACEHOLDER33,
CAST(NULL as varchar2(255)) AS PLACEHOLDER34,
CAST(NULL as varchar2(255)) AS PLACEHOLDER35,
CAST(NULL as varchar2(255)) AS PLACEHOLDER36,
CAST(NULL as varchar2(255)) AS PLACEHOLDER37,
CAST(NULL as varchar2(255)) AS PLACEHOLDER38,
CAST(NULL as varchar2(255)) AS PLACEHOLDER39,
CAST(NULL as varchar2(255)) AS PLACEHOLDER40,
CAST(NULL as varchar2(255)) AS PLACEHOLDER41,
CAST(NULL as varchar2(255)) AS PLACEHOLDER42,
CAST(NULL as varchar2(255)) AS PLACEHOLDER43,
CAST(NULL as varchar2(255)) AS PLACEHOLDER44,
CAST(NULL as varchar2(255)) AS PLACEHOLDER45,
CAST(NULL as varchar2(255)) AS PLACEHOLDER46,
CAST(NULL as varchar2(255)) AS PLACEHOLDER47,
CAST(NULL as varchar2(255)) AS PLACEHOLDER48,
CAST(NULL as varchar2(255)) AS PLACEHOLDER49,
CAST(NULL as varchar2(255)) AS PLACEHOLDER50,
TRUNC(DATE_LIST_MATCHING.ODS_WORKFLOW_START) AS WORKFLOW_START,
MAX(OU_CSDB_DEBT_DAILY.A_WORKFLOW_HISTORY_KEY) OVER (PARTITION BY TO_DATE(TO_CHAR(DATE_LIST_MATCHING.ODS_WORKFLOW_START,'DD/MM/YYYY'),'DD/MM/YYYY')) as MAX_KEY
FROM
{{ source("ods","DEBT_DAILY")}} OU_CSDB_DEBT_DAILY
INNER JOIN
DATE_LIST_MATCHING
ON DATE_LIST_MATCHING.A_WORKFLOW_HISTORY_KEY = OU_CSDB_DEBT_DAILY.A_WORKFLOW_HISTORY_KEY
AND DATE_LIST_MATCHING.A_WORKFLOW_HISTORY_KEY
in (select min(A_WORKFLOW_HISTORY_KEY) from DATE_LIST_MATCHING)

View File

@@ -0,0 +1,130 @@
{{
config(
materialized="table",
tags=["m_MOPDB_CSDB_DEBT_OU_CSDB_DEBT"],
alias="DEBT_SQ",
schema="CSDB",
)
}}
SELECT
/*+ PARALLEL(csdb_sq,4) */
ou_csdb_debt.A_KEY,
ou_csdb_debt.NEWUPDATED,
ou_csdb_debt.IDLoadDATE_DIM,
ou_csdb_debt.EXTERNALCODE_ISIN,
ou_csdb_debt.EXTERNALCODETYPE_NC,
ou_csdb_debt.EXTERNALCODE_NATIONAL,
ou_csdb_debt.IDIRINSTRUMENT,
ou_csdb_debt.SHORTNAME,
CAST('' AS VARCHAR2(1 CHAR)) as IDIRDEPOSITORY,
ou_csdb_debt.IDIRDEBTTYPE,
ou_csdb_debt.IDIRASSETSECTYPE,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_CFI,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAI,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAI_DM,
ou_csdb_debt.IDIRCURRENCY_NOMINAL,
ou_csdb_debt.AMOUNTISSUED,
ou_csdb_debt.AMOUNTOUTSTANDING,
ou_csdb_debt.AMOUNTOUTSTANDING_EUR,
ou_csdb_debt.POOLFACTOR,
ou_csdb_debt.ISSUEPRICE,
ou_csdb_debt.IDISSUEDATE,
ou_csdb_debt.IDIRCOUPONTYPE,
ou_csdb_debt.IDIRCOUPONFREQUENCY,
ou_csdb_debt.IDIRCURRENCY_COUPON,
ou_csdb_debt.COUPONRATE,
ou_csdb_debt.COUPONDATE,
ou_csdb_debt.IDIRREDEMPTIONTYPE,
ou_csdb_debt.IDIRREDEMPTIONFREQUENCY,
ou_csdb_debt.IDIRCURRENCY_REDEMPTION,
ou_csdb_debt.REDEMPTIONPRICE,
ou_csdb_debt.IDMATURITYDATE,
ou_csdb_debt.IDIRORGANISATIONALIASTYPE_IS,
ou_csdb_debt.ISSUERSOURCECODE,
ou_csdb_debt.ISSUEREXTERNALCODE_MFI,
ou_csdb_debt.ISSUEREXTERNALCODE_BIC,
ou_csdb_debt.ISSUEREXTERNALCODE_BEI,
ou_csdb_debt.IDIRORGANISATION_ISSUER,
ou_csdb_debt.ISSUERNAME,
ou_csdb_debt.IDIRCOUNTRY,
ou_csdb_debt.IDIRCOUNTRY_DM,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAO,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAO_DM,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_NACE,
ou_csdb_debt.PUBLICATIONPRICEDATE,
ou_csdb_debt.PUBLICATIONPRICE,
ou_csdb_debt.PUBLICATIONPRICETYPE,
ou_csdb_debt.PUBLICATIONPRICEQUOTATIONBASIS,
ou_csdb_debt.MONTHLYAVERAGEPRICE,
ou_csdb_debt.ACCRUALSTARTDATE,
ou_csdb_debt.DEBTACCRUALDEBTOR,
ou_csdb_debt.DEBTACCRUALDEBTOR_DM,
ou_csdb_debt.DEBTACCRUALCREDITOR,
ou_csdb_debt.DEBTACCRUALCREDITOR_TYP,
ou_csdb_debt.ACCRUEDINTEREST,
ou_csdb_debt.YTMNONOPTIONADJUSTED,
ou_csdb_debt.ESCB_ISSUER_IDENT,
ou_csdb_debt.VA_ESCBCODETYPE,
ou_csdb_debt.IDUDCMPPARTY,
ou_csdb_debt.AMOUNTOUTSTANDINGTYPE,
ou_csdb_debt.MARKETCAPITALISATION,
ou_csdb_debt.MARKETCAPITALISATION_EUR,
ou_csdb_debt.VA_SECURITYSTATUS,
ou_csdb_debt.VA_INSTRSUPPLEMENTARYCLASS,
ou_csdb_debt.VA_RESIDUALMATURITYCLASS,
ou_csdb_debt.VA_ISINSEC,
ou_csdb_debt.VA_ISELIGIBLEFOREADB,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAI10,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_ESAO10,
ou_csdb_debt.IDIRDEBTTYPE_N,
ou_csdb_debt.SENIORITY,
ou_csdb_debt.ISSUEREXTERNALCODE_LEI,
ou_csdb_debt.A_WORKFLOW_HISTORY_KEY,
ou_csdb_debt.INSTR_ESA2010_CLASS_VALUETYPE,
ou_csdb_debt.ISS_ESA2010_CLASS_VALUETYPE,
ou_csdb_debt.VA_SECURITYSTATUSDATE,
ou_csdb_debt.GROUP_TYPE,
ou_csdb_debt.HASEMBEDDEDOPTION,
ou_csdb_debt.VOLUMETRADED,
ou_csdb_debt.PRIMARYLISTINGNAME,
ou_csdb_debt.PRIMARYLISTINGCOUNTRY,
ou_csdb_debt.VA_INSTRPORTFLAGS,
ou_csdb_debt.VA_BONDDURATION,
ou_csdb_debt.RESIDUALMATURITY,
ou_csdb_debt.ORIGINAL_MATURITY,
ou_csdb_debt.IDIRCLASSIFICATIONCODE_CFIN,
ou_csdb_debt.COUPONFIRSTPAYMENTDATE,
ou_csdb_debt.COUPONLASTPAYMENTDATE,
ou_csdb_debt.COUPONRATEUNDERLYINGCODE_ISIN,
ou_csdb_debt.COUPONRATESPREAD,
ou_csdb_debt.COUPONRATEMULTIPLIER,
ou_csdb_debt.COUPONRATECAP,
ou_csdb_debt.COUPONRATEFLOOR,
ou_csdb_debt.IDISSUEDATE_TRANCHE,
ou_csdb_debt.ISSUEPRICE_TRANCHE,
ou_csdb_debt.VA_ISPRIVATEPLACEMENT,
ou_csdb_debt.RIAD_CODE,
ou_csdb_debt.RIAD_OUID,
ou_csdb_debt.ESG1,
ou_csdb_debt.ESG2,
ou_csdb_debt.ESG3,
ou_csdb_debt.STRIP,
ou_csdb_debt.DEPOSITORY_RECEIPT,
ou_csdb_debt.RULE_144A,
ou_csdb_debt.REG_S,
ou_csdb_debt.WARRANT,
ou_csdb_debt.CSEC_RELEVANCE_STOCK,
ou_csdb_debt.CSEC_RELEVANCE_GROSS_ISSUANCE,
ou_csdb_debt.CSEC_RELEVANCE_REDEMPTION,
ou_csdb_debt.ACCRUING_COUPON,
ou_csdb_debt.ACCRUING_DISCOUNT,
wh.WORKFLOW_START
FROM
{{ source("ods", "DEBT") }} ou_csdb_debt
JOIN ct_mrds.a_workflow_history wh ON ou_csdb_debt.A_WORKFLOW_HISTORY_KEY = wh.A_WORKFLOW_HISTORY_KEY
WHERE
wh.SERVICE_NAME = 'ODS'
AND ou_csdb_debt.A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key(
"w_ODS_CSDB_DEBT",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,60 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_CSDB_INSTR_DESC_FULL_OU_CSDB_INSTR_DESC_FULL"],
alias = "INSTR_DESC_FULL_SQ",
schema = "CSDB",
meta={
"author": "Adelina Borisova",
"created": "2025-04-10",
"last_updated_by": "Atanas Georgiev",
"last_updated": "2025-10-03"
}
) }}
WITH LOAD_HISTORY AS
(
{{ get_ODS_wf_start_max_key(
'w_ODS_CSDB_RATINGS_FULL',
get_main_task_name(model.name)
)}}
)
SELECT
LOAD_HISTORY.ODS_WORKFLOW_START,
OU_CSDB_INSTR_DESC_FULL.IDIRINSTRUMENT,
OU_CSDB_INSTR_DESC_FULL.ISIN,
OU_CSDB_INSTR_DESC_FULL.MOO_INSTR_ID,
OU_CSDB_INSTR_DESC_FULL.SNP_INSTR_ID,
OU_CSDB_INSTR_DESC_FULL.FITCH_IDENTIFIER,
OU_CSDB_INSTR_DESC_FULL.DBRS_IDENTIFIER,
OU_CSDB_INSTR_DESC_FULL.EA_STATUS,
OU_CSDB_INSTR_DESC_FULL.IS_TMS,
OU_CSDB_INSTR_DESC_FULL.DBRS_COVERED_BOND_PROGRAM,
OU_CSDB_INSTR_DESC_FULL.FITCH_PRG_IDENTIFIER,
OU_CSDB_INSTR_DESC_FULL.MOO_DEAL_NUMBER,
OU_CSDB_INSTR_DESC_FULL.SNP_PROGRAM_ID,
OU_CSDB_INSTR_DESC_FULL.IDIRDEBTTYPE,
OU_CSDB_INSTR_DESC_FULL.SNP_DEBT_TYPE,
OU_CSDB_INSTR_DESC_FULL.MOODY_SENIORITY,
OU_CSDB_INSTR_DESC_FULL.FITCH_DEBT_LEVEL_CODE,
OU_CSDB_INSTR_DESC_FULL.DBRS_RANK_TYPE,
OU_CSDB_INSTR_DESC_FULL.DBRS_SECURITY_TYPE,
OU_CSDB_INSTR_DESC_FULL.SCO_DEBT_TYPE,
OU_CSDB_INSTR_DESC_FULL.SCO_INSTR_ID,
OU_CSDB_INSTR_DESC_FULL.SCO_COVERED_BOND_PROGRAM,
OU_CSDB_INSTR_DESC_FULL.SCO_CATEGORY,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER15,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER16,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER17,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER18,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER19,
OU_CSDB_INSTR_DESC_FULL.PLACEHOLDER20,
OU_CSDB_INSTR_DESC_FULL.A_WORKFLOW_HISTORY_KEY,
LOAD_HISTORY.MAX_ODS_WORKFLOW_KEY_DAY
FROM
{{ source("ods","INSTR_DESC_FULL")}} OU_CSDB_INSTR_DESC_FULL
INNER JOIN
LOAD_HISTORY
ON LOAD_HISTORY.A_WORKFLOW_HISTORY_KEY = OU_CSDB_INSTR_DESC_FULL.A_WORKFLOW_HISTORY_KEY
AND OU_CSDB_INSTR_DESC_FULL.A_WORKFLOW_HISTORY_KEY
in (select min(LOAD_HISTORY.A_WORKFLOW_HISTORY_KEY) from LOAD_HISTORY)

View File

@@ -0,0 +1,65 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_CSDB_INSTR_RAT_FULL_OU_CSDB_INSTR_RAT_FULL"],
alias = "INSTR_RAT_FULL_SQ",
schema = "CSDB",
meta={
"author": "Adelina Borisova",
"created": "2025-04-14",
"last_updated_by": "Atanas Georgiev",
"last_updated": "2025-09-29"
}
) }}
SELECT
OU_CSDB_INSTR_RAT_FULL.A_KEY,
OU_CSDB_INSTR_RAT_FULL.RDB_INSTR_ID,
OU_CSDB_INSTR_RAT_FULL.SOURCE,
OU_CSDB_INSTR_RAT_FULL.RATING_SCHEME,
OU_CSDB_INSTR_RAT_FULL.RATING,
OU_CSDB_INSTR_RAT_FULL.RATING_DATE,
OU_CSDB_INSTR_RAT_FULL.TIME_HORIZON,
OU_CSDB_INSTR_RAT_FULL.CURRENCY_TYPE,
OU_CSDB_INSTR_RAT_FULL.NOTES,
OU_CSDB_INSTR_RAT_FULL.VALID_FROM,
OU_CSDB_INSTR_RAT_FULL.VALID_UNTIL,
OU_CSDB_INSTR_RAT_FULL.RDB_RATINGS_ID,
OU_CSDB_INSTR_RAT_FULL.WATCHLIST,
OU_CSDB_INSTR_RAT_FULL.WATCHLIST_DATE,
OU_CSDB_INSTR_RAT_FULL.OUTLOOK,
OU_CSDB_INSTR_RAT_FULL.OUTLOOK_DATE,
OU_CSDB_INSTR_RAT_FULL.RATING_ACTION,
OU_CSDB_INSTR_RAT_FULL.RATING_ACTION_DATE,
OU_CSDB_INSTR_RAT_FULL.IS_PRELIMINARY,
OU_CSDB_INSTR_RAT_FULL.RATING_RAW,
OU_CSDB_INSTR_RAT_FULL.RATING_TYPE,
OU_CSDB_INSTR_RAT_FULL.ENDORSEMENT_INDICATOR,
OU_CSDB_INSTR_RAT_FULL.LAST_REVIEW_DATE,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER6,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER7,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER8,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER9,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER10,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER11,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER12,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER13,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER14,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER15,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER16,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER17,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER18,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER19,
OU_CSDB_INSTR_RAT_FULL.PLACEHOLDER20,
OU_CSDB_INSTR_RAT_FULL.A_WORKFLOW_HISTORY_KEY
FROM
{{ source("ods","INSTR_RAT_FULL")}} OU_CSDB_INSTR_RAT_FULL
WHERE
OU_CSDB_INSTR_RAT_FULL.A_WORKFLOW_HISTORY_KEY IN
{{
filter_workflow_history_max_key(
'w_ODS_CSDB_RATINGS_FULL',
get_main_task_name(model.name))
}}

View File

@@ -0,0 +1,60 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_CSDB_ISSUER_DESC_FULL_OU_CSDB_ISSUER_DESC_FULL"],
alias = "ISSUER_DESC_FULL_SQ",
schema = "CSDB",
meta={
"author": "Adelina Borisova",
"created": "2025-04-15",
"last_updated_by": "Atanas Georgiev",
"last_updated": "2025-10-01"
}
) }}
WITH LOAD_HISTORY AS
(
{{ get_ODS_wf_start_max_key(
'w_ODS_CSDB_RATINGS_FULL',
get_main_task_name(model.name)
)}}
)
SELECT
LOAD_HISTORY.ODS_WORKFLOW_START,
OU_CSDB_ISSUER_DESC_FULL.RDB_ISSUER_ID,
OU_CSDB_ISSUER_DESC_FULL.ISSUERNAME,
OU_CSDB_ISSUER_DESC_FULL.COUNTRY_DOMICILE,
OU_CSDB_ISSUER_DESC_FULL.IS_SOVEREIGN,
OU_CSDB_ISSUER_DESC_FULL.MOODY_IDENTIFIER,
OU_CSDB_ISSUER_DESC_FULL.SNP_ISSUER_ID,
OU_CSDB_ISSUER_DESC_FULL.FITCH_IDENTIFIER,
OU_CSDB_ISSUER_DESC_FULL.DBRS_IDENTIFIER,
OU_CSDB_ISSUER_DESC_FULL.LEI_ISSUER_ID,
OU_CSDB_ISSUER_DESC_FULL.RIAD_CODE,
OU_CSDB_ISSUER_DESC_FULL.RIAD_OUID,
OU_CSDB_ISSUER_DESC_FULL.CLASH_GROUP_STATUS,
OU_CSDB_ISSUER_DESC_FULL.SCO_ISSUER_ID,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER5,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER6,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER7,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER8,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER9,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER10,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER11,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER12,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER13,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER14,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER15,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER16,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER17,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER18,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER19,
OU_CSDB_ISSUER_DESC_FULL.PLACEHOLDER20,
OU_CSDB_ISSUER_DESC_FULL.A_WORKFLOW_HISTORY_KEY,
LOAD_HISTORY.MAX_ODS_WORKFLOW_KEY_DAY
FROM
{{ source("ods","ISSUER_DESC_FULL")}} OU_CSDB_ISSUER_DESC_FULL
INNER JOIN
LOAD_HISTORY
ON LOAD_HISTORY.A_WORKFLOW_HISTORY_KEY = OU_CSDB_ISSUER_DESC_FULL.A_WORKFLOW_HISTORY_KEY
AND OU_CSDB_ISSUER_DESC_FULL.A_WORKFLOW_HISTORY_KEY
in (select min(LOAD_HISTORY.A_WORKFLOW_HISTORY_KEY) from LOAD_HISTORY)

View File

@@ -0,0 +1,63 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_CSDB_ISSUER_RAT_FULL_OU_CSDB_ISSUER_RAT_FULL"],
alias = "ISSUER_RAT_FULL_SQ",
schema = "CSDB",
meta={
"author": "Adelina Borisova",
"created": "2025-04-16",
"last_updated_by": "Atanas Georgiev",
"last_updated": "2025-09-29"
}
) }}
SELECT
OU_CSDB_ISSUER_RAT_FULL.A_KEY,
OU_CSDB_ISSUER_RAT_FULL.RDB_ISSUER_ID,
OU_CSDB_ISSUER_RAT_FULL.SOURCE,
OU_CSDB_ISSUER_RAT_FULL.RATING_SCHEME,
OU_CSDB_ISSUER_RAT_FULL.RATING,
OU_CSDB_ISSUER_RAT_FULL.RATING_DATE,
OU_CSDB_ISSUER_RAT_FULL.TIME_HORIZON,
OU_CSDB_ISSUER_RAT_FULL.CURRENCY_TYPE,
OU_CSDB_ISSUER_RAT_FULL.NOTES,
OU_CSDB_ISSUER_RAT_FULL.VALID_FROM,
OU_CSDB_ISSUER_RAT_FULL.VALID_UNTIL,
OU_CSDB_ISSUER_RAT_FULL.RDB_RATINGS_ID,
OU_CSDB_ISSUER_RAT_FULL.OUTLOOK,
OU_CSDB_ISSUER_RAT_FULL.OUTLOOK_DATE,
OU_CSDB_ISSUER_RAT_FULL.WATCHLIST,
OU_CSDB_ISSUER_RAT_FULL.WATCHLIST_DATE,
OU_CSDB_ISSUER_RAT_FULL.RATING_ACTION,
OU_CSDB_ISSUER_RAT_FULL.RATING_ACTION_DATE,
OU_CSDB_ISSUER_RAT_FULL.IS_PRELIMINARY,
OU_CSDB_ISSUER_RAT_FULL.RATING_RAW,
OU_CSDB_ISSUER_RAT_FULL.RATING_TYPE,
OU_CSDB_ISSUER_RAT_FULL.ENDORSEMENT_INDICATOR,
OU_CSDB_ISSUER_RAT_FULL.LAST_REVIEW_DATE,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER6,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER7,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER8,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER9,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER10,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER11,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER12,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER13,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER14,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER15,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER16,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER17,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER18,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER19,
OU_CSDB_ISSUER_RAT_FULL.PLACEHOLDER20,
OU_CSDB_ISSUER_RAT_FULL.A_WORKFLOW_HISTORY_KEY
FROM
{{ source("ods","ISSUER_RAT_FULL")}} OU_CSDB_ISSUER_RAT_FULL
WHERE
OU_CSDB_ISSUER_RAT_FULL.A_WORKFLOW_HISTORY_KEY =
{{
filter_workflow_history_max_key(
'w_ODS_CSDB_RATINGS_FULL',
get_main_task_name(model.name))
}}

View File

@@ -0,0 +1,61 @@
{{ config(materialized='table',
schema='CSDB',
alias='RATINGS_RT_INSTRUMENT_RATING_SQ',
tags=["m_MOPDB_CSDB_RATINGS_RT_INSTRUMENT_RATING_OU_CSDB_RATINGS_RT_INSTRUMENT"],
) }}
SELECT
A_KEY,
A_WORKFLOW_HISTORY_KEY,
IDRT_INSTRUMENT_RATING,
IDRT_INSTRUMENT,
IDRT_POPULATION,
IDIRINSTRRATINGCLASS,
IDIRINSTRUMENT,
SOURCE,
RATING_SCHEME,
TIME_HORIZON,
CURRENCY_TYPE,
RATING_REGION_TYPE,
RATING,
RATING_RAW,
RATING_DATE,
RATING_ACTION,
RATING_ACTION_DATE,
OUTLOOK,
OUTLOOK_DATE,
WATCHLIST,
WATCHLIST_DATE,
VALIDFROM,
VALIDUNTIL,
IS_VALID,
IS_CURRENT,
EADB_REFERENCE,
IS_PRELIMINARY,
NOTES,
SUFFIX,
ENDORSEMENT_INDICATOR,
ATTR3,
ATTR4,
ATTR5,
KEYATTR1,
LAST_REVIEW_DATE,
KEYATTR3,
KEYATTR4,
KEYATTR5,
CORRECTFROM,
CORRECTUNTIL,
BATCH_FIRST_CREATED_DATE,
BATCH_LAST_UPDATED_DATE,
IS_SOLICITED,
TEC_SOURCE_SYSTEM,
TEC_DATASET,
TEC_SURROGATE_KEY,
TEC_CRC,
TEC_INGESTION_DATE,
TEC_EXECUTION_DATE,
TEC_RUN_ID,
TEC_BUSINESS_DATE
FROM
{{ source('ods','RATINGS_RT_INSTRUMENT_RATING') }} OU_CSDB_RATINGS_RT_INSTRUMENT_RATING
WHERE OU_CSDB_RATINGS_RT_INSTRUMENT_RATING.A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_max_key('w_ODS_CSDB_RATINGS_DEVO', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,60 @@
{{ config(materialized='table',
schema='CSDB',
alias='RATINGS_RT_PARTY_RATING_SQ',
tags=["m_MOPDB_CSDB_RATINGS_RT_PARTY_RATING_OU_CSDB_RATINGS_RT_PARTY_RATING"],
) }}
SELECT
A_KEY,
A_WORKFLOW_HISTORY_KEY,
IDRT_PARTY_RATING,
IDRT_PARTY,
IDRT_POPULATION,
IDIRPARTYRATINGCLASS,
SOURCE,
RATING_SCHEME,
TIME_HORIZON,
CURRENCY_TYPE,
RATING_REGION_TYPE,
RATING,
RATING_RAW,
RATING_DATE,
RATING_ACTION,
RATING_ACTION_DATE,
OUTLOOK,
OUTLOOK_DATE,
WATCHLIST,
WATCHLIST_DATE,
VALIDFROM,
VALIDUNTIL,
IS_VALID,
IS_CURRENT,
EADB_REFERENCE,
IS_PRELIMINARY,
NOTES,
SUFFIX,
ENDORSEMENT_INDICATOR,
ATTR3,
ATTR4,
ATTR5,
KEYATTR1,
LAST_REVIEW_DATE,
KEYATTR3,
KEYATTR4,
KEYATTR5,
CORRECTFROM,
CORRECTUNTIL,
BATCH_FIRST_CREATED_DATE,
BATCH_LAST_UPDATED_DATE,
IS_SOLICITED,
TEC_SOURCE_SYSTEM,
TEC_DATASET,
TEC_SURROGATE_KEY,
TEC_CRC,
TEC_INGESTION_DATE,
TEC_EXECUTION_DATE,
TEC_RUN_ID,
TEC_BUSINESS_DATE
FROM
{{ source('ou_csdb','RATINGS_RT_PARTY_RATING') }} OU_CSDB_RATINGS_RT_PARTY_RATING
WHERE OU_CSDB_RATINGS_RT_PARTY_RATING.A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_max_key('w_ODS_CSDB_RATINGS_DEVO', get_main_task_name(model.name)) }}

View File

@@ -0,0 +1,66 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_ELA_T_ELA_INFO_OU_C2D_ELA_INFO_REPLICATION"],
alias = "T_ELA_INFO_SQ",
schema = "ELA",
meta={
"author": "Adelina Borisova",
"created": "2025-02-20",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-02-20"
}
) }}
SELECT /*+ PARALLEL(OU_C2D_ELA_INFO_REPLICATION,4) */
OU_C2D_ELA_INFO_REPLICATION.A_KEY,
OU_C2D_ELA_INFO_REPLICATION.A_WORKFLOW_HISTORY_KEY,
CAST(OU_C2D_ELA_INFO_REPLICATION.RIAD_CODE AS VARCHAR2(30 CHAR)) AS RIAD_CODE,
CAST(OU_C2D_ELA_INFO_REPLICATION.INSTITUTION_NAME AS VARCHAR2(200 CHAR)) AS MFI_NAME,
OU_C2D_ELA_INFO_REPLICATION.ELA_MATURITY_DATE,
OU_C2D_ELA_INFO_REPLICATION.ELA_VALUE_DATE,
CAST(OU_C2D_ELA_INFO_REPLICATION.ELA_BASE AS NUMBER(28,10)) AS ELA_BASE,
CAST(OU_C2D_ELA_INFO_REPLICATION.ELA_DENOMINATION AS VARCHAR2(3 CHAR)) AS ELA_DENOMINATION,
CAST(OU_C2D_ELA_INFO_REPLICATION.ELA AS NUMBER(28,10)) AS ELA,
CAST(OU_C2D_ELA_INFO_REPLICATION.INTEREST_RATE_APPLIED AS NUMBER(28,10)) AS INTEREST_RATE_APPLIED,
CAST(OU_C2D_ELA_INFO_REPLICATION.ISIN_CODE AS VARCHAR2(100 CHAR)) AS ISIN_CODE,
CAST(OU_C2D_ELA_INFO_REPLICATION.NOMINAL_AMOUNT_SUBMITTED AS NUMBER(28,10)) AS NOMINAL_AMOUNT_SUBMITTED,
CAST(OU_C2D_ELA_INFO_REPLICATION.COLLATERAL_VALUE_BEFORE_HAIRCU AS NUMBER(28,10)) AS COLL_BEFORE_HAIRCUTS,
CAST(OU_C2D_ELA_INFO_REPLICATION.COLLATERAL_VALUE_AFTER_HAIRCUT AS NUMBER(28,10)) AS COLL_AFTER_HAIRCUTS,
CAST(OU_C2D_ELA_INFO_REPLICATION.HAIRCUT AS NUMBER(28,10)) AS HAIRCUT,
CAST(OU_C2D_ELA_INFO_REPLICATION.ELA_ASSET_GROUP AS VARCHAR2(100 CHAR)) AS ELA_ASSET_GROUP,
CAST(OU_C2D_ELA_INFO_REPLICATION.DENOMINATION AS VARCHAR2(3 CHAR)) AS DENOMINATION,
CAST(OU_C2D_ELA_INFO_REPLICATION.ASSET_TYPE AS VARCHAR2(4 CHAR)) AS ASSET_TYPE,
CAST(OU_C2D_ELA_INFO_REPLICATION.DOMESTIC_OR_XBORDER AS VARCHAR2(20 CHAR)) AS DOM_OR_CROSS,
CAST(OU_C2D_ELA_INFO_REPLICATION.ABS_TYPE AS VARCHAR2(40 CHAR)) AS ABS_TYPE,
CAST(OU_C2D_ELA_INFO_REPLICATION.NUMBER_OF_AGGREG_ASSETS AS NUMBER(28,0)) AS NUMBER_OF_AGGREGATED_ASSETS,
CAST(OU_C2D_ELA_INFO_REPLICATION.NUMBER_OF_AGGREG_DEBTORS AS NUMBER(28,0)) AS NUMBER_OF_AGGREGATED_DEBTORS,
CAST(OU_C2D_ELA_INFO_REPLICATION.GUARANTEE AS VARCHAR2(200 CHAR)) AS GUARANTEE,
CAST(OU_C2D_ELA_INFO_REPLICATION.ISSUER_CODE AS VARCHAR2(30 CHAR)) AS ISSUER_CODE,
CAST(OU_C2D_ELA_INFO_REPLICATION.ISSUER_NAME AS VARCHAR2(200 CHAR)) AS ISSUER_NAME,
CAST(OU_C2D_ELA_INFO_REPLICATION.ISSUER_RESIDENCE AS VARCHAR2(3 CHAR)) AS ISSUER_RESIDENCE,
CAST(OU_C2D_ELA_INFO_REPLICATION.ISSUER_GROUP AS VARCHAR2(4 CHAR)) AS ISSUER_GROUP,
CAST(OU_C2D_ELA_INFO_REPLICATION.RATING_OF_ASSET AS VARCHAR2(100 CHAR)) AS RATING_OF_ASSET,
CAST(OU_C2D_ELA_INFO_REPLICATION.RATING_OF_THE_IS AS VARCHAR2(100 CHAR)) AS RATING_OF_THE_IS,
CAST(OU_C2D_ELA_INFO_REPLICATION.RATING_OF_THE_GU AS VARCHAR2(100 CHAR)) AS RATING_OF_THE_GU,
CAST(OU_C2D_ELA_INFO_REPLICATION.PRICE_INFORMATION AS VARCHAR2(100 CHAR)) AS PRICE_INFORMATION,
CAST(OU_C2D_ELA_INFO_REPLICATION.VALUATION_METHODOLOGY AS VARCHAR2(15 CHAR)) AS VALUATION_METHODOLOGY,
CAST(OU_C2D_ELA_INFO_REPLICATION.TYPE_OF_OPERATION AS VARCHAR2(30 CHAR)) AS TYPE_OF_OPERATION,
CAST(OU_C2D_ELA_INFO_REPLICATION.NCB_COMMENT AS VARCHAR2(200 CHAR)) AS NCB_COMMENT,
OU_C2D_ELA_INFO_REPLICATION.SNAPSHOT_DATE,
CAST(OU_C2D_ELA_INFO_REPLICATION.REPORTING_NCB AS VARCHAR2(2 CHAR)) AS REPORTING_NCB,
CAST(OU_C2D_ELA_INFO_REPLICATION.ID AS NUMBER(28,0)) AS ID,
CAST(OU_C2D_ELA_INFO_REPLICATION.VERSION AS VARCHAR2(20 CHAR)) AS VERSION,
CAST(OU_C2D_ELA_INFO_REPLICATION.IS_CORRECTION AS VARCHAR2(1 CHAR)) AS IS_CORRECTION,
CAST(OU_C2D_ELA_INFO_REPLICATION.META_INFORMATION_ID AS NUMBER(19,0)) AS META_INFORMATION_ID,
CAST(OU_C2D_ELA_INFO_REPLICATION.META_INFORMATION_TYPE AS VARCHAR2(50 CHAR)) AS META_INFORMATION_TYPE,
OU_C2D_ELA_INFO_REPLICATION.USED_SNAPSHOT_DATE,
OU_C2D_ELA_INFO_REPLICATION.PRICING_DATE,
CAST(NULL AS NUMBER(38,0)) AS RIAD_ENTTY_ID
FROM
{{ source("ods","ELA_INFO_REPLICATION")}} OU_C2D_ELA_INFO_REPLICATION
WHERE OU_C2D_ELA_INFO_REPLICATION.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_C2D_ELA",
get_main_task_name(model.name)
)
}}

View File

@@ -0,0 +1,21 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_FMCO_REPORTS_POP_LIST_OU_C2D_EA_RIAD_MFI_ISIN"],
alias = "POP_LIST_SQ",
schema = "FMCO_REPORTS",
) }}
SELECT /*+ PARALLEL(EA_RIAD_MFI_ISIN,4) */
OU_C2D_EA_RIAD_MFI_ISIN.A_KEY,
OU_C2D_EA_RIAD_MFI_ISIN.A_WORKFLOW_HISTORY_KEY,
OU_C2D_EA_RIAD_MFI_ISIN.SNAPSHOT_DATE,
OU_C2D_EA_RIAD_MFI_ISIN.MFI_ID,
OU_C2D_EA_RIAD_MFI_ISIN.ISIN_CODE
FROM
{{ source("ou_c2d", "EA_RIAD_MFI_ISIN") }} OU_C2D_EA_RIAD_MFI_ISIN
WHERE
OU_C2D_EA_RIAD_MFI_ISIN.A_WORKFLOW_HISTORY_KEY
IN
{{ filter_workflow_history_key("w_ODS_C2D_MFI_ISIN_TRANSFER",get_main_task_name(model.name) ) }}

View File

@@ -0,0 +1,39 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_BALANCESHEET_OU_LM_BALANCESHEET"],
alias = "T_BALANCESHEET_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-03-31",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
}
) }}
SELECT
/*+ PARALLEL(OU_LM_BALANCESHEET_HEADER,4) */
MAX(OU_LM_BALANCESHEET_HEADER.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_LM_BALANCESHEET_HEADER.REFERENCE_DATE) as MAX_KEY,
OU_LM_BALANCESHEET_HEADER.A_KEY,
OU_LM_BALANCESHEET_HEADER.A_WORKFLOW_HISTORY_KEY,
OU_LM_BALANCESHEET_HEADER.REFERENCE_DATE,
CAST(OU_LM_BALANCESHEET_HEADER.VERSION AS NUMBER(10,0)) AS VERSION,
CAST(OU_LM_BALANCESHEET_HEADER.COUNTRY AS VARCHAR2(3 CHAR)) AS COUNTRY,
CAST(OU_LM_BALANCESHEET_ITEM.ITEM_LEVEL AS NUMBER(10,0)) AS ITEM_LEVEL,
CAST(OU_LM_BALANCESHEET_ITEM.POSITION AS NUMBER(10,0)) AS POSITION,
CAST(OU_LM_BALANCESHEET_ITEM.ITEM_TYPE AS VARCHAR2(10 CHAR)) AS ITEM_TYPE,
CAST(OU_LM_BALANCESHEET_ITEM.FULLY_QUALIFIED_POSITION AS VARCHAR2(200 CHAR)) AS FULLY_QUALIFIED_POSITION,
CAST(OU_LM_BALANCESHEET_ITEM.NAME AS VARCHAR2(200 CHAR)) AS NAME,
CAST(OU_LM_BALANCESHEET_ITEM.AMOUNT AS NUMBER(28,8)) AS AMOUNT
FROM
{{ source("ods","BALANCESHEET_HEADER")}} OU_LM_BALANCESHEET_HEADER,
{{ source("ods","BALANCESHEET_ITEM")}} OU_LM_BALANCESHEET_ITEM
WHERE
OU_LM_BALANCESHEET_HEADER.A_KEY = OU_LM_BALANCESHEET_ITEM.A_HEADER_FK
AND OU_LM_BALANCESHEET_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_BALANCESHEET_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_LM_BALANCESHEET_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_BALANCESHEET",
get_main_task_name(model.name)
)
}}

View File

@@ -0,0 +1,42 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_CURRENT_ACCOUNTS_OU_MRR_CURRENT_ACCOUNTS"],
alias = "T_CURRENT_ACCOUNTS_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-04-01",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
},
) }}
SELECT /*+ PARALLEL(OU_MRR_MRR_IND_CURR_ACC_HEADER,4) */
MAX(OU_MRR_MRR_IND_CURR_ACC_HEADER.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_MRR_MRR_IND_CURR_ACC_HEADER.REFERENCE_DATE ) as MAX_KEY,
OU_MRR_MRR_IND_CURR_ACC_HEADER.A_KEY,
OU_MRR_MRR_IND_CURR_ACC_HEADER.A_WORKFLOW_HISTORY_KEY,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.REVISION_NUMBER AS NUMBER(10,0)) AS REVISION_NUMBER,
OU_MRR_MRR_IND_CURR_ACC_HEADER.REFERENCE_DATE,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.CURRENT_ACCOUNT_BS_TOTAL AS NUMBER(28,8)) AS CURRENT_ACCOUNT_BS_TOTAL,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.MRR_FORECAST_TOTAL AS NUMBER(28,8)) AS MRR_FORECAST_TOTAL,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.CURRENT_ACCOUNT_MESSAGE_TOTAL AS NUMBER(28,8)) AS CURRENT_ACCOUNT_MESSAGE_TOTAL,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.MRR_MESSAGE_TOTAL AS NUMBER(28,8)) AS MRR_MESSAGE_TOTAL,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.PERIODICITY AS VARCHAR2(50 CHAR)) AS PERIODICITY,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.COUNTRY AS VARCHAR2(200 CHAR)) AS COUNTRY,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.MFI_CODE AS VARCHAR2(255 CHAR)) AS MFI_CODE,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.BANK_NAME AS VARCHAR2(500 CHAR)) AS BANK_NAME,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.CURRENT_ACCOUNT AS NUMBER(28,8)) AS CURRENT_ACCOUNT,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.MINIMUM_RESERVE_REQUIREMENT AS NUMBER(28,8)) AS MINIMUM_RESERVE_REQUIREMENT,
CAST(OU_MRR_MRR_IND_CURR_ACC_ITEM.COMMENT_ AS VARCHAR2(4000 CHAR)) AS COMMENT_,
CAST(OU_MRR_MRR_IND_CURR_ACC_HEADER.FREE_TEXT AS VARCHAR2(1000 CHAR)) AS FREE_TEXT
FROM
{{ source("ods","MRR_IND_CURRENT_ACCOUNT_HEADER") }} OU_MRR_MRR_IND_CURR_ACC_HEADER,
{{ source("ods","MRR_IND_CURRENT_ACCOUNT_ITEM") }} OU_MRR_MRR_IND_CURR_ACC_ITEM
WHERE
OU_MRR_MRR_IND_CURR_ACC_HEADER.A_KEY=OU_MRR_MRR_IND_CURR_ACC_ITEM.A_HEADER_FK
AND OU_MRR_MRR_IND_CURR_ACC_HEADER.A_WORKFLOW_HISTORY_KEY= OU_MRR_MRR_IND_CURR_ACC_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_MRR_MRR_IND_CURR_ACC_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_CURRENT_ACCOUNTS",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,41 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_FC_ADH_ADJUSTMENTS_OU_LM_ADHOC_ADJUSTMENT"],
alias = "T_FC_ADH_ADJUSTMENTS_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-04-04",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
},
) }}
SELECT /*+ PARALLEL(OU_LM_ADHOC_ADJ_HEADER,4) */
MAX(OU_LM_ADHOC_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_LM_ADHOC_ADJ_HEADER.ADJUSTMENT_DATE) AS MAX_KEY,
MAX(OU_LM_ADHOC_ADJ_HEADER.A_KEY) OVER ( PARTITION BY OU_LM_ADHOC_ADJ_HEADER.ADJUSTMENT_DATE) AS MAX_A_KEY,
OU_LM_ADHOC_ADJ_HEADER.A_KEY,
OU_LM_ADHOC_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY,
OU_LM_ADHOC_ADJ_HEADER.ADJUSTMENT_DATE,
CAST(OU_LM_ADHOC_ADJ_HEADER.VERSION AS NUMBER(10,0)) AS VERSION,
CAST(OU_LM_ADHOC_ADJ_ITEM_HEADER.COUNTRY AS VARCHAR2(3)) AS COUNTRY,
OU_LM_ADHOC_ADJ_ITEM_HEADER.EFFECTIVE_DATE,
OU_LM_ADHOC_ADJ_ITEM_HEADER.LAST_DATE_NOT_FORECAST,
CAST(OU_LM_ADHOC_ADJ_ITEM.FORECAST_NAME AS VARCHAR2(50)) AS FORECAST_NAME,
CAST(OU_LM_ADHOC_ADJ_ITEM.ADJUSTMENT_AMOUNT AS NUMBER(25,8)) AS ADJUSTMENT_AMOUNT
FROM
{{ source("ods","ADHOC_ADJ_HEADER")}} OU_LM_ADHOC_ADJ_HEADER
INNER JOIN
{{ source("ods","ADHOC_ADJ_ITEM_HEADER")}} OU_LM_ADHOC_ADJ_ITEM_HEADER
ON OU_LM_ADHOC_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_ADHOC_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY
AND OU_LM_ADHOC_ADJ_HEADER.A_KEY=OU_LM_ADHOC_ADJ_ITEM_HEADER.A_HEADER_FK
LEFT JOIN
{{ source("ods","ADHOC_ADJ_ITEM")}} OU_LM_ADHOC_ADJ_ITEM
ON OU_LM_ADHOC_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_ADHOC_ADJ_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_LM_ADHOC_ADJ_ITEM_HEADER.A_KEY=OU_LM_ADHOC_ADJ_ITEM.A_HEADER_FK
WHERE
OU_LM_ADHOC_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_ADHOC_ADJUSTMENT_MSG",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,42 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_FC_CSM_ADJUSTMENTS_OU_LM_CSM_ADJUSTMENT"],
alias = "T_FC_CSM_ADJUSTMENTS_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-04-08",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
}
) }}
SELECT /*+ PARALLEL(OU_LM_CSM_ADJ_HEADER,4) */
MAX(OU_LM_CSM_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_LM_CSM_ADJ_HEADER.YEAR, OU_LM_CSM_ADJ_HEADER.MONTH ) AS MAX_KEY,
MAX(OU_LM_CSM_ADJ_HEADER.A_KEY) OVER ( PARTITION BY OU_LM_CSM_ADJ_HEADER.YEAR, OU_LM_CSM_ADJ_HEADER.MONTH ) AS MAX_A_KEY,
OU_LM_CSM_ADJ_HEADER.A_KEY,
OU_LM_CSM_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY,
CAST(OU_LM_CSM_ADJ_HEADER.YEAR AS VARCHAR2(4)) AS YEAR,
CAST(OU_LM_CSM_ADJ_HEADER.MONTH AS VARCHAR2(2)) AS MONTH,
CAST(OU_LM_CSM_ADJ_HEADER.VERSION AS NUMBER(10,0)) AS VERSION,
CAST(OU_LM_CSM_ADJ_ITEM_HEADER.COUNTRY AS VARCHAR2(3)) AS COUNTRY,
OU_LM_CSM_ADJ_ITEM_HEADER.EFFECTIVE_DATE,
OU_LM_CSM_ADJ_ITEM_HEADER.LAST_DATE_NOT_FORECAST,
CAST(OU_LM_CSM_ADJ_ITEM.FORECAST_NAME AS VARCHAR2(50)) AS FORECAST_NAME,
CAST(OU_LM_CSM_ADJ_ITEM.ADJUSTMENT_AMOUNT AS NUMBER(25,8)) AS ADJUSTMENT_AMOUNT
FROM
{{ source("ods","CSM_ADJ_HEADER")}} OU_LM_CSM_ADJ_HEADER
INNER JOIN
{{ source("ods","CSM_ADJ_ITEM_HEADER")}} OU_LM_CSM_ADJ_ITEM_HEADER
ON OU_LM_CSM_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_CSM_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY
AND OU_LM_CSM_ADJ_HEADER.A_KEY = OU_LM_CSM_ADJ_ITEM_HEADER.A_HEADER_FK
LEFT JOIN
{{ source("ods","CSM_ADJ_ITEM")}} OU_LM_CSM_ADJ_ITEM
ON OU_LM_CSM_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY =OU_LM_CSM_ADJ_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_LM_CSM_ADJ_ITEM_HEADER.A_KEY = OU_LM_CSM_ADJ_ITEM.A_HEADER_FK
WHERE
OU_LM_CSM_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_CSM_ADJUSTMENT_MSG",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,44 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_FC_QRE_ADJUSTMENTS_OU_LM_QRE_ADJUSTMENT"],
alias = "T_FC_QRE_ADJUSTMENTS_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-04-02",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
},
) }}
SELECT /*+ PARALLEL(OU_LM_QR_ADJ_HEADER,4) */
MAX(OU_LM_QR_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_LM_QR_ADJ_HEADER.YEAR, OU_LM_QR_ADJ_HEADER.QUARTER) as MAX_KEY,
--MAX(OU_LM_QR_ADJ_HEADER.VERSION) OVER ( PARTITION BY OU_LM_QR_ADJ_HEADER.YEAR,OU_LM_QR_ADJ_HEADER.QUARTER ) as MAX_VERSION,
OU_LM_QR_ADJ_HEADER.A_KEY,
OU_LM_QR_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY,
CAST(OU_LM_QR_ADJ_HEADER.YEAR AS VARCHAR2(4)) AS YEAR,
CAST(OU_LM_QR_ADJ_HEADER.QUARTER AS NUMBER(1,0)) AS QUARTER,
CAST(OU_LM_QR_ADJ_HEADER.VERSION AS NUMBER(10,0)) AS VERSION,
CAST(OU_LM_QR_ADJ_ITEM_HEADER.COUNTRY AS VARCHAR2(3)) AS COUNTRY,
OU_LM_QR_ADJ_ITEM_HEADER.EFFECTIVE_DATE,
OU_LM_QR_ADJ_ITEM_HEADER.LAST_DATE_NOT_FORECAST,
CAST(OU_LM_QR_ADJ_ITEM.FORECAST_NAME AS VARCHAR2(50)) AS FORECAST_NAME,
CAST(OU_LM_QR_ADJ_ITEM.ADJUSTMENT_AMOUNT AS NUMBER(25,8)) AS ADJUSTMENT_AMOUNT
FROM
{{ source("ods","QR_ADJ_HEADER")}} OU_LM_QR_ADJ_HEADER
INNER JOIN
{{ source("ods","QR_ADJ_ITEM_HEADER")}} OU_LM_QR_ADJ_ITEM_HEADER
ON OU_LM_QR_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_QR_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY
AND OU_LM_QR_ADJ_HEADER.A_KEY=OU_LM_QR_ADJ_ITEM_HEADER.A_HEADER_FK
LEFT JOIN
{{ source("ods",'QR_ADJ_ITEM')}} OU_LM_QR_ADJ_ITEM
ON OU_LM_QR_ADJ_ITEM_HEADER.A_WORKFLOW_HISTORY_KEY =OU_LM_QR_ADJ_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_LM_QR_ADJ_ITEM_HEADER.A_KEY=OU_LM_QR_ADJ_ITEM.A_HEADER_FK
WHERE
OU_LM_QR_ADJ_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_QUARTERLY_ADJUSTMENT_MSG",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,39 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_FORECAST_OU_LM_FORECAST"],
alias = "T_FORECAST_SQ",
schema = "LM",
meta={
"author": "Adelina Borisova",
"created": "2025-03-27",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
},
) }}
SELECT
/*+ PARALLEL(OU_LM_FORECAST_HEADER,4) */
MAX(OU_LM_FORECAST_HEADER.A_WORKFLOW_HISTORY_KEY) OVER (PARTITION BY OU_LM_FORECAST_HEADER.REFERENCE_DATE) as MAX_KEY,
OU_LM_FORECAST_HEADER.A_KEY,
OU_LM_FORECAST_HEADER.A_WORKFLOW_HISTORY_KEY,
OU_LM_FORECAST_HEADER.REFERENCE_DATE,
CAST(OU_LM_FORECAST_HEADER.REVISION AS NUMBER(10,0)) AS REVISION,
CAST(OU_LM_FORECAST_HEADER.COUNTRY AS VARCHAR2(3 CHAR)) AS COUNTRY,
--CAST(OU_LM_FORECAST_HEADER.FREE_TEXT AS VARCHAR2(4000 CHAR)) AS FREE_TEXT,
OU_LM_FORECAST_ITEM.FORECAST_DATE,
CAST(OU_LM_FORECAST_ITEM.FORECAST_NAME AS VARCHAR2(50 CHAR)) AS FORECAST_NAME,
CAST(OU_LM_FORECAST_ITEM.FORECAST_VALUE AS NUMBER(28,10)) AS FORECAST_VALUE
FROM
{{ source("ods", "FORECAST_HEADER") }} OU_LM_FORECAST_HEADER,
{{ source("ods", "FORECAST_ITEM") }} OU_LM_FORECAST_ITEM
WHERE OU_LM_FORECAST_HEADER.A_KEY = OU_LM_FORECAST_ITEM.A_HEADER_FK
AND OU_LM_FORECAST_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_FORECAST_ITEM.A_WORKFLOW_HISTORY_KEY
AND OU_LM_FORECAST_HEADER.A_WORKFLOW_HISTORY_KEY
IN {{ filter_workflow_history_key(
"w_ODS_LM_FORECAST",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,43 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_LM_T_STANDING_FACILITIES_OU_LM_STANDING_FACILITIES"],
alias = "T_STANDING_FACILITIES_SQ",
schema = "LM",
meta={
"author": "Giacomo Scalabrin",
"created": "2025-03",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-11-26 - ticket MARS-1059"
}
) }}
SELECT
/*+ PARALLEL(ou_lm_standing_facility_header,4) */
MAX(OU_LM_STANDING_FACILITIES_HEADER.A_WORKFLOW_HISTORY_KEY) OVER (
PARTITION BY OU_LM_STANDING_FACILITIES_HEADER.REF_DATE
) AS MAX_KEY,
OU_LM_STANDING_FACILITIES_HEADER.A_KEY,
OU_LM_STANDING_FACILITIES_HEADER.A_WORKFLOW_HISTORY_KEY,
OU_LM_STANDING_FACILITIES_HEADER.REF_DATE,
CAST(OU_LM_STANDING_FACILITIES_HEADER.REV_NUMBER AS NUMBER(28,0)) AS REV_NUMBER,
CAST(OU_LM_STANDING_FACILITIES_HEADER.MLF_BS_TOTAL AS NUMBER(28,10)) AS MLF_BS_TOTAL,
CAST(OU_LM_STANDING_FACILITIES_HEADER.DF_BS_TOTAL AS NUMBER(28,10)) AS DF_BS_TOTAL,
CAST(OU_LM_STANDING_FACILITIES_HEADER.MLF_SF_TOTAL AS NUMBER(28,10)) AS MLF_SF_TOTAL,
CAST(OU_LM_STANDING_FACILITIES_HEADER.DF_SF_TOTAL AS NUMBER(28,10)) AS DF_SF_TOTAL,
CAST(OU_LM_STANDING_FACILITIES.COUNTRY AS VARCHAR2(3 CHAR)) AS COUNTRY,
CAST(OU_LM_STANDING_FACILITIES.MFI_ID AS VARCHAR2(500 CHAR)) AS MFI_ID,
CAST(OU_LM_STANDING_FACILITIES.MFI_NAME AS VARCHAR2(500 CHAR)) AS MFI_NAME,
CAST(OU_LM_STANDING_FACILITIES.MARGINAL_LENDING_FACILITY AS NUMBER(28,10)) AS MARGINAL_LENDING_FACILITY,
CAST(OU_LM_STANDING_FACILITIES.DEPOSIT_FACILITY AS NUMBER(28,10)) AS DEPOSIT_FACILITY,
CAST(OU_LM_STANDING_FACILITIES.COMMENT_ AS VARCHAR2(4000 CHAR)) AS COMMENT_
FROM
{{ source("ods", "STANDING_FACILITIES_HEADER") }} OU_LM_STANDING_FACILITIES_HEADER,
{{ source("ods", "STANDING_FACILITIES") }} OU_LM_STANDING_FACILITIES
WHERE
OU_LM_STANDING_FACILITIES_HEADER.A_KEY = OU_LM_STANDING_FACILITIES.A_SFH_FK
AND OU_LM_STANDING_FACILITIES_HEADER.A_WORKFLOW_HISTORY_KEY = OU_LM_STANDING_FACILITIES.A_WORKFLOW_HISTORY_KEY
AND OU_LM_STANDING_FACILITIES_HEADER.A_WORKFLOW_HISTORY_KEY IN
{{ filter_workflow_history_key(
"w_ODS_LM_STANDING_FACILITIES",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,284 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_MPEC_MPEC_FULL_OU_C2D_MPEC_CONTENT_FULL"],
alias = "T_MPEC_FULL_SQ",
schema = "MPEC",
meta={
"author": "Adelina Borisova",
"created": "2025-05-08",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-05-08"
}
) }}
WITH T_Criterion AS (
SELECT
T1.A_KEY as Criterion_Key,
LISTAGG(DISTINCT criterion, ',') WITHIN GROUP (ORDER BY criterion) as criterion_cont
FROM (
SELECT DISTINCT
OU_C2D_MPEC_CONTENT_FULL.ID ,
OU_C2D_MPEC_CONTENT_FULL.A_KEY,
OU_C2D_MPEC_CONTENT_CRITERION_FULL.A_WORKFLOW_HISTORY_KEY,
criterion
FROM {{ source("ods","MPEC_CONTENT_FULL")}} OU_C2D_MPEC_CONTENT_FULL
INNER JOIN {{ source("ods","MPEC_CONTENT_CRITERION_FULL")}} OU_C2D_MPEC_CONTENT_CRITERION_FULL
ON OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY = OU_C2D_MPEC_CONTENT_CRITERION_FULL.A_WORKFLOW_HISTORY_KEY
AND OU_C2D_MPEC_CONTENT_FULL.A_KEY = OU_C2D_MPEC_CONTENT_CRITERION_FULL.a_mpec_content_fk
) T1
GROUP BY T1.a_key
),
WH AS (
{{ filter_workflow_history_key(
"w_ODS_C2D_MPEC",
get_main_task_name(model.name),
", WORKFLOW_START"
)
}}
)
SELECT
FIL_REC.A_KEY,
FIL_REC.A_WORKFLOW_HISTORY_KEY,
TRUNC(FIL_REC.WORKFLOW_START) AS WORKFLOW_START,
CAST(FIL_REC.HOST AS VARCHAR2(5 CHAR)) AS HOST,
CAST(FIL_REC.ID AS VARCHAR2(255 CHAR)) AS ID,
CAST(FIL_REC.RIAD_CODE AS VARCHAR2(255 CHAR)) AS RIAD_CODE,
CAST(FIL_REC.MPEC_BIC AS VARCHAR2(255 CHAR)) AS MPEC_BIC,
CAST(FIL_REC.RTGS_ACCESS AS VARCHAR2(1 CHAR)) AS RTGS_ACCESS,
CAST(FIL_REC.INTRADAY_CREDIT_FACILITY AS VARCHAR2(1 CHAR)) AS INTRADAY_CREDIT_FACILITY,
CAST(FIL_REC.MRR_TYPE AS VARCHAR2(30 CHAR)) AS MRR_TYPE,
CAST(FIL_REC.MRR_INTERMEDIARY_HOST AS VARCHAR2(5 CHAR)) AS MRR_INTERMEDIARY_HOST,
CAST(FIL_REC.MRR_INTERMEDIARY_ID AS VARCHAR2(255 CHAR)) AS MRR_INTERMEDIARY_ID,
FIL_REC.MRR_AVG_PROV_SUSP_STDT,
FIL_REC.MRR_AVG_PROV_SUSP_ENDT,
FIL_REC.MRR_EXEMPTION_STDT,
FIL_REC.MRR_EXEMPTION_ENDT,
FIL_REC.MRR_EXEMPTION_REORG_STDT,
FIL_REC.MRR_EXEMPTION_REORG_ENDT,
CAST(FIL_REC.PRUDENTIAL_SUPERVISION AS VARCHAR2(100 CHAR)) AS PRUDENTIAL_SUPERVISION,
CAST(FIL_REC.ELIG_DEPOSIT_FACILITY AS VARCHAR2(1 CHAR)) AS ELIG_DEPOSIT_FACILITY,
FIL_REC.DEPOSIT_FACILITY_SUSP_STDT,
FIL_REC.DEPOSIT_FACILITY_SUSP_ENDT,
FIL_REC.DEPOSIT_FACILITY_EXCL_STDT,
FIL_REC.DEPOSIT_FACILITY_EXCL_ENDT,
FIL_REC.DEPOSIT_FACILITY_LIMIT_STDT,
FIL_REC.DEPOSIT_FACILITY_LIMIT_ENDT,
CAST(FIL_REC.ELIG_MARGINAL_LENDING_FACILITY AS VARCHAR2(1 CHAR)) AS ELIG_MARGINAL_LENDING_FACILITY,
FIL_REC.MARG_LEND_FACILITY_SUSP_STDT,
FIL_REC.MARG_LEND_FACILITY_SUSP_ENDT,
FIL_REC.MARG_LEND_FACILITY_EXCL_STDT,
FIL_REC.MARG_LEND_FACILITY_EXCL_ENDT,
FIL_REC.MARG_LEND_FACILITY_LIMIT_STDT,
FIL_REC.MARG_LEND_FACILITY_LIMIT_ENDT,
CAST(FIL_REC.ELIG_ECB_DEBT_CERTIFICATE AS VARCHAR2(1 CHAR)) AS ELIG_ECB_DEBT_CERTIFICATE,
FIL_REC.ECB_DEBT_CERTIF_SUSP_STDT,
FIL_REC.ECB_DEBT_CERTIF_SUSP_ENDT,
FIL_REC.ECB_DEBT_CERTIF_EXCL_STDT,
FIL_REC.ECB_DEBT_CERTIF_EXCL_ENDT,
FIL_REC.ECB_DEBT_CERTIF_LIMIT_STDT,
FIL_REC.ECB_DEBT_CERTIF_LIMIT_ENDT,
CAST(FIL_REC.ELIG_STD_TENDER_OPERATIONS AS VARCHAR2(1 CHAR)) AS ELIG_STD_TENDER_OPERATIONS,
FIL_REC.STD_TENDER_OPE_SUSP_STDT,
FIL_REC.STD_TENDER_OPE_SUSP_ENDT,
FIL_REC.STD_TENDER_OPE_EXCL_STDT,
FIL_REC.STD_TENDER_OPE_EXCL_ENDT,
FIL_REC.STD_TENDER_OPE_LIMIT_STDT,
FIL_REC.STD_TENDER_OPE_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FTRO_ABSORBING AS VARCHAR2(1 CHAR)) AS ELIG_FTRO_ABSORBING,
FIL_REC.FINE_TUN_REVOPE_ABS_SUSP_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_SUSP_ENDT,
FIL_REC.FINE_TUN_REVOPE_ABS_EXCL_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_EXCL_ENDT,
FIL_REC.FINE_TUN_REVOPE_ABS_LIMIT_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FTRO_PROVIDING AS VARCHAR2(1 CHAR)) AS ELIG_FTRO_PROVIDING,
FIL_REC.FINE_TUN_REVOP_PROV_SUSP_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_SUSP_ENDT,
FIL_REC.FINE_TUN_REVOP_PROV_EXCL_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_EXCL_ENDT,
FIL_REC.FINE_TUN_REVOP_PROV_LIMIT_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FIX_TERM_DEPOSIT AS VARCHAR2(1 CHAR)) AS ELIG_FIX_TERM_DEPOSIT,
FIL_REC.FIX_TERM_DEPOSIT_SUSP_STDT,
FIL_REC.FIX_TERM_DEPOSIT_SUSP_ENDT,
FIL_REC.FIX_TERM_DEPOSIT_EXCL_STDT,
FIL_REC.FIX_TERM_DEPOSIT_EXCL_ENDT,
FIL_REC.FIX_TERM_DEPOSIT_LIMIT_STDT,
FIL_REC.FIX_TERM_DEPOSIT_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FX_SWAP_ABSORBING AS VARCHAR2(1 CHAR)) AS ELIG_FX_SWAP_ABSORBING,
FIL_REC.FX_SWAP_ABS_SUSP_STDT,
FIL_REC.FX_SWAP_ABS_SUSP_ENDT,
FIL_REC.FX_SWAP_ABS_EXCL_STDT,
FIL_REC.FX_SWAP_ABS_EXCL_ENDT,
FIL_REC.FX_SWAP_ABS_LIMIT_STDT,
FIL_REC.FX_SWAP_ABS_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FX_SWAP_PROVIDING AS VARCHAR2(1 CHAR)) AS ELIG_FX_SWAP_PROVIDING,
FIL_REC.FX_SWAP_PROV_SUSP_STDT,
FIL_REC.FX_SWAP_PROV_SUSP_ENDT,
FIL_REC.FX_SWAP_PROV_EXCL_STDT,
FIL_REC.FX_SWAP_PROV_EXCL_ENDT,
FIL_REC.FX_SWAP_PROV_LIMIT_STDT,
FIL_REC.FX_SWAP_PROV_LIMIT_ENDT,
FIL_REC.ECB_ENTRY_DATE,
CAST(FIL_REC.STATUS AS VARCHAR2(10 CHAR)) AS STATUS,
CAST(FIL_REC.ACTION AS VARCHAR2(1 CHAR)) AS ACTION,
CAST(FIL_REC.USD_OPERATIONS AS VARCHAR2(1 CHAR)) AS USD_OPERATIONS,
CAST(FIL_REC.DELETION_REASON AS VARCHAR2(30 CHAR)) AS DELETION_REASON,
CAST(FIL_REC.NCB_COMMENT AS VARCHAR2(1 CHAR)) AS NCB_COMMENT,
--FIL_REC.CREATION_TIME ,
CAST(FIL_REC.VERIFIED_OPERATIONAL_CRITERIA AS VARCHAR2(255 CHAR)) AS VERIFIED_OPERATIONAL_CRITERIA,
CAST(FIL_REC.CLM_ACCESS AS VARCHAR2(1 CHAR)) AS CLM_ACCESS,
FIL_REC.MAX_KEY
--,FIL_REC.COUNT_KEYS
FROM (
SELECT /*+ PARALLEL(OU_C2D_MPEC_CONTENT_FULL,4) */
ROW_NUMBER() OVER (PARTITION BY OU_C2D_MPEC_CONTENT_FULL.HOST, OU_C2D_MPEC_CONTENT_FULL.ID,OU_C2D_MPEC_CONTENT_FULL.ACTION, OU_C2D_MPEC_CONTENT_FULL.ECB_ENTRY_DATE,OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY ORDER BY OU_C2D_MPEC_CONTENT_FULL.A_KEY desc) AS MX_ROW_NUM,
OU_C2D_MPEC_CONTENT_FULL.A_KEY,
OU_C2D_MPEC_CONTENT_FULL.HOST,
OU_C2D_MPEC_CONTENT_FULL.ID,
OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY,
CONCAT(OU_C2D_MPEC_CONTENT_FULL.HOST, OU_C2D_MPEC_CONTENT_FULL.ID) as RIAD_CODE,
OU_C2D_MPEC_CONTENT_FULL.MPEC_BIC,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.RTGS_ACCESS) IS NULL THEN '0'
ELSE '1'
END RTGS_ACCESS,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.INTRADAY_CREDIT_FACILITY) IS NULL THEN '0'
ELSE '1'
END INTRADAY_CREDIT_FACILITY,
OU_C2D_MPEC_CONTENT_FULL.MRR_TYPE,
OU_C2D_MPEC_CONTENT_FULL.MRR_INTERMEDIARY_HOST,
OU_C2D_MPEC_CONTENT_FULL.MRR_INTERMEDIARY_ID,
OU_C2D_MPEC_CONTENT_FULL.MRR_AVG_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.MRR_AVG_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.MRR_EXEMPTION_STDT,
OU_C2D_MPEC_CONTENT_FULL.MRR_EXEMPTION_ENDT,
OU_C2D_MPEC_CONTENT_FULL.MRR_EXEMPTION_REORG_STDT,
OU_C2D_MPEC_CONTENT_FULL.MRR_EXEMPTION_REORG_ENDT,
OU_C2D_MPEC_CONTENT_FULL.PRUDENTIAL_SUPERVISION,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_DEPOSIT_FACILITY) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_DEPOSIT_FACILITY,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.DEPOSIT_FACILITY_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_MARGINAL_LENDING_FACILITY) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_MARGINAL_LENDING_FACILITY,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.MARG_LEND_FACILITY_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_ECB_DEBT_CERTIFICATE) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_ECB_DEBT_CERTIFICATE,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_DEBT_CERTIF_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_STD_TENDER_OPERATIONS) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_STD_TENDER_OPERATIONS,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.STD_TENDER_OPE_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_FTRO_ABSORBING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FTRO_ABSORBING,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOPE_ABS_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_FTRO_PROVIDING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FTRO_PROVIDING,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.FINE_TUN_REVOP_PROV_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_FIX_TERM_DEPOSIT) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FIX_TERM_DEPOSIT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.FIX_TERM_DEPOSIT_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_FX_SWAP_ABSORBING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FX_SWAP_ABSORBING,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_ABS_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.ELIG_FX_SWAP_PROVIDING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FX_SWAP_PROVIDING,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_EXCL_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_EXCL_ENDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_LIMIT_STDT,
OU_C2D_MPEC_CONTENT_FULL.FX_SWAP_PROV_LIMIT_ENDT,
OU_C2D_MPEC_CONTENT_FULL.ECB_ENTRY_DATE,
OU_C2D_MPEC_CONTENT_FULL.STATUS,
OU_C2D_MPEC_CONTENT_FULL.ACTION,
OU_C2D_MPEC_CONTENT_FULL.USD_OPERATIONS,
OU_C2D_MPEC_CONTENT_FULL.DELETION_REASON,
OU_C2D_MPEC_CONTENT_FULL.NCB_COMMENT,
--OU_C2D_MPEC_ADMIN.CREATION_TIME ,
T_Criterion.criterion_cont as VERIFIED_OPERATIONAL_CRITERIA ,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT_FULL.CLM_ACCESS) IS NULL THEN '0'
ELSE '1'
END CLM_ACCESS,
--OU_C2D_MPEC_CONTENT_FULL.CLM_ACCESS,
WH.WORKFLOW_START,
CASE
WHEN OU_C2D_MPEC_CONTENT_FULL.ACTION = 'N' THEN 1
WHEN OU_C2D_MPEC_CONTENT_FULL.ACTION = 'U' THEN 2
WHEN OU_C2D_MPEC_CONTENT_FULL.ACTION = 'D' THEN 3
END AS ACTION_ORDER,
MAX(OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY) OVER () AS MAX_KEY
--,COUNT(DISTINCT OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY) OVER () AS COUNT_KEYS
FROM
{{ source("ods","MPEC_CONTENT_FULL")}} OU_C2D_MPEC_CONTENT_FULL
--inner join OU_C2D_MPEC_ADMIN on OU_C2D_MPEC_ADMIN.A_ETL_LOAD_SET_FK = OU_C2D_MPEC_CONTENT_FULL.A_ETL_LOAD_SET_FK
LEFT OUTER JOIN T_Criterion
ON T_Criterion.Criterion_Key = OU_C2D_MPEC_CONTENT_FULL.A_KEY
INNER JOIN WH
ON OU_C2D_MPEC_CONTENT_FULL.A_WORKFLOW_HISTORY_KEY = WH.A_WORKFLOW_HISTORY_KEY
--INNER JOIN CT_ODS_A_LOAD_HISTORY on OU_C2D_MPEC_CONTENT_FULL.A_ETL_LOAD_SET_FK=CT_ODS_A_LOAD_HISTORY.A_ETL_LOAD_SET_KEY
) FIL_REC
WHERE
MX_ROW_NUM=1
ORDER BY
RIAD_CODE, A_KEY asc

View File

@@ -0,0 +1,294 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_MPEC_MPEC_OU_C2D_MPEC_CONTENT"],
alias = "T_MPEC_SQ",
schema = "MPEC",
meta={
"author": "Adelina Borisova",
"created": "2025-04-25",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-04-25"
}
) }}
WITH T_Criterion AS (
SELECT
T1.A_KEY as Criterion_Key,
LISTAGG(criterion, ',') WITHIN GROUP (ORDER BY criterion) as criterion_cont
FROM (
SELECT
OU_C2D_MPEC_CONTENT.ID ,
OU_C2D_MPEC_CONTENT.A_KEY,
OU_C2D_MPEC_CONTENT_CRITERION.A_WORKFLOW_HISTORY_KEY,
criterion
FROM {{ source("ods","MPEC_CONTENT")}} OU_C2D_MPEC_CONTENT
INNER JOIN {{ source("ods","MPEC_CONTENT_CRITERION")}} OU_C2D_MPEC_CONTENT_CRITERION
ON OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY = OU_C2D_MPEC_CONTENT_CRITERION.A_WORKFLOW_HISTORY_KEY
AND OU_C2D_MPEC_CONTENT.A_KEY = OU_C2D_MPEC_CONTENT_CRITERION.a_mpec_content_fk
) T1
GROUP BY T1.a_key
),
ETL_LAOD_KEY AS (
SELECT
MIN(OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY) MIN_ETL_LOAD_KEY
FROM {{ source("ods","MPEC_CONTENT")}} OU_C2D_MPEC_CONTENT
--INNER JOIN {{ source("ou_c2d","MPEC_ADMIN")}} OU_C2D_MPEC_ADMIN
-- ON OU_C2D_MPEC_ADMIN.A_WORKFLOW_HISTORY_KEY = OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY
WHERE
OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY
IN ( {{ filter_workflow_history_key(
"w_ODS_C2D_MPEC",
get_main_task_name(model.name)
) }}
)
)
SELECT
FIL_REC.A_KEY,
FIL_REC.A_WORKFLOW_HISTORY_KEY,
FIL_REC.ECB_ENTRY_DATE as VALID_FROM,
CASE
WHEN action='D' THEN ECB_ENTRY_DATE
ELSE NVL(lead(ECB_ENTRY_DATE) OVER (PARTITION BY FIL_REC.host, FIL_REC.id ORDER BY ECB_ENTRY_DATE),TO_DATE('31129999', 'dd-mm-yy'))
END AS VALID_TO,
ROW_NUMBER() OVER (PARTITION BY FIL_REC.host, FIL_REC.id ORDER BY ECB_ENTRY_DATE, FIL_REC.ACTION_ORDER) AS row_num2,
COUNT(A_KEY) OVER (PARTITION BY FIL_REC.host, FIL_REC.id) AS max_row_num3,
CAST(FIL_REC.HOST AS VARCHAR2(5 CHAR)) AS HOST,
CAST(FIL_REC.ID AS VARCHAR2(255 CHAR)) AS ID,
CAST(FIL_REC.RIAD_CODE AS VARCHAR2(255 CHAR)) AS RIAD_CODE,
CAST(FIL_REC.MPEC_BIC AS VARCHAR2(255 CHAR)) AS MPEC_BIC,
CAST(FIL_REC.RTGS_ACCESS AS VARCHAR2(1 CHAR)) AS RTGS_ACCESS,
CAST(FIL_REC.INTRADAY_CREDIT_FACILITY AS VARCHAR2(1 CHAR)) AS INTRADAY_CREDIT_FACILITY,
CAST(FIL_REC.MRR_TYPE AS VARCHAR2(30 CHAR)) AS MRR_TYPE,
CAST(FIL_REC.MRR_INTERMEDIARY_HOST AS VARCHAR2(5 CHAR)) AS MRR_INTERMEDIARY_HOST,
CAST(FIL_REC.MRR_INTERMEDIARY_ID AS VARCHAR2(255 CHAR)) AS MRR_INTERMEDIARY_ID,
FIL_REC.MRR_AVG_PROV_SUSP_STDT,
FIL_REC.MRR_AVG_PROV_SUSP_ENDT,
FIL_REC.MRR_EXEMPTION_STDT,
FIL_REC.MRR_EXEMPTION_ENDT,
FIL_REC.MRR_EXEMPTION_REORG_STDT,
FIL_REC.MRR_EXEMPTION_REORG_ENDT,
CAST(FIL_REC.PRUDENTIAL_SUPERVISION AS VARCHAR2(100 CHAR)) AS PRUDENTIAL_SUPERVISION,
CAST(FIL_REC.ELIG_DEPOSIT_FACILITY AS VARCHAR2(1 CHAR)) AS ELIG_DEPOSIT_FACILITY,
FIL_REC.DEPOSIT_FACILITY_SUSP_STDT,
FIL_REC.DEPOSIT_FACILITY_SUSP_ENDT,
FIL_REC.DEPOSIT_FACILITY_EXCL_STDT,
FIL_REC.DEPOSIT_FACILITY_EXCL_ENDT,
FIL_REC.DEPOSIT_FACILITY_LIMIT_STDT,
FIL_REC.DEPOSIT_FACILITY_LIMIT_ENDT,
CAST(FIL_REC.ELIG_MARGINAL_LENDING_FACILITY AS VARCHAR2(1 CHAR)) AS ELIG_MARGINAL_LENDING_FACILITY,
FIL_REC.MARG_LEND_FACILITY_SUSP_STDT,
FIL_REC.MARG_LEND_FACILITY_SUSP_ENDT,
FIL_REC.MARG_LEND_FACILITY_EXCL_STDT,
FIL_REC.MARG_LEND_FACILITY_EXCL_ENDT,
FIL_REC.MARG_LEND_FACILITY_LIMIT_STDT,
FIL_REC.MARG_LEND_FACILITY_LIMIT_ENDT,
CAST(FIL_REC.ELIG_ECB_DEBT_CERTIFICATE AS VARCHAR2(1 CHAR)) AS ELIG_ECB_DEBT_CERTIFICATE,
FIL_REC.ECB_DEBT_CERTIF_SUSP_STDT,
FIL_REC.ECB_DEBT_CERTIF_SUSP_ENDT,
FIL_REC.ECB_DEBT_CERTIF_EXCL_STDT,
FIL_REC.ECB_DEBT_CERTIF_EXCL_ENDT,
FIL_REC.ECB_DEBT_CERTIF_LIMIT_STDT,
FIL_REC.ECB_DEBT_CERTIF_LIMIT_ENDT,
CAST(FIL_REC.ELIG_STD_TENDER_OPERATIONS AS VARCHAR2(1 CHAR)) AS ELIG_STD_TENDER_OPERATIONS,
FIL_REC.STD_TENDER_OPE_SUSP_STDT,
FIL_REC.STD_TENDER_OPE_SUSP_ENDT,
FIL_REC.STD_TENDER_OPE_EXCL_STDT,
FIL_REC.STD_TENDER_OPE_EXCL_ENDT,
FIL_REC.STD_TENDER_OPE_LIMIT_STDT,
FIL_REC.STD_TENDER_OPE_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FTRO_ABSORBING AS VARCHAR2(1 CHAR)) AS ELIG_FTRO_ABSORBING,
FIL_REC.FINE_TUN_REVOPE_ABS_SUSP_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_SUSP_ENDT,
FIL_REC.FINE_TUN_REVOPE_ABS_EXCL_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_EXCL_ENDT,
FIL_REC.FINE_TUN_REVOPE_ABS_LIMIT_STDT,
FIL_REC.FINE_TUN_REVOPE_ABS_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FTRO_PROVIDING AS VARCHAR2(1 CHAR)) AS ELIG_FTRO_PROVIDING,
FIL_REC.FINE_TUN_REVOP_PROV_SUSP_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_SUSP_ENDT,
FIL_REC.FINE_TUN_REVOP_PROV_EXCL_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_EXCL_ENDT,
FIL_REC.FINE_TUN_REVOP_PROV_LIMIT_STDT,
FIL_REC.FINE_TUN_REVOP_PROV_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FIX_TERM_DEPOSIT AS VARCHAR2(1 CHAR)) AS ELIG_FIX_TERM_DEPOSIT,
FIL_REC.FIX_TERM_DEPOSIT_SUSP_STDT,
FIL_REC.FIX_TERM_DEPOSIT_SUSP_ENDT,
FIL_REC.FIX_TERM_DEPOSIT_EXCL_STDT,
FIL_REC.FIX_TERM_DEPOSIT_EXCL_ENDT,
FIL_REC.FIX_TERM_DEPOSIT_LIMIT_STDT,
FIL_REC.FIX_TERM_DEPOSIT_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FX_SWAP_ABSORBING AS VARCHAR2(1 CHAR)) AS ELIG_FX_SWAP_ABSORBING,
FIL_REC.FX_SWAP_ABS_SUSP_STDT,
FIL_REC.FX_SWAP_ABS_SUSP_ENDT,
FIL_REC.FX_SWAP_ABS_EXCL_STDT,
FIL_REC.FX_SWAP_ABS_EXCL_ENDT,
FIL_REC.FX_SWAP_ABS_LIMIT_STDT,
FIL_REC.FX_SWAP_ABS_LIMIT_ENDT,
CAST(FIL_REC.ELIG_FX_SWAP_PROVIDING AS VARCHAR2(1 CHAR)) AS ELIG_FX_SWAP_PROVIDING,
FIL_REC.FX_SWAP_PROV_SUSP_STDT,
FIL_REC.FX_SWAP_PROV_SUSP_ENDT,
FIL_REC.FX_SWAP_PROV_EXCL_STDT,
FIL_REC.FX_SWAP_PROV_EXCL_ENDT,
FIL_REC.FX_SWAP_PROV_LIMIT_STDT,
FIL_REC.FX_SWAP_PROV_LIMIT_ENDT,
FIL_REC.ECB_ENTRY_DATE,
CAST(FIL_REC.STATUS AS VARCHAR2(10 CHAR)) AS STATUS,
CAST(FIL_REC.ACTION AS VARCHAR2(1 CHAR)) AS ACTION,
CAST(FIL_REC.USD_OPERATIONS AS VARCHAR2(1 CHAR)) AS USD_OPERATIONS,
CAST(FIL_REC.DELETION_REASON AS VARCHAR2(30 CHAR)) AS DELETION_REASON,
CAST(FIL_REC.NCB_COMMENT AS VARCHAR2(1 CHAR)) AS NCB_COMMENT,
FIL_REC.CREATION_TIME,
CAST(FIL_REC.VERIFIED_OPERATIONAL_CRITERIA AS VARCHAR2(255 CHAR)) AS VERIFIED_OPERATIONAL_CRITERIA,
CAST(FIL_REC.CLM_ACCESS AS VARCHAR2(1 CHAR)) AS CLM_ACCESS
FROM (
SELECT /*+ PARALLEL(OU_C2D_MPEC_CONTENT,4) */
ROW_NUMBER() OVER (PARTITION BY OU_C2D_MPEC_CONTENT.HOST, OU_C2D_MPEC_CONTENT.ID,OU_C2D_MPEC_CONTENT.ACTION, OU_C2D_MPEC_CONTENT.ECB_ENTRY_DATE,OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY ORDER BY OU_C2D_MPEC_CONTENT.A_KEY desc) AS MX_ROW_NUM,
OU_C2D_MPEC_CONTENT.A_KEY,
OU_C2D_MPEC_CONTENT.HOST,
OU_C2D_MPEC_CONTENT.ID,
OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY,
CONCAT(OU_C2D_MPEC_CONTENT.HOST, OU_C2D_MPEC_CONTENT.ID) as RIAD_CODE,
OU_C2D_MPEC_CONTENT.MPEC_BIC,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.RTGS_ACCESS) IS NULL THEN '0'
ELSE '1'
END RTGS_ACCESS,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.INTRADAY_CREDIT_FACILITY) IS NULL THEN '0'
ELSE '1'
END INTRADAY_CREDIT_FACILITY,
OU_C2D_MPEC_CONTENT.MRR_TYPE,
OU_C2D_MPEC_CONTENT.MRR_INTERMEDIARY_HOST,
OU_C2D_MPEC_CONTENT.MRR_INTERMEDIARY_ID,
OU_C2D_MPEC_CONTENT.MRR_AVG_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT.MRR_AVG_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.MRR_EXEMPTION_STDT,
OU_C2D_MPEC_CONTENT.MRR_EXEMPTION_ENDT,
OU_C2D_MPEC_CONTENT.MRR_EXEMPTION_REORG_STDT,
OU_C2D_MPEC_CONTENT.MRR_EXEMPTION_REORG_ENDT,
OU_C2D_MPEC_CONTENT.PRUDENTIAL_SUPERVISION,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_DEPOSIT_FACILITY) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_DEPOSIT_FACILITY,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_SUSP_STDT,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_EXCL_STDT,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.DEPOSIT_FACILITY_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_MARGINAL_LENDING_FACILITY) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_MARGINAL_LENDING_FACILITY,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_SUSP_STDT,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_EXCL_STDT,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.MARG_LEND_FACILITY_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_ECB_DEBT_CERTIFICATE) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_ECB_DEBT_CERTIFICATE,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_SUSP_STDT,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_EXCL_STDT,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.ECB_DEBT_CERTIF_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_STD_TENDER_OPERATIONS) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_STD_TENDER_OPERATIONS,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_SUSP_STDT,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_EXCL_STDT,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.STD_TENDER_OPE_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_FTRO_ABSORBING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FTRO_ABSORBING,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_SUSP_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_EXCL_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOPE_ABS_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_FTRO_PROVIDING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FTRO_PROVIDING,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_EXCL_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.FINE_TUN_REVOP_PROV_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_FIX_TERM_DEPOSIT) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FIX_TERM_DEPOSIT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_SUSP_STDT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_EXCL_STDT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.FIX_TERM_DEPOSIT_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_FX_SWAP_ABSORBING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FX_SWAP_ABSORBING,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_SUSP_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_EXCL_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_ABS_LIMIT_ENDT,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.ELIG_FX_SWAP_PROVIDING) IS NULL THEN 'N'
ELSE 'Y'
END ELIG_FX_SWAP_PROVIDING,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_SUSP_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_SUSP_ENDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_EXCL_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_EXCL_ENDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_LIMIT_STDT,
OU_C2D_MPEC_CONTENT.FX_SWAP_PROV_LIMIT_ENDT,
OU_C2D_MPEC_CONTENT.ECB_ENTRY_DATE,
OU_C2D_MPEC_CONTENT.STATUS,
OU_C2D_MPEC_CONTENT.ACTION,
OU_C2D_MPEC_CONTENT.USD_OPERATIONS,
OU_C2D_MPEC_CONTENT.DELETION_REASON,
OU_C2D_MPEC_CONTENT.NCB_COMMENT,
CAST(OU_C2D_MPEC_ADMIN.CREATION_TIME AS TIMESTAMP) AS CREATION_TIME,
T_Criterion.criterion_cont as VERIFIED_OPERATIONAL_CRITERIA ,
CASE
WHEN TRIM(OU_C2D_MPEC_CONTENT.CLM_ACCESS) IS NULL THEN '0'
ELSE '1'
END CLM_ACCESS,
CASE
WHEN OU_C2D_MPEC_CONTENT.ACTION = 'N' THEN 1
WHEN OU_C2D_MPEC_CONTENT.ACTION = 'U' THEN 2
WHEN OU_C2D_MPEC_CONTENT.ACTION = 'D' THEN 3
END AS ACTION_ORDER
FROM
{{ source("ods","MPEC_CONTENT")}} OU_C2D_MPEC_CONTENT
INNER JOIN
{{ source("ods","MPEC_ADMIN")}} OU_C2D_MPEC_ADMIN
ON OU_C2D_MPEC_ADMIN.A_WORKFLOW_HISTORY_KEY = OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY
LEFT OUTER JOIN T_Criterion
ON T_Criterion.Criterion_Key = OU_C2D_MPEC_CONTENT.A_KEY
INNER JOIN ETL_LAOD_KEY
ON OU_C2D_MPEC_CONTENT.A_WORKFLOW_HISTORY_KEY = ETL_LAOD_KEY.MIN_ETL_LOAD_KEY
) FIL_REC
WHERE
MX_ROW_NUM=1
ORDER BY
RIAD_CODE, A_KEY ASC

View File

@@ -0,0 +1,40 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_MPEC_T_MPEC_MID_FULL_OU_C2D_MPEC_MID_FULL"],
alias = "T_MPEC_MID_FULL_SQ",
schema = "MPEC",
meta={
"author": "Adelina Borisova",
"created": "2025-05-14",
"last_updated_by": "Adelina Borisova",
"last_updated": "2025-05-14"
}
) }}
SELECT
OU_C2D_MPEC_MID_FULL.A_KEY,
OU_C2D_MPEC_MID_FULL.A_WORKFLOW_HISTORY_KEY,
CAST(OU_C2D_MPEC_MID_FULL.RIAD_CODE AS VARCHAR2(255 CHAR)) AS RIAD_CODE,
CAST(OU_C2D_MPEC_MID_FULL.BIC AS VARCHAR2(255 CHAR)) AS BIC,
CAST(OU_C2D_MPEC_MID_FULL.COUNTRY_OF_REGISTRATION AS VARCHAR2(2 CHAR)) AS COUNTRY_OF_REGISTRATION,
CAST(OU_C2D_MPEC_MID_FULL.NAME AS VARCHAR2(255 CHAR)) AS NAME,
CAST(OU_C2D_MPEC_MID_FULL.BOX AS VARCHAR2(255 CHAR)) AS BOX,
CAST(OU_C2D_MPEC_MID_FULL.ADDRESS AS VARCHAR2(255 CHAR)) AS ADDRESS,
CAST(OU_C2D_MPEC_MID_FULL.POSTAL AS VARCHAR2(255 CHAR)) AS POSTAL,
CAST(OU_C2D_MPEC_MID_FULL.CITY AS VARCHAR2(255 CHAR)) AS CITY,
CAST(OU_C2D_MPEC_MID_FULL.CATEGORY AS VARCHAR2(255 CHAR)) AS CATEGORY,
CAST(OU_C2D_MPEC_MID_FULL.HEAD_COUNTRY_OF_REGISTRATION AS VARCHAR2(2 CHAR)) AS HEAD_COUNTRY_OF_REGISTRATION,
CAST(OU_C2D_MPEC_MID_FULL.HEAD_NAME AS VARCHAR2(255 CHAR)) AS HEAD_NAME,
CAST(OU_C2D_MPEC_MID_FULL.HEAD_RIAD_CODE AS VARCHAR2(255 CHAR)) AS HEAD_RIAD_CODE,
CAST(OU_C2D_MPEC_MID_FULL.RESERVE AS VARCHAR2(1 CHAR)) AS RESERVE,
CAST(OU_C2D_MPEC_MID_FULL.EXEMPT AS VARCHAR2(1 CHAR)) AS EXEMPT,
TRUNC(WH.WORKFLOW_START) AS WORKFLOW_START
FROM
{{ source("ods","MPEC_MID_FULL")}} OU_C2D_MPEC_MID_FULL
INNER JOIN
{{ filter_workflow_history_key(
"w_ODS_C2D_MPEC_MID_FULL",
get_main_task_name(model.name),
", WORKFLOW_START"
) }} WH
ON OU_C2D_MPEC_MID_FULL.A_WORKFLOW_HISTORY_KEY = WH.A_WORKFLOW_HISTORY_KEY

View File

@@ -0,0 +1,27 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_RIAD_T_CLSLNK_PSTNZ_CURRENT_OU_RIAD_RIAD_CLOSE_LINK"],
alias = "T_CLSLNK_PSTNZ_CURRENT_SQ",
schema = "RIAD",
) }}
SELECT
ou_riad_riad_close_link.A_KEY,
ou_riad_riad_close_link.A_WORKFLOW_HISTORY_KEY,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_1,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_2,
ou_riad_riad_close_link.CLSNK_PSTN,
ou_riad_riad_close_link.CLSLNK_SNPSHT_DT,
ou_riad_riad_close_link.CLSLNK_CHLD_ENTTY_RIAD_ID,
ou_riad_riad_close_link.CLSLNK_PRNT_ENTTY_RIAD_ID,
ou_riad_riad_close_link.SHARE_OWNERSHIP,
ou_riad_riad_close_link.PATH_ID
FROM
{{ source("ou_riad", "RIAD_CLOSE_LINK") }} ou_riad_riad_close_link
WHERE
ou_riad_riad_close_link.CLSNK_PSTN = 0
AND ou_riad_riad_close_link.A_WORKFLOW_HISTORY_KEY IN
{{ filter_workflow_history_max_key(
"w_ODS_RIAD_CLOSE_LINKS",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,42 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_RIAD_T_CLSLNK_PSTNZ_HIST_OU_RIAD_RIAD_CLOSE_LINK_ADHOCK"],
alias = "T_CLSLNK_PSTNZ_HIST_ADHOCK_SQ",
schema = "RIAD",
) }}
SELECT
ou_riad_riad_close_link_adhoc.A_KEY,
ou_riad_riad_close_link_adhoc.A_WORKFLOW_HISTORY_KEY,
ou_riad_riad_close_link_adhoc.CLSLNK_ENTTY_RIAD_ID_1,
ou_riad_riad_close_link_adhoc.CLSLNK_ENTTY_RIAD_ID_2,
ou_riad_riad_close_link_adhoc.CLSNK_PSTN,
ou_riad_riad_close_link_adhoc.CLSLNK_SNPSHT_DT,
ou_riad_riad_close_link_adhoc.CLSLNK_CHLD_ENTTY_RIAD_ID,
ou_riad_riad_close_link_adhoc.CLSLNK_PRNT_ENTTY_RIAD_ID,
ou_riad_riad_close_link_adhoc.SHARE_OWNERSHIP,
ou_riad_riad_close_link_adhoc.PATH_ID
FROM
{{ source("ou_riad", "RIAD_CLOSE_LINK_ADHOC") }} ou_riad_riad_close_link_adhoc
WHERE
ou_riad_riad_close_link_adhoc.CLSNK_PSTN = 0 and
A_WORKFLOW_HISTORY_KEY IN
{{ filter_workflow_history_key("w_ODS_RIAD_CLOSE_LINKS_ADHOC",get_main_task_name(model.name)) }}
UNION ALL
SELECT
ou_riad_riad_close_link_adhoc.A_KEY,
ou_riad_riad_close_link_adhoc.A_WORKFLOW_HISTORY_KEY,
ou_riad_riad_close_link_adhoc.CLSLNK_ENTTY_RIAD_ID_2 AS CLSLNK_ENTTY_RIAD_ID_1,
ou_riad_riad_close_link_adhoc.CLSLNK_ENTTY_RIAD_ID_1 AS CLSLNK_ENTTY_RIAD_ID_2,
ou_riad_riad_close_link_adhoc.CLSNK_PSTN,
ou_riad_riad_close_link_adhoc.CLSLNK_SNPSHT_DT,
ou_riad_riad_close_link_adhoc.CLSLNK_CHLD_ENTTY_RIAD_ID,
ou_riad_riad_close_link_adhoc.CLSLNK_PRNT_ENTTY_RIAD_ID,
ou_riad_riad_close_link_adhoc.SHARE_OWNERSHIP,
ou_riad_riad_close_link_adhoc.PATH_ID
FROM
{{ source("ou_riad", "RIAD_CLOSE_LINK_ADHOC") }} ou_riad_riad_close_link_adhoc
WHERE
ou_riad_riad_close_link_adhoc.CLSNK_PSTN = 0 and
A_WORKFLOW_HISTORY_KEY IN
{{ filter_workflow_history_key("w_ODS_RIAD_CLOSE_LINKS_ADHOC",get_main_task_name(model.name) ) }}

View File

@@ -0,0 +1,63 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_RIAD_T_CLSLNK_PSTNZ_HIST_OU_RIAD_RIAD_CLOSE_LINK"],
alias = "T_CLSLNK_PSTNZ_HIST_SQ",
schema = "RIAD",
) }}
WITH ou_riad_riad_close_link AS (
SELECT
ou_riad_riad_close_link.A_KEY,
ou_riad_riad_close_link.A_WORKFLOW_HISTORY_KEY,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_1 AS CLSLNK_ENTTY_RIAD_ID_1,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_2 AS CLSLNK_ENTTY_RIAD_ID_2,
ou_riad_riad_close_link.CLSNK_PSTN,
ou_riad_riad_close_link.CLSLNK_SNPSHT_DT,
ou_riad_riad_close_link.CLSLNK_CHLD_ENTTY_RIAD_ID,
ou_riad_riad_close_link.CLSLNK_PRNT_ENTTY_RIAD_ID,
ou_riad_riad_close_link.SHARE_OWNERSHIP,
ou_riad_riad_close_link.PATH_ID
FROM
{{ source("ou_riad", "RIAD_CLOSE_LINK") }} ou_riad_riad_close_link
WHERE
ou_riad_riad_close_link.CLSNK_PSTN = 0 and
{{ filter_workflow_history_max_key(
"w_ODS_RIAD_CLOSE_LINKS",
get_main_task_name(model.name)
) }}
UNION ALL
SELECT
ou_riad_riad_close_link.A_KEY,
ou_riad_riad_close_link.A_WORKFLOW_HISTORY_KEY,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_2 AS CLSLNK_ENTTY_RIAD_ID_1,
ou_riad_riad_close_link.CLSLNK_ENTTY_RIAD_ID_1 AS CLSLNK_ENTTY_RIAD_ID_2,
ou_riad_riad_close_link.CLSNK_PSTN,
ou_riad_riad_close_link.CLSLNK_SNPSHT_DT,
ou_riad_riad_close_link.CLSLNK_CHLD_ENTTY_RIAD_ID,
ou_riad_riad_close_link.CLSLNK_PRNT_ENTTY_RIAD_ID,
ou_riad_riad_close_link.SHARE_OWNERSHIP,
ou_riad_riad_close_link.PATH_ID
FROM
{{ source("ou_riad", "RIAD_CLOSE_LINK") }} ou_riad_riad_close_link
WHERE
ou_riad_riad_close_link.CLSNK_PSTN = 0 and
{{ filter_workflow_history_max_key(
"w_ODS_RIAD_CLOSE_LINKS",
get_main_task_name(model.name)
) }}
)
SELECT * FROM ou_riad_riad_close_link
LEFT JOIN
(SELECT
DISTINCT CLSLNK_SNPSHT_DT as CLSLNK_SNPSHT_DT_mopdb
FROM
RIAD.T_CLSLNK_PSTNZ_HIST
ORDER BY
CLSLNK_SNPSHT_DT DESC
FETCH FIRST
30 ROWS ONLY
) clslnk_snpsht_dt
ON clslnk_snpsht_dt.CLSLNK_SNPSHT_DT_mopdb = ou_riad_riad_close_link.CLSLNK_SNPSHT_DT
WHERE
--ISNULL(CLSLNK_SNPSHT_DT_mopdb)
clslnk_snpsht_dt.CLSLNK_SNPSHT_DT_mopdb IS NULL

View File

@@ -0,0 +1,54 @@
{{ config(
materialized = "table",
schema = "RIAD",
alias = "T_ENTTY_C2D_CD_HIST_SQ",
tags = ["m_MOPDB_RIAD_T_ENTTY_C2D_CD_HIST_OU_RIAD_ENTTY_FLTTND_C2D"],
) }}
with load_history as (
{{ filter_workflow_history_max_key("w_ODS_RIAD_ENTTY_FLTTND_C2D",get_main_task_name(model.name))}}
)
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, RIAD AS entty_cd, 'RIAD' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where RIAD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, AVID AS entty_cd, 'AVID' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where AVID is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, BIC AS entty_cd, 'BIC' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where BIC is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, LEI AS entty_cd, 'LEI' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where LEI is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, NCB AS entty_cd, 'NCB' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where NCB is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, UCDB_CD AS entty_cd, 'UCDB_CD' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where UCDB_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, TMS_CD AS entty_cd, 'TMS_CD' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where TMS_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, BLMBRG_CD AS entty_cd, 'BLMBRG_CD' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where BLMBRG_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, C2D_CD AS entty_cd, 'C2D_CD' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where C2D_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, EACODELIST AS entty_cd, 'EACODELIST' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where EACODELIST is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, FVC AS entty_cd, 'FVC' AS typ_entty_cd, entry_date, bsnss_vld_frm, bsnss_vld_t, vrsn_vld_frm, vrsn_vld_t
from
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} where FVC is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)

View File

@@ -0,0 +1,70 @@
{{ config(
materialized = "table",
schema = "RIAD",
alias = "T_ENTTY_C2D_HIST_SQ",
tags = ["m_MOPDB_RIAD_T_ENTTY_C2D_HIST_OU_RIAD_ENTTY_FLTTND_C2D"],
) }}
SELECT
OU_RIAD_ENTTY_FLTTND_C2D.A_KEY,
OU_RIAD_ENTTY_FLTTND_C2D.A_WORKFLOW_HISTORY_KEY,
OU_RIAD_ENTTY_FLTTND_C2D.ENTTY_RIAD_ID,
OU_RIAD_ENTTY_FLTTND_C2D.BSNSS_VLD_FRM,
OU_RIAD_ENTTY_FLTTND_C2D.BSNSS_VLD_T,
OU_RIAD_ENTTY_FLTTND_C2D.CNTRY,
OU_RIAD_ENTTY_FLTTND_C2D.DT_BRTH,
OU_RIAD_ENTTY_FLTTND_C2D.DT_CLS,
OU_RIAD_ENTTY_FLTTND_C2D.ENTTY_RIAD_CD,
OU_RIAD_ENTTY_FLTTND_C2D.NM_ENTTY,
OU_RIAD_ENTTY_FLTTND_C2D.ECNMC_ACTVTY,
OU_RIAD_ENTTY_FLTTND_C2D.INSTTTNL_SCTR,
OU_RIAD_ENTTY_FLTTND_C2D.INSTTTNL_SCTR_DTL,
OU_RIAD_ENTTY_FLTTND_C2D.NMBR_EMPLYS,
OU_RIAD_ENTTY_FLTTND_C2D.ENTRPRS_SZ,
OU_RIAD_ENTTY_FLTTND_C2D.TYP_BNKNG_LCNS,
OU_RIAD_ENTTY_FLTTND_C2D.LGL_FRM,
OU_RIAD_ENTTY_FLTTND_C2D.PSTL_BX_CD,
OU_RIAD_ENTTY_FLTTND_C2D.STRT,
OU_RIAD_ENTTY_FLTTND_C2D.PSTL_CD,
OU_RIAD_ENTTY_FLTTND_C2D.CTY,
OU_RIAD_ENTTY_FLTTND_C2D.IS_INCTV,
OU_RIAD_ENTTY_FLTTND_C2D.IS_UCITS_CMPLNT,
OU_RIAD_ENTTY_FLTTND_C2D.INTRNTNL_ORGNSTN_CD,
OU_RIAD_ENTTY_FLTTND_C2D.BLNC_SHT_TTL_DMSTC,
OU_RIAD_ENTTY_FLTTND_C2D.BLNC_SHT_TTL,
OU_RIAD_ENTTY_FLTTND_C2D.BLNC_SHT_TTL_GRP,
OU_RIAD_ENTTY_FLTTND_C2D.NT_ASSTS_DMSTC,
OU_RIAD_ENTTY_FLTTND_C2D.COLLATERALGROUP,
OU_RIAD_ENTTY_FLTTND_C2D.INSTTTNL_SCTR_CNTRL,
OU_RIAD_ENTTY_FLTTND_C2D.CMMNT,
OU_RIAD_ENTTY_FLTTND_C2D.IS_C2D_RLVNT,
OU_RIAD_ENTTY_FLTTND_C2D.IS_RAR_RLVNT,
OU_RIAD_ENTTY_FLTTND_C2D.ARTCL_123_STTS,
OU_RIAD_ENTTY_FLTTND_C2D.CSPP_ASSSSMNT,
OU_RIAD_ENTTY_FLTTND_C2D.ENTRY_DATE,
OU_RIAD_ENTTY_FLTTND_C2D.RIAD,
OU_RIAD_ENTTY_FLTTND_C2D.AVID,
OU_RIAD_ENTTY_FLTTND_C2D.BIC,
OU_RIAD_ENTTY_FLTTND_C2D.LEI,
OU_RIAD_ENTTY_FLTTND_C2D.NCB,
OU_RIAD_ENTTY_FLTTND_C2D.UCDB_CD,
OU_RIAD_ENTTY_FLTTND_C2D.TMS_CD,
OU_RIAD_ENTTY_FLTTND_C2D.BLMBRG_CD,
OU_RIAD_ENTTY_FLTTND_C2D.C2D_CD,
OU_RIAD_ENTTY_FLTTND_C2D.EACODELIST,
OU_RIAD_ENTTY_FLTTND_C2D.FVC,
OU_RIAD_ENTTY_FLTTND_C2D.BRANCHHEAD_ENTTY_RIAD_ID,
OU_RIAD_ENTTY_FLTTND_C2D.DIRECTHEAD_ENTTY_RIAD_ID,
OU_RIAD_ENTTY_FLTTND_C2D.ULTIMATEHEAD_ENTTY_RIAD_CD,
OU_RIAD_ENTTY_FLTTND_C2D.ULTIMATEHEAD_ENTTY_RIAD_ID,
OU_RIAD_ENTTY_FLTTND_C2D.VRSN_VLD_FRM,
OU_RIAD_ENTTY_FLTTND_C2D.VRSN_VLD_T ,
OU_RIAD_ENTTY_FLTTND_C2D.FNCL_HLDNG_INVSTMNT_FRM ,
OU_RIAD_ENTTY_FLTTND_C2D.IS_CNTRL_GVRNMNT_TRTD_LG,
OU_RIAD_ENTTY_FLTTND_C2D.IS_LCL_GVRNMNT_TRTD_PS ,
OU_RIAD_ENTTY_FLTTND_C2D.IS_CNTRL_GVRNMNT_TRTD_PS
FROM
{{ source("ou_riad", "ENTTY_FLTTND_C2D") }} OU_RIAD_ENTTY_FLTTND_C2D
where
A_WORKFLOW_HISTORY_KEY =
{{ filter_workflow_history_max_key("w_ODS_RIAD_ENTTY_FLTTND_C2D",get_main_task_name(model.name))}}

View File

@@ -0,0 +1,55 @@
{{ config(
materialized = "table",
schema = "RIAD",
alias = "T_ENTTY_ECMS_CD_HIST_SQ",
tags = ["m_MOPDB_RIAD_T_ENTTY_ECMS_CD_HIST_OU_RIAD_ENTTY_FLTTND_ECMS"],
) }}
with load_history as (
{{ filter_workflow_history_max_key("w_ODS_RIAD_ENTTY_FLTTND_ECMS",get_main_task_name(model.name))}}
)
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, RIAD AS entty_cd, 'RIAD' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where RIAD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, AVID AS entty_cd, 'AVID' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where AVID is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, BIC AS entty_cd, 'BIC' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where BIC is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, LEI AS entty_cd, 'LEI' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where LEI is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, NCB AS entty_cd, 'NCB' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where NCB is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, UCDB_CD AS entty_cd, 'UCDB_CD' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where UCDB_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, TMS_CD AS entty_cd, 'TMS_CD' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where TMS_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, BLMBRG_CD AS entty_cd, 'BLMBRG_CD' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where BLMBRG_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, C2D_CD AS entty_cd, 'C2D_CD' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where C2D_CD is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, EACODELIST AS entty_cd, 'EACODELIST' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where EACODELIST is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)
UNION
select /*+ PARALLEL(8) */ A_WORKFLOW_HISTORY_KEY, entty_riad_id, bsnss_vld_frm, bsnss_vld_t, FVC AS entty_cd, 'FVC' AS typ_entty_cd, entry_date, vrsn_vld_frm, vrsn_vld_t
from {{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
where FVC is not null and A_WORKFLOW_HISTORY_KEY = (SELECT A_WORKFLOW_HISTORY_KEY FROM load_history)

View File

@@ -0,0 +1,69 @@
{{ config(
materialized = "table",
schema = "RIAD",
alias = "T_ENTTY_ECMS_HIST_SQ",
tags = ["m_MOPDB_RIAD_T_ENTTY_ECMS_HIST_OU_RIAD_ENTTY_FLTTND_ECMS"],
) }}
SELECT
A_KEY ,
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 ,
NMBR_EMPLYS ,
ENTRPRS_SZ ,
TYP_BNKNG_LCNS ,
LGL_FRM ,
PSTL_BX_CD ,
STRT ,
PSTL_CD ,
CTY ,
IS_INCTV ,
IS_UCITS_CMPLNT ,
INTRNTNL_ORGNSTN_CD ,
BLNC_SHT_TTL_DMSTC ,
BLNC_SHT_TTL ,
NT_ASSTS_DMSTC ,
COLLATERALGROUP ,
INSTTTNL_SCTR_CNTRL ,
CMMNT ,
IS_C2D_RLVNT ,
IS_RAR_RLVNT ,
ARTCL_123_STTS ,
CSPP_ASSSSMNT ,
ENTRY_DATE ,
RIAD ,
AVID ,
BIC ,
LEI ,
NCB ,
UCDB_CD ,
TMS_CD ,
BLMBRG_CD ,
C2D_CD ,
EACODELIST ,
FVC ,
BRANCHHEAD_ENTTY_RIAD_ID ,
DIRECTHEAD_ENTTY_RIAD_ID ,
ULTIMATEHEAD_ENTTY_RIAD_CD ,
ULTIMATEHEAD_ENTTY_RIAD_ID ,
VRSN_VLD_FRM ,
VRSN_VLD_T ,
FNCL_HLDNG_INVSTMNT_FRM ,
IS_CNTRL_GVRNMNT_TRTD_LG ,
IS_LCL_GVRNMNT_TRTD_PS ,
IS_CNTRL_GVRNMNT_TRTD_PS
FROM
{{ source("ou_riad", "ENTTY_FLTTND_ECMS") }}
WHERE
A_WORKFLOW_HISTORY_KEY =
{{ filter_workflow_history_max_key("w_ODS_RIAD_ENTTY_FLTTND_ECMS",get_main_task_name(model.name))}}

View File

@@ -0,0 +1,69 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_RIAD_T_ENTTY_FLTTND_ESSNTL_CURRENT_OU_RIAD_ENTTY_IDNTFRS_FLTTND"],
alias = "T_ENTTY_FLTTND_ESSNTL_CURRENT_SQ",
schema = "RIAD",
) }}
SELECT
MAX(OU_RIAD_ENTTY_IDNTFRS_FLTTND.A_WORKFLOW_HISTORY_KEY) OVER ( PARTITION BY OU_RIAD_ENTTY_IDNTFRS_FLTTND.ENTTY_RIAD_ID) as MAX_A_WORKFLOW_HISTORY_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,
OU_RIAD_ENTTY_IDNTFRS_FLTTND.FNCL_HLDNG_INVSTMNT_FRM,
OU_RIAD_ENTTY_IDNTFRS_FLTTND.IS_CNTRL_GVRNMNT_TRTD_LG ,
OU_RIAD_ENTTY_IDNTFRS_FLTTND.IS_LCL_GVRNMNT_TRTD_PS ,
OU_RIAD_ENTTY_IDNTFRS_FLTTND.IS_CNTRL_GVRNMNT_TRTD_PS
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,25 @@
{{ config(
materialized = "table",
tags = ["m_MOPDB_RIAD_T_ENTTY_RIAD_CD_ALS_OU_RIAD_ENTTY_RIAD_CD_ALS"],
alias = "T_ENTTY_RIAD_CD_ALS_SQ",
schema = "RIAD",
) }}
SELECT
OU_RIAD_ENTTY_RIAD_CD_ALS.A_KEY,
OU_RIAD_ENTTY_RIAD_CD_ALS.A_WORKFLOW_HISTORY_KEY,
OU_RIAD_ENTTY_RIAD_CD_ALS.ENTTY_RIAD_ID,
OU_RIAD_ENTTY_RIAD_CD_ALS.ENTTY_RIAD_CD_ALS,
OU_RIAD_ENTTY_RIAD_CD_ALS.BSNSS_VLD_FRM,
OU_RIAD_ENTTY_RIAD_CD_ALS.BSNSS_VLD_T,
OU_RIAD_ENTTY_RIAD_CD_ALS.VRSN_VLD_FRM,
OU_RIAD_ENTTY_RIAD_CD_ALS.VRSN_VLD_T,
OU_RIAD_ENTTY_RIAD_CD_ALS.ENTRY_DATE
FROM
{{ source("ou_riad", "ENTTY_RIAD_CD_ALS") }} OU_RIAD_ENTTY_RIAD_CD_ALS
where
OU_RIAD_ENTTY_RIAD_CD_ALS.A_WORKFLOW_HISTORY_KEY =
{{ filter_workflow_history_max_key(
"w_ODS_RIAD_ENTTY_FLTTND_C2D",
get_main_task_name(model.name)
) }}

View File

@@ -0,0 +1,69 @@
{{ config(materialized='table',
tags=["m_MOPDB_RQSD_ANNEX_1_1_ALL_ODS_RQSD_OBSERVATIONS"],
alias='ANNEX_1_1_ALL_SQ',
schema='RQSD'
) }}
SELECT
A_WORKFLOW_HISTORY_KEY,
DATACOLLECTIONCODE,
DATACOLLECTIONNAME,
DATACOLLECTIONOWNER,
REPORTINGCYCLENAME,
REPORTINGCYCLESTATUS,
MODULECODE,
MODULENAME,
MODULEVERSIONNUMBER,
REPORTINGENTITYCOLLECTIONUNIQUEID,
ENTITYATTRIBUTEREPORTINGCODE,
REPORTINGENTITYNAME,
REPORTINGENTITYENTITYTYPE,
ENTITYATTRIBUTECOUNTRY,
ENTITYGROUPENTITYNAME,
OBLIGATIONMODULEREFERENCEDATE,
OBLIGATIONMODULEREMITTANCEDATE,
RECEIVEDFILERECEIVEDDATE,
OBLIGATIONMODULEEXPECTED,
RECEIVEDFILEVERSIONNUMBER,
REVALIDATIONVERSIONNUMBER,
REVALIDATIONDATE,
RECEIVEDFILESYSTEMFILENAME,
OBLIGATIONSTATUSSTATUS,
FILESTATUSSETSUBMISSIONSTATUS,
FILESTATUSSETVALIDATIONSTATUS,
FILESTATUSSETEXTERNALVALIDATIONSTATUS,
NUMBEROFERRORS,
NUMBEROFWARNINGS,
DELAYINDAYS,
FAILEDATTEMPTS,
CASE WHEN OBSERVATIONVALUE = 'NULL' THEN NULL ELSE OBSERVATIONVALUE END AS OBSERVATIONVALUE,
CASE WHEN OBSERVATIONTEXTVALUE = 'NULL' THEN NULL ELSE OBSERVATIONTEXTVALUE END AS OBSERVATIONTEXTVALUE,
CASE WHEN OBSERVATIONDATEVALUE = 'NULL' THEN NULL ELSE OBSERVATIONDATEVALUE END AS OBSERVATIONDATEVALUE,
DATAPOINTSETDATAPOINTIDENTIFIER,
DATAPOINTSETLABEL,
OBSRVDESCDATATYPE,
ORDINATECODE,
ORDINATEPOSITION,
TABLENAME,
ISSTOCK,
SCALE,
CURRENCY,
NUMBERTYPE,
ISMANDATORY,
DECIMALPLACES,
SERIESKEY,
TEC_SOURCE_SYSTEM,
TEC_DATASET,
TEC_SURROGATE_KEY,
TEC_CRC,
TEC_INGESTION_DATE,
TEC_VERSION_ID
FROM
{{ source("ou_rqsd", "RQSD_OBSERVATIONS") }}
WHERE
MODULECODE = 'SCOPA'
AND TABLENAME = 'cis'
AND A_WORKFLOW_HISTORY_KEY IN {{ filter_workflow_history_key(
"w_ODS_RQSD_PROCESS",
get_main_task_name(model.name)
) }}

Some files were not shown because too many files have changed in this diff Show More