Skip to main content

Pipelines - DS Client

Objetivo

Documentar el flujo de ejecución del proceso DS Client, incluyendo notebook principal, parámetros, staging temporal, secuencia de procesamiento, persistencia del resultado, celda para Databricks y YAML del proceso.

Alcance

Dentro del alcance

  • Notebook principal del proceso.
  • Parámetros identificados mediante widgets.
  • Flujo paso a paso.
  • Staging temporal identificado.
  • Aplicación de joins.
  • Separación de registros nuevos.
  • Separación de registros modificados.
  • Persistencia del resultado mediante saveAsTable.
  • Output Delta.
  • Celda para Databricks.
  • YAML del proceso.

Fuera del alcance

  • Diseño funcional del proceso.
  • Arquitectura técnica completa.
  • Modelo de datos completo.
  • Detalle de relaciones y cardinalidad.
  • Reglas de negocio fuera de las identificadas.
  • Runbook operativo.
  • Validaciones no especificadas.

Contenido principal

Descripción general

Este documento describe el pipeline del proceso DS Client, ejecutado mediante el notebook NB_Silver_DS_Client.

El flujo identificado contempla limpieza de caché, lectura de parámetros mediante widgets, lectura de fuentes y tablas de referencia, creación de los staging temporales TEMP_CLI y TEMP_CLIENTES, aplicación de joins, separación de registros nuevos y modificados, y persistencia del resultado en cat_master_alpura.sch_bronze_layer.snw_dim_clientes mediante saveAsTable.

Notebook principal

El proceso se ejecuta mediante el notebook:

  • NB_Silver_DS_Client

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

PasoObjeto / acciónDetalle
1Limpieza de cachéLimpieza de cache Databricks.
2WidgetsLectura de parámetros mediante widgets: w_StartDate, w_EndDate, w_catalog, w_schema destiny, w_schema origin.
3Lectura de fuentesLectura de fuentes/tablas de referencia identificadas en FROM/JOIN.
4Staging temporalCreación de staging o vistas temporales: TEMP_CLI, TEMP_CLIENTES.
5JoinsAplicación de joins para comparar, homologar o enriquecer la dimensión.
6Registros nuevosSeparación de registros nuevos para inserción.
7Registros modificadosSeparación de registros modificados para actualización.
8saveAsTablePersistencia del resultado en Delta mediante saveAsTable.

Staging Temporal

Staging
TEMP_CLI
TEMP_CLIENTES

Salida Principal

Objeto
cat_master_alpura.sch_bronze_layer.snw_dim_clientes

Celda para Databricks

# MAGIC %md
# MAGIC ## Resumen técnico del proceso: NB_Silver_DS_Client
# MAGIC
# MAGIC **Objetivo:** Construir y/o actualizar la dimensión DS Client en Databricks, tomando como base únicamente la lógica definida en el DBC y persistiendo el resultado en cat_master_alpura.sch_bronze_layer.snw_dim_clientes.
# MAGIC
# MAGIC **Inputs:** cat_master_alpura.sch_bronze_backup.snw_dim_clientes, cat_master_alpura.sch_bronze_layer.snw_dim_canal, cat_master_alpura.sch_bronze_layer.snw_dim_clientes, cat_master_alpura.sch_bronze_layer.snw_dim_ejecutivos_vtas, cat_master_alpura.sch_bronze_layer.snw_dim_estado, cat_master_alpura.sch_bronze_layer.snw_dim_estatus, cat_master_alpura.sch_bronze_layer.snw_dim_gpo_comercial, cat_master_alpura.sch_bronze_layer.snw_dim_grupo_cliente, cat_master_alpura.sch_bronze_layer.snw_dim_grupo_sop, cat_master_alpura.sch_bronze_layer.snw_dim_subcanal, cat_master_alpura.sch_bronze_layer.snw_dim_subgpo_comercial, cat_master_alpura.sch_bronze_layer.snw_dim_tipo_venta, {v_catalog}.{v_schema_origin}.as4_mctenc, {v_catalog}.{v_schema_origin}.as4_mctencj0
# MAGIC
# MAGIC **Outputs:** cat_master_alpura.sch_bronze_layer.snw_dim_clientes
# MAGIC
# MAGIC **Flujo:** Limpieza de cache Databricks. | Lectura de parámetros mediante widgets: w_EndDate, w_StartDate, w_catalog, w_schema destiny, w_schema origin. | Lectura de fuentes/tablas de referencia identificadas en FROM/JOIN. | Creación de staging o vistas temporales: TEMP_CLI, TEMP_CLIENTES. | Aplicación de joins para comparar, homologar o enriquecer la dimensión. | Separación de registros nuevos para inserción.
# MAGIC
# MAGIC **Dependencias:** /Workspace/Shared/Alpura_DEV/00_Framework/NB_FRAMEWORK_LIBRARIES, cat_master_alpura.sch_bronze_backup.snw_dim_clientes, cat_master_alpura.sch_bronze_layer.snw_dim_canal, cat_master_alpura.sch_bronze_layer.snw_dim_clientes, cat_master_alpura.sch_bronze_layer.snw_dim_ejecutivos_vtas, cat_master_alpura.sch_bronze_layer.snw_dim_estado, cat_master_alpura.sch_bronze_layer.snw_dim_estatus, cat_master_alpura.sch_bronze_layer.snw_dim_gpo_comercial, cat_master_alpura.sch_bronze_layer.snw_dim_grupo_cliente, cat_master_alpura.sch_bronze_layer.snw_dim_grupo_sop, cat_master_alpura.sch_bronze_layer.snw_dim_subcanal, cat_master_alpura.sch_bronze_layer.snw_dim_subgpo_comercial, cat_master_alpura.sch_bronze_layer.snw_dim_tipo_venta, {v_catalog}.{v_schema_origin}.as4_mctenc, {v_catalog}.{v_schema_origin}.as4_mctencj0
# MAGIC
# MAGIC **Consideraciones:** Validar valores de widgets antes de ejecutar: w_EndDate, w_StartDate, w_catalog, w_schema destiny, w_schema origin.
# MAGIC
# MAGIC **Documentación:** {sharepoint_link}

YAML del Proceso

process_name: NB_Silver_DS_Client
notebook_name: NB_Silver_DS_Client
layer: Silver
documentation_level: DIM
sources:
- cat_master_alpura.sch_bronze_backup.snw_dim_clientes
- cat_master_alpura.sch_bronze_layer.snw_dim_canal
- cat_master_alpura.sch_bronze_layer.snw_dim_clientes
- cat_master_alpura.sch_bronze_layer.snw_dim_ejecutivos_vtas
- cat_master_alpura.sch_bronze_layer.snw_dim_estado
- cat_master_alpura.sch_bronze_layer.snw_dim_estatus
- cat_master_alpura.sch_bronze_layer.snw_dim_gpo_comercial
- cat_master_alpura.sch_bronze_layer.snw_dim_grupo_cliente
- cat_master_alpura.sch_bronze_layer.snw_dim_grupo_sop
- cat_master_alpura.sch_bronze_layer.snw_dim_subcanal
- cat_master_alpura.sch_bronze_layer.snw_dim_subgpo_comercial
- cat_master_alpura.sch_bronze_layer.snw_dim_tipo_venta
- '{v_catalog}.{v_schema_origin}.as4_mctenc'
- '{v_catalog}.{v_schema_origin}.as4_mctencj0'
dimensions:
- cat_master_alpura.sch_bronze_backup.snw_dim_clientes
- cat_master_alpura.sch_bronze_layer.snw_dim_canal
- cat_master_alpura.sch_bronze_layer.snw_dim_ejecutivos_vtas
- cat_master_alpura.sch_bronze_layer.snw_dim_estado
- cat_master_alpura.sch_bronze_layer.snw_dim_estatus
- cat_master_alpura.sch_bronze_layer.snw_dim_gpo_comercial
- cat_master_alpura.sch_bronze_layer.snw_dim_grupo_cliente
- cat_master_alpura.sch_bronze_layer.snw_dim_grupo_sop
- cat_master_alpura.sch_bronze_layer.snw_dim_subcanal
- cat_master_alpura.sch_bronze_layer.snw_dim_subgpo_comercial
- cat_master_alpura.sch_bronze_layer.snw_dim_tipo_venta
migrated_tables:
- '{v_catalog}.{v_schema_origin}.as4_mctenc'
- '{v_catalog}.{v_schema_origin}.as4_mctencj0'
outputs:
- cat_master_alpura.sch_bronze_layer.snw_dim_clientes
staging_tables:
- TEMP_CLI
- TEMP_CLIENTES
keys_identified:
- CVE_CANAL
- CVE_SUBCANAL
- CVE_CTE
- ID_CTE
- CVE_ESTADO
- CVE_GPOCOM
- ID_PLADIS
- CVE_ZONA
business_rules:
- Se compara la dimensión existente contra el dataset fuente mediante join full para identificar inserts y updates.
- Se identifican registros nuevos cuando la llave de la dimensión destino no existe.
- Se identifican cambios cuando campos descriptivos o de estatus difieren entre destino y fuente.
- Se genera nueva llave surrogate incrementando el máximo CVE existente con row_number.
- Se conserva o asigna FECHA_CREACION para registros nuevos o existentes según la lógica del notebook.
- Se actualiza FECHA_MODIFICA con la fecha actual en formato yyyyMMdd cuando hay cambios.
- Se integran registros actualizados, insertados y/o nulos mediante unión de DataFrames.
- Se aplican limpiezas TRIM sobre campos de negocio para homologar cadenas.
- Se aplican valores por defecto mediante COALESCE/coalesce para evitar nulos en campos seleccionados.
sharepoint:
file_name: Documentacion_NB_Silver_DS_Client_v1.docx
suggested_path: /DataPlatform/Databricks/Silver/NB_Silver_DS_Client/
notes:
- Frecuencia y workflow no especificados en el DBC salvo que se indique externamente.
- Metadata derivada del DBC; no se inventó lógica adicional.

Dependencias

Las dependencias técnicas del proceso se documentan en Diseño Técnico - DS Client.

Consideraciones de Ejecución

  • Validar valores de widgets antes de ejecutar:
    • w_StartDate
    • w_EndDate
    • w_catalog
    • w_schema origin
    • w_schema destiny
  • Validar permisos de escritura y existencia del catálogo / esquema destino antes de ejecutar saveAsTable.
  • Revisar volumen de comparación full join para evitar degradación de performance.

Artefactos relacionados

ArtefactoDescripción
Diseño Funcional - DS_ClientDescribe el objetivo funcional, alcance y descripción general del proceso
Diseño Técnico - DS_ClientDocumenta arquitectura, modelo de datos dependencias y consideraciones técnicas.
Fuentes - DS_ClientDocumenta las fuentes de datos utilizadas por el proceso.
Operación - DS_ClientDocumenta consideraciones operativas, Runbook L1 y soporte.
Reglas de Negocio - DS_ClientContiene las reglas identificadas para el procesamiento.
Tablas - DS_ClientDocumenta dimensión principal, objetos relacionados y llaves identificadas.
Validaciones - DS_ClientDescribe menciones relacionadas con validaciones, revisión de fallos y acciones básicas.

Próximos pasos

  • Validar owner técnico y permisos sobre fuentes y outputs.