Pipelines - RTM
Objetivo
Documentar los elementos asociados al pipeline del proceso RTM - Visita Clientes, incluyendo el notebook principl, la salida generada, la configuración estructurada disponible y los elementos pendientes de definición para su orquestación.
Alcance
Dentro del alcance
- Identificación del notebook principal del proceso.
- Identificación de la salida principal generada por el pipeline.
- Referencia a la configuración estructurada del proceso.
- Identificación de elementos de orquestación no definidos.
Fuera del alcance
- Arquitectura técnica del proceso.
- Tabla completa de dependencias.
- Reglas de negocio.
- Fuentes de datos.
- Runbook operativo.
- Validaciones no documentadas.
Contenido principal
Descripción general
Este documento describe el flujo de ejecución del proceso RTM - Visita Clientes, desde la limpieza de caché y definición de parámetros hasta la construcción de vistas temporales, clasificación de registros, enriquecimiento final y escritura de la tabla Silver as4_rtm_visita_clientes.
El pipeline utiliza los parámetros w_StartDate, w_EndDate, w_catalog, w_schema origin y w_schema destiny, y procesa la información mediante vistas temporales como vw_rtm_ods_hhd_adas, vw_rtm_sp_base, vw_rtm_ods_hhd_adas_uni, vw_rtm_ods_hhd_adas_dupl y vw_rtm_final_stage.
Notebook principal
El notebook principal documentado para el proceso es:
NB_Silver_DS_RTM.dbc
El proceso opera por rango de fechas mediante los parámetros:
w_StartDatew_EndDate
Ambos parámetros utilizan formato yyyyMMdd
Parámetros de Ejecución
El notebook recibe los siguientes widgets:
w_StartDatew_EndDatew_catalogw_schema originw_schema destiny
Flujo del Proceso Paso a Paso
El flujo funcional identificado para el proceso es siguiente:
- Limpia caché con
CLEAR CACHE. - Recibe widgets
w_StartDate,w_EndDate,w_catalog,w_schema originyw_schema destiny. - Valida obligatoriedad y longitud de fechas en formato
yyyyMMdd. - Define objetos fuente, dimensiones, tabla final y variable de vista.
- Crea vistas temporales base:
vw_rtm_hhdpladvw_rtm_adasirutvw_rtm_mcterutvw_rtm_admotivvw_rtm_hist_clientesvw_rtm_mctecomp.
- Deduplica clientes, depositos y canal en vistas temporales dimensionales.
- Construye
vw_rtm_ods_hhd_adascon joins entre visitas, rutas, motivos, historico, geolocalizacion, cliente y deposito. - Normaliza campos en
vw_rtm_sp_base, incluyendo coordenadas,CLIENTE_SUC,TS_INIyTS_FIN. - Ejecuta primera y segunda pasada de clasificacion
UNI/DUPL. - Consolida registros unicos en
vw_rtm_ods_hhd_adas_uniy separa duplicados envw_rtm_ods_hhd_adas_dupl. - Enriquece con canal en
vw_rtm_final_stage, calcula coordenadas normalizadas, hash y metadata tecnica. - Crea la tabla final si no existe y escribe en Delta con
overwriteyreplaceWherepor rango deFECHA.
Salida Principal
La salida principal del pipeline es una tabla Delta en la capa Silver:
as4_rtm_visita_clientes
Vista asociada
También se define una variable para la vista:
vw_as4_rtm_visita_clientes
No se identifica una sentencia efectiva CREATE VIEW.
Configuración del Pipeline
La metadata estructurada del proceso se encuentra en el siguiente código YAML:
process:
name: NB_Silver_DS_RTM
business_name: RTM - Visita Clientes
layer: Silver
documentation_level: FULL
catalog_parameter: w_catalog
source_schema_parameter: w_schema origin
target_schema_parameter: w_schema destiny
date_parameters:
- w_StartDate
- w_EndDate
sharepoint:
file_name: Documentacion_NB_Silver_DS_RTM_v1.docx
suggested_path: /DataPlatform/Databricks/Silver/NB_Silver_DS_RTM/
documentation_link_placeholder: "{sharepoint_link}"
inputs:
sources:
- name: as4_hhdplad
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_hhdplad"
role: base_visits
filters:
- "FECALT >= w_StartDate"
- "FECALT <= w_EndDate"
- name: as4_adasirut
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_adasirut"
role: route_customer_assignment
filters:
- "FECINI >= w_StartDate"
- "FECINI <= w_EndDate"
- name: as4_mcterut
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_mcterut"
role: route_frequency_and_sequence
- name: as4_admotiv
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_admotiv"
role: no_sale_or_failure_reasons
filters:
- "FECLIQ >= w_StartDate"
- "FECLIQ <= w_EndDate"
- name: as4_mctecomp
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_mctecomp"
role: customer_geolocation
- name: as4_cat_historico_ctes
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_cat_historico_ctes"
role: historical_customer_coordinates
filters:
- "FECHACARGA >= w_StartDate"
- "FECHACARGA <= w_EndDate"
- "ESTATUSCTE NOT IN ('B','S')"
dimensions:
documented_with_dbc:
- notebook: Dim_depositos.dbc
consumed_table_in_rtm: snw_dim_depositos
documented_output_observed: cat_master_alpura.sch_bronze_layer.snw_deposit
join_key: ID_DEPOSITO
note: "The RTM notebook consumes snw_dim_depositos in the configured destiny schema; the dimension DBC writes snw_deposit in bronze. Naming alignment should be validated operationally."
- notebook: NB_Silver_DS_Channel.dbc
consumed_table_in_rtm: snw_dim_canal
join_key: CVE_CANAL
- notebook: NB_Silver_DS_Client.dbc
consumed_table_in_rtm: snw_dim_clientes
join_keys:
- ID_CTE / NUMCTE
- ID_SUC / NUMSUC
consumed_in_process:
- name: snw_dim_clientes
role: customer_reason_social_and_channel
- name: snw_dim_depositos
role: deposit_description
- name: snw_dim_canal
role: channel_description
temporary_views:
- vw_rtm_hhdplad
- vw_rtm_adasirut
- vw_rtm_mcterut
- vw_rtm_admotiv
- vw_rtm_hist_clientes
- vw_rtm_mctecomp
- vw_rtm_dim_clientes
- vw_rtm_dim_depositos
- vw_rtm_dim_canal
- vw_rtm_ods_hhd_adas
- vw_rtm_sp_base
- vw_rtm_sp_pass_1
- vw_rtm_sp_pass_1_class
- vw_rtm_sp_pass_2
- vw_rtm_sp_pass_2_class
- vw_rtm_ods_hhd_adas_uni
- vw_rtm_ods_hhd_adas_dupl
- vw_rtm_final_stage
outputs:
tables:
- name: as4_rtm_visita_clientes
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.as4_rtm_visita_clientes"
format: delta
write_mode: overwrite
partition_replace_condition: "FECHA >= w_StartDate AND FECHA <= w_EndDate"
metadata_columns:
- _row_hash
- _run_id
- _load_ts
- _start_date
- _end_date
views:
- name: vw_as4_rtm_visita_clientes
resolved_table_pattern: "{w_catalog}.{w_schema destiny}.vw_as4_rtm_visita_clientes"
status: variable_defined_only
note: "No CREATE VIEW statement was identified in the provided DBC."
business_rules:
- name: date_window_filtering
description: "RTM transactional sources are filtered using StartDate and EndDate in yyyyMMdd format."
- name: deposit_deduplication
description: "Deposit dimension is deduplicated by ID_DEPOSITO using MAX(DEPOSITO)."
- name: client_deduplication
description: "Client dimension is grouped by ID_CTE and ID_SUC, retaining MAX(RAZONC) and MAX(CVE_CANALSOP)."
- name: channel_deduplication
description: "Channel dimension is grouped by CVE_CANAL, retaining MAX(ID_CANAL) and MAX(CANALSOP)."
- name: first_unique_duplicate_classification
description: "Records are marked UNI when customer/sucursal changes, previous row is null, or when same customer has a later TS_INI and non-consecutive IDVISI; otherwise DUPL."
- name: second_unique_duplicate_classification
description: "Records with CLIENTE_SUC = '0|0' are marked UNI only when previous CLIENTE_SUC is not '0|0'; otherwise DUPL."
- name: coordinate_normalization
description: "Latitude/longitude fields are cleaned and scaled to DECIMAL(18,6)."
- name: row_hash
description: "An MD5 hash is generated from key business and audit attributes to support traceability."
runbook:
workflow_associated: "Not identified in DBC"
frequency: "Not identified in DBC"
manual_execution: "Run notebook NB_Silver_DS_RTM with valid w_StartDate, w_EndDate, w_catalog, w_schema origin and w_schema destiny parameters."
failure_detection:
- invalid_or_missing_date_parameters
- errors_in_source_or_dimension_tables
- nulls_or_unexpected_values_in_final_stage
- write_failure_on_as4_rtm_visita_clientes
basic_actions:
- validate_parameters
- validate_source_counts_by_date_range
- validate_temporary_view_vw_rtm_final_stage
- validate_final_table_counts_for_replaced_date_range
escalation:
- Data Engineer L2
- Data Architect
known_gaps:
- "Workflow, frequency and SLA are not present in the DBC."
- "The Gold view variable is defined, but no CREATE VIEW statement was found in the DBC content."
- "Dimension naming should be validated because the deposit DBC output observed is snw_deposit while RTM consumes snw_dim_depositos."
Dependencias
Las dependencias técnicas del proceso se documentan en Diseño Técnico - RTM.
Consideraciones
- El workflow asociado no se encuentra identificado en DBC.
- La frecuencia no se encuentra definido en DBC.
- El SLA no se encuentra definido en DBC.
Artefactos relacionados
| Artefacto | Descripción |
|---|---|
| Diseño Funcional - RTM | Describe el objetivo funcional, alcance y flujo funcional del proceso |
| Diseño Técnico - RTM | Documenta la arquitectura, componentes, modelo de datos y dependencias técnicas. |
| Fuentes - RTM | Describe las fuentes de información consumidos por el proceso. |
| Operación - RTM | Documenta consideraciones operativas, Runbook L1 y soporte. |
| Reglas de Negocio - RTM | Contiene las reglas aplicadas durante el procesamiento. |
| Tablas - RTM | Documenta las tablas origen, dimensiones y tabla final. |
| Validaciones - RTM | Describe validaciones identificadas. |
Próximos pasos
- Identificar el workflow asociado al proceso.
- Definir la frecuencia de ejecución
- Definir el SLA operativo.
- Confirmar si existe una sentencia efectiva
CREATE VIEWparavw_as4_rtm_visita_clientes.