Skip to content

jonnathanx/Ubimia_SQL

Repository files navigation

UbimiaCargaDatos

Aplicación de consola .NET 8 para la carga automatizada de datos desde Excel a SQL Server.

Descripción

Aplicación que lee información de clientes y transacciones desde un archivo Excel, valida los datos y los carga en una base de datos SQL Server

Ajustar Datos de configuración

- appsettings.json
    reemplazar las cadenas de conexión y rutas según sea necesario. 
    (YOUR_SERVER\\INSTANCE | your_username | your_password)    

Proceso de Ejecución

    • Configuración de Base de Datos: Crea la base de datos y tablas necesarias
    • Lectura de Excel: Extrae datos de clientes y transacciones
    • Carga de Datos: Inserta los registros válidos en SQL Server

Analisis de datos

  • Uso de Surrogate Key (id_cliente_sk / id_transaccion_sk) Los IDs de negocio están duplicados (55, 98) Se implemento porque permite mantener histórico Facilita auditoría y control de versiones

  • Manejo de Clientes Duplicados Se implmento un CTE ya que cliente_canonico no elimina transacciones. (Se elige 1 registro como "versión válida") Solo garantiza que cada id_cliente tenga una única fila en la tabla clientes antes del JOIN, evitando totales incorrectos cuando hay duplicados.

  • Campo: es_valido_analitica Se definió como criterio para separar:

    • Datos confiables para reporting
    • Datos que deben revisarse
  • ¿Por qué no borré datos? existan errores (fechas futuras, valores negativos, montos extremos o duplicados), si borraba datos significaba:

    • perder evidencia del problema
    • ocultar inconsistencias en vez de controlarlas Por eso, en lugar de borrar, marqué los registros con flags:
      • flag_fecha_futura
      • flag_valor_negativo
      • flag_outlier_venta
      • flag_cantidad_negativa
      • flag_duplicado De esta manera quedan disponibles para revisión, pero no afectan los análisis de la tabla resumen_anual.
  • Con los datos a revisar estas son algunas de mis hipotesis.

    • Cobros sin entrega de productos (Valor > 0, Cantidad = 0): Podría ser pagos por servicios, abonos a deuda,o errores tipeo y omitio la cantidad.
    • Entrega de productos sin cobro (Valor = 0, Cantidad > 0): Podrían ser muestras gratis, garantías, o errores de tipeo donde no se registró el precio.
    • Cantidad de Productos negativa (-1 y -2) Podrían ser devoluciones, errores de tipeo.

Tecnologías

  • .NET 8
  • Dapper (acceso a datos)
  • EPPlus (lectura de Excel)
  • Serilog (logging)

Configuración

Editar appsettings.json:

  • ConnectionStrings: Cadenas de conexión a SQL Server
  • ExcelSettings: Ruta y hojas del archivo Excel
  • ScriptsPath: Ubicación de los scripts SQL

Como ejecutar

dotnet run

Logs

Los logs se generan en la carpeta logs/

About

Carga de datos de xls a SQL SERVER

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages