Pipelines - Ventas Netas
Objetivo
Documentar el flujo de ejecución del proceso Ventas Netas, incluyendo notebook principal, parámetros, vistas temporales, estrategia de carga y configuración asociada para la generación de la tabla Silver as4_netsales.
Alcance
Dentro del alcance
- Notebook principal del proceso.
- Parámetros requeridos para la ejecución.
- Flujo paso a paso del pipeline.
- Vistas temporales generadas durante el procesamiento.
- Salida principal del proceso.
- Estrategia de carga sobre la tabla final.
- Referencia a la configuración YAML del proceso.
Fuera del alcance
- Diseño funcional del proceso.
- Arquitectura técnica del proceso.
- Tabla completa de dependencias.
- Fuentes de datos detalladas.
- Reglas de negocio.
- Runbook operativo.
- Validaciones no documentadas.
Contenido principal
Descripción general
Este documento describe el flujo de ejecución del proceso Ventas Netas, desde la limpieza de caché, carga de framework y definición de parámetros, hasta la creación de vistas temporales, depuración, agregación y carga final de la tabla Silver as4_netsales.
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_dctvtasn_base, vw_dctvtasn_enriched, vw_dctvtasn_error, vw_dctvtasn_final_agg y vw_dctvtasn_silver.
Notebook Principal
El proceso se ejecuja mediante el notebook principal:
NB_Silver_NetSales.dbc.
Parámetros de Ejecución
El notebook utiliza los siguientes parámetros:
w_StartDatew_EndDatew_catalogw_schema originw_schema destiny
El procesamiento se limita al rango definido por los widgets w_StartDate y w_EndDate
Flujo del Proceso Paso a Paso
| Paso | Objeto / acción | Detalle |
|---|---|---|
| 1 | CLEAR CACHE | Limpia caché antes de iniciar el proceso. |
| 2 | NB_FRAMEWORK_LIBRARIES | Carga librerías/framework compartido desde /Workspace/Shared/Alpura_DEV/00_Framework/NB_FRAMEWORK_LIBRARIES. |
| 3 | Widgets | Define w_StartDate, w_EndDate, w_catalog, w_schema_origin y w_schema_destiny. |
| 4 | Variables y run_id | Asigna variables del proceso y genera v_run_id con uuid4. |
| 5 | vw_dctvtasn_base | Lee as4_dctvtasn y aplica filtro FECPED entre w_StartDate y w_EndDate. |
| 6 | vw_dctvtasn_enriched | Realiza enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta. |
| 7 | vw_dctvtasn_final | Recalcula ID_PLADIS con base en reglas por tipo de depósito. |
| 8 | vw_dctvtasn_stgDepuraFinal / vw_dctvtasn_pass / vw_dctvtasn_error | Estandariza campos y separa registros con errores. |
| 9 | vw_dctvtasn_query3 | Homologa CVE_DEP contra snw_deposit. |
| 10 | vw_dctvtasn_final_agg | Agrega métricas de cantidad, importe y KLT. |
| 11 | vw_dctvtasn_silver | Agrega hash de fila, run_id y timestamp de carga. |
| 12 | as4_netsales | Crea tabla si no existe, elimina el rango de fechas y re-inserta los datos procesados. |
Vistas Temporales del Pipeline
vw_dctvtasn_base: Base de ventas netas desdeas4_dctvtasncon casteos, limpieza y filtro de fecha.vw_dctvtasn_enriched: Enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta.vw_dctvtasn_final: Ajuste deID_PLADISsegún tipo de depósito.vw_dctvtasn_stgDepuraFinal: Estandarización de campos y métricas numéricas para depuración.vw_dctvtasn_pass: Vista de registros preparados para validación.
-vw_dctvtasn_error: Registros conCVE_CTEnulo,CVE_PROnulo oID_PLADIS <= 0.vw_dctvtasn_pass1: Registros válidos posteriores a la depuración.vw_dctvtasn_query3: Homologación final de depósito contrasnw_deposit.vw_dctvtasn_final_agg: Agregación de cantidades, importes y KLT por llaves de negocio.vw_dctvtasn_silver: Vista final con_row_hash,_run_idy_load_ts.
Salida Principal
La salida principal del pipeline es:
{v_catalog}.{v_schema_destiny}.as4_netsales
Estrategia de Carga
La carga final aplica una estrategia delete+ insert por rango de CVE_FECHA.
load_strategy:
type: delete_insert_by_date_range
delete_condition: CVE_FECHA between w_StartDate and w_EndDate
target: '{v_catalog}.{v_schema_destiny}.as4_netsales'
Configuración del Pipeline
La metadata estructurada se encuentra definida en el YAML del proceso:
process_name: NB_Silver_NetSales
layer: Silver
documentation_level: FULL
main_notebook: NB_Silver_NetSales.dbc
YAML
process_name: NB_Silver_NetSales
layer: Silver
documentation_level: FULL
main_notebook: NB_Silver_NetSales.dbc
sharepoint:
file_name: Documentacion_NB_Silver_NetSales_v1.docx
suggested_path: /DataPlatform/Databricks/Silver/NB_Silver_NetSales/
parameters:
- w_StartDate
- w_EndDate
- w_catalog
- w_schema origin
- w_schema destiny
sources:
- name: as4_dctvtasn
object: '{v_catalog}.{v_schema_origin}.as4_dctvtasn'
description: Fuente transaccional base de ventas netas, filtrada por FECPED entre w_StartDate y w_EndDate.
- name: snw_dim_productos
object: '{v_catalog}.{v_schema_origin}.snw_dim_productos'
description: Catálogo/productos usado para obtener CVE_PRO; se toma el registro más reciente por ID_PRO
usando FECHA_MODIFICA y CVE_PRO.
- name: snw_dim_clientes
object: '{v_catalog}.{v_schema_origin}.snw_dim_clientes'
description: Dimensión de clientes usada por NUMCTE + NUMSUC para resolver CVE_CTE y CVE_CANALSOP.
- name: snw_deposit
object: '{v_catalog}.{v_schema_origin}.snw_deposit'
description: Catálogo/depósito usado para resolver ID_DEPOSITO, ID_TIPDEP, ID_PLADIS y CVE_DEPOSITO.
- name: oon_dim_tipo_credito
object: '{v_catalog}.{v_schema_origin}.oon_dim_tipo_credito'
description: Dimensión de tipo de crédito usada para resolver CVE_TIPO_CREDITO desde TIPVTA.
- name: snw_dim_tipo_venta
object: '{v_catalog}.{v_schema_origin}.snw_dim_tipo_venta'
description: Dimensión de tipo de venta usada para resolver CVE_TIPVTA desde TIPVTA.
documented_dimensions:
- name: Dim_Date
dbc: NB_Silver_Dim_Date.dbc
usage: Dimensión documentada pero no referenciada directamente en el notebook NetSales.
- name: Dim_Client
dbc: NB_Silver_DS_Client.dbc
usage: Relacionada con snw_dim_clientes, consumida como tabla migrada/catálogo en el proceso.
- name: Dim_RTM
dbc: NB_Silver_DS_RTM.dbc
usage: Dimensión entregada; no se identifica JOIN directo desde NetSales.
- name: Dim_Depositos
dbc: Dim_depositos.dbc
usage: Relacionada con snw_deposit, consumida en el proceso.
- name: Dim_Productos
dbc: DIM_PRODUCTOS_PART_1.dbc + DIM_PRODUCTOS_PARTE_2.dbc
usage: Relacionada con snw_dim_productos, consumida en el proceso.
migrated_tables_consumed:
- name: as4_dctvtasn
description: Tabla transaccional AS400 migrada en Bronze.
- name: snw_dim_productos
description: Tabla de productos consumida; el notebook NetSales no la crea.
- name: snw_dim_clientes
description: Tabla de clientes consumida; el notebook NetSales no la crea.
- name: snw_deposit
description: Tabla de depósitos consumida; el notebook NetSales no la crea.
- name: oon_dim_tipo_credito
description: Tabla de tipo de crédito consumida; el notebook NetSales no la crea.
- name: snw_dim_tipo_venta
description: Tabla de tipo de venta consumida; el notebook NetSales no la crea.
staging_objects:
- name: vw_dctvtasn_base
description: Base de ventas netas desde as4_dctvtasn con casteos, limpieza y filtro de fecha.
- name: vw_dctvtasn_enriched
description: Enriquecimiento con productos, clientes, depósitos, tipo de crédito y tipo de venta.
- name: vw_dctvtasn_final
description: Ajuste de ID_PLADIS según tipo de depósito.
- name: vw_dctvtasn_stgDepuraFinal
description: Estandarización de campos y métricas numéricas para depuración.
- name: vw_dctvtasn_pass
description: Vista de registros preparados para validación.
- name: vw_dctvtasn_error
description: Registros con CVE_CTE nulo, CVE_PRO nulo o ID_PLADIS <= 0.
- name: vw_dctvtasn_pass1
description: Registros válidos posteriores a la depuración.
- name: vw_dctvtasn_query3
description: Homologación final de depósito contra snw_deposit.
- name: vw_dctvtasn_final_agg
description: Agregación de cantidades, importes y KLT por llaves de negocio.
- name: vw_dctvtasn_silver
description: Vista final con _row_hash, _run_id y _load_ts.
outputs:
- name: as4_netsales
object: '{v_catalog}.{v_schema_destiny}.as4_netsales'
description: Tabla Delta Silver de ventas netas.
business_rules:
- El rango de procesamiento se controla por los widgets w_StartDate y w_EndDate, comparados contra FECPED/CVE_FECHA.
- CVE_PART se deriva de los primeros 6 caracteres de FECPED.
- La fuente as4_dctvtasn se transforma con casteos explícitos a DECIMAL, INT, STRING y DATE.
- 'Producto: se toma el registro más reciente de snw_dim_productos por ID_PRO usando ROW_NUMBER ordenado
por FECHA_MODIFICA y CVE_PRO descendente.'
- 'Cliente: se resuelve por NUMCTE + NUMSUC contra snw_dim_clientes.'
- Tipo de crédito y tipo de venta se resuelven por TIPVTA normalizado con UPPER(TRIM()).
- 'ID_PLADIS se recalcula con base en ID_TIPDEP de snw_deposit: si ID_TIPDEP in (1,2) usa ID_PLADIS original;
si ID_TIPDEP = 3 usa ID_PLADIS del depósito; si no, usa CVE_DEP.'
- Se separan registros inválidos en vw_dctvtasn_error cuando CVE_CTE es nulo, CVE_PRO es nulo o ID_PLADIS
<= 0.
- Se agregan cantidades, importes y KLT por las llaves definidas en vw_dctvtasn_final_agg.
- Se genera _row_hash con SHA2 sobre campos clave, además de _run_id y _load_ts.
- La carga final aplica delete + insert por CVE_FECHA en el rango de ejecución.
load_strategy:
type: delete_insert_by_date_range
delete_condition: CVE_FECHA between w_StartDate and w_EndDate
target: '{v_catalog}.{v_schema_destiny}.as4_netsales'
observations:
- Workflow asociado no identificado en DBC.
- Frecuencia no identificada en DBC.
- vw_dctvtasn_error no se persiste como tabla dentro del DBC.
- CVE_CTE se crea como decimal en la tabla y se castea como string en el INSERT; validar en ejecución.
Celda para Databricks
La celda para Databricks documenta:
- Objetivo del proceso.
- Inputs.
- Outputs.
- Flujo de ejecución.
- Dependencias.
- Placeholder de documentación:
{sharepoint_link}
Dependencias
Las dependencias técnicas del proceso se documentan en Diseño Técnico - Ventas Netas
Consideraciones de Ejecución
- El workflow, frecuencia y SLA no están definidos en el DBC.
- La carga final aplica una estrategia
delete+insertpor rango deCVE_FECHA. vw_dctvtasn_errorno se persiste como tabla dentro del DBC.- Se debe revisar la compatibiidad de tipo en
CVE_CTE, ya que la tabla lo define como decimal y elINSERTlo castea como string.
Artefactos relacionados
| Artefacto | Descripción |
|---|---|
| Diseño Funcional - Ventas Netas | Describe el objetivo funcional, alcance y flujo funcional del proceso |
| Diseño Técnico - Ventas Netas | Documenta la arquitectura, modelo de datos y dependencias técnicas. |
| Fuentes - Ventas Netas | Documenta las fuentes de datos utilizadas por el proceso. |
| Operación - Ventas Netas | Documenta consideraciones operativas, Runbook L1 y soporte. |
| Reglas de Negocio - Ventas Netas | Contiene las reglas aplicadas durante el procesamiento. |
| Tablas - Ventas Netas | Documenta las tablas origen, dimensiones, campos, ralaciones y tabla final. |
| Validaciones - Ventas Netas | Describe validaciones identificadas. |
Próximos pasos
- Identificar workflow asociado al proceso.
- Definir frecuencia de ejecución.
- Definir SLA operativo
- Confirmar si
vw_dctvtasn_errordebe persistir como tabla de errores.