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_StartDatew_EndDatew_catalogw_schema originw_schema destiny
Flujo del Proceso Paso a Paso
| Paso | Objeto / acción | Detalle |
|---|---|---|
| 1 | Limpieza de caché | Limpieza de cache Databricks. |
| 2 | Widgets | Lectura de parámetros mediante widgets: w_StartDate, w_EndDate, w_catalog, w_schema destiny, w_schema origin. |
| 3 | Lectura de fuentes | Lectura de fuentes/tablas de referencia identificadas en FROM/JOIN. |
| 4 | Staging temporal | Creación de staging o vistas temporales: TEMP_CLI, TEMP_CLIENTES. |
| 5 | Joins | Aplicación de joins para comparar, homologar o enriquecer la dimensión. |
| 6 | Registros nuevos | Separación de registros nuevos para inserción. |
| 7 | Registros modificados | Separación de registros modificados para actualización. |
| 8 | saveAsTable | Persistencia 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_StartDatew_EndDatew_catalogw_schema originw_schema destiny
- Validar permisos de escritura y existencia del catálogo / esquema destino antes de ejecutar
saveAsTable. - Revisar volumen de comparación
full joinpara evitar degradación de performance.
Artefactos relacionados
| Artefacto | Descripción |
|---|---|
| Diseño Funcional - DS_Client | Describe el objetivo funcional, alcance y descripción general del proceso |
| Diseño Técnico - DS_Client | Documenta arquitectura, modelo de datos dependencias y consideraciones técnicas. |
| Fuentes - DS_Client | Documenta las fuentes de datos utilizadas por el proceso. |
| Operación - DS_Client | Documenta consideraciones operativas, Runbook L1 y soporte. |
| Reglas de Negocio - DS_Client | Contiene las reglas identificadas para el procesamiento. |
| Tablas - DS_Client | Documenta dimensión principal, objetos relacionados y llaves identificadas. |
| Validaciones - DS_Client | Describe 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.