Skip to main content

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_StartDate
  • w_EndDate

Ambos parámetros utilizan formato yyyyMMdd

Parámetros de Ejecución

El notebook recibe los siguientes widgets:

  • w_StartDate
  • w_EndDate
  • w_catalog
  • w_schema origin
  • w_schema destiny

Flujo del Proceso Paso a Paso

El flujo funcional identificado para el proceso es siguiente:

  1. Limpia caché con CLEAR CACHE.
  2. Recibe widgets w_StartDate, w_EndDate, w_catalog, w_schema origin y w_schema destiny.
  3. Valida obligatoriedad y longitud de fechas en formato yyyyMMdd.
  4. Define objetos fuente, dimensiones, tabla final y variable de vista.
  5. Crea vistas temporales base:
  • vw_rtm_hhdplad
  • vw_rtm_adasirut
  • vw_rtm_mcterut
  • vw_rtm_admotiv
  • vw_rtm_hist_clientes
  • vw_rtm_mctecomp.
  1. Deduplica clientes, depositos y canal en vistas temporales dimensionales.
  2. Construye vw_rtm_ods_hhd_adas con joins entre visitas, rutas, motivos, historico, geolocalizacion, cliente y deposito.
  3. Normaliza campos en vw_rtm_sp_base, incluyendo coordenadas, CLIENTE_SUC, TS_INI y TS_FIN.
  4. Ejecuta primera y segunda pasada de clasificacion UNI/DUPL.
  5. Consolida registros unicos en vw_rtm_ods_hhd_adas_uni y separa duplicados en vw_rtm_ods_hhd_adas_dupl.
  6. Enriquece con canal en vw_rtm_final_stage, calcula coordenadas normalizadas, hash y metadata tecnica.
  7. Crea la tabla final si no existe y escribe en Delta con overwrite y replaceWhere por rango de FECHA.

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

ArtefactoDescripción
Diseño Funcional - RTMDescribe el objetivo funcional, alcance y flujo funcional del proceso
Diseño Técnico - RTMDocumenta la arquitectura, componentes, modelo de datos y dependencias técnicas.
Fuentes - RTMDescribe las fuentes de información consumidos por el proceso.
Operación - RTMDocumenta consideraciones operativas, Runbook L1 y soporte.
Reglas de Negocio - RTMContiene las reglas aplicadas durante el procesamiento.
Tablas - RTMDocumenta las tablas origen, dimensiones y tabla final.
Validaciones - RTMDescribe 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 VIEW para vw_as4_rtm_visita_clientes.