20
POC SQL Server 2014 División Gestión del Riesgo en Rubro Bancario. Sebastián Rodríguez Robotham 11 de Junio 2014.

POC SQL 2014

Embed Size (px)

DESCRIPTION

Esta presentación muestra los resultados de la prueba de conceptos realizada sobre SQL Server 2014 Enterprise en una empresa del rubro Bancario. En resumen, este documento evidencia un mejoramiento en el rendimiento de hasta 6 veces en las consultas adhoc en SQL, y un 30% de mayor eficiencia en las tasas de compresión de datos. Esta PPT la expuse en un evento organizado por Microsoft en junio del año 2014, en el marco de las nuevas herramientas que Microsoft ha desarrollado para satisfacer las necesidades en el ámbito de BI

Citation preview

Page 1: POC SQL 2014

POC SQL Server 2014División Gestión del Riesgo en Rubro Bancario.

Sebastián Rodríguez Robotham11 de Junio 2014.

Page 2: POC SQL 2014

Resultados POC y Conclusiones.

Contexto División Riesgos y Arquitectura DW Actual.

POC – Objetivos y Plan de Trabajo

Page 3: POC SQL 2014

• Gestión de Riesgo Crediticio:Posible Pérdida que asume un banco como consecuencia del inclumplimiento de obligaciones contraidas por un cliente.

• El que cobra primero cobra mejor.

• Clientes Buenos NO ESPERAN.

Contexto.

Page 4: POC SQL 2014

Areas y Procesos Involucrados

Gerencias- Riesgo Personas.- Riesgo Empresas.- Riesgo Pyme.- Modelos & Herramientas.- Banca Comercial.

Cobranza Judicial

Ciclo de Vida del Cliente (Visión Riesgo Crediticio)

Campañas Admisión Cobranza Prejudicial

Venta

Cartera

Cliente

No-Cliente

Preventiva

Agencia Cobro

Tipos de Usuarios

Usuarios de Negocio

Usuarios Avanzados

Administradores

Page 5: POC SQL 2014

Arquitectura

Fuentes de Datos- Excel- TXT- CSV- SQL 2000 -

2005- Oracle- Access

Algunos Datos Adicionales…- Cerca de 55 Proceso de Carga Diarios.

- Tiempo de Proceso: 2 ½ horas.- ENFOQUE “SIN OPERADOR”- Todo se hace con T-SQL:

- Conectar con FTP y descargar archivos.

- Cargar fuentes de datos automáticas.

- Procesamiento diario automático- Envío de correos y notificaciones.

- 1.600 millones de filas.- 10 Cubos.- 27 Dimensiones.- 150 usuarios.- 1TB información comprimida (2008-R2)- Modificaciones de datos y estructuras

es muy frecuente- Implementado en ROLAP.8 núcleos de 2.3GHz (Intel Xeon E5-2630), 38GB Ram, 2TB

Disco Duro, Windows Server X64 Enterprise 2008R2, SQL Server 2008 R2 Enterprise X64.

Page 6: POC SQL 2014

Arquitectura

Tipo de Modelo Tablas sin índices Tablas 3FN Modelo Estrella

Objetivo Cargas / Limpieza Básica

Integridad, Trazabilidad,

Reglas de Negocio

Reporting, Versión única de la

verdad.

CaracterísticasA. Bajo impacto de error al

modificar una Fuente de Datos.

B. Alto grado de trazabilidad de la información: Auditorías.

C. Permite modificar fácilmente lógicas de negocio en las cargas de dimensiones.

D. Fácil administración de Filegroup / Particiones / Backup

E. Adaptabilidad a cambios en el negocio.

Page 7: POC SQL 2014

Resultados POC y Conclusiones.

Contexto División Riesgos y Arquitectura DW Actual.

POC – Objetivos y Plan de Trabajo

Page 8: POC SQL 2014

Objetivo GeneralProbar las nuevas funcionalidades de SQL Server 2014 para

- Mejorar el rendimiento de almacenamiento- Mejorar el rendimiento de tiempo de respuestas de consultas- Mejorar el rendimiento de tiempo en procesos de carga.

Administración

Agilidad / Eficiencia Analistas

Oportunidad de la información

Específicos

- Tiempos de Respuesta: disminuir consultas más pesadas (sobre 30 segundos)- Disponibilidad: Antes de las 9:00 hrs; lo antes posible cuando hay retrasos.- Compresión: Aumentar información histórica disponible en Datamart.- Administración: Simplicidad por enfoque NO OPERADOR

Objetivos POC

Page 9: POC SQL 2014

Arquitectura: Cambios en el modelo.

SQL Server 2014 In-Memory In-Memory,

ColumnStore, Row ColumnStore

SQL Server 2008 R2 Tablas sin índices ClusterIndex, FK ClusterIndex,

Indices

PruebasA. Mínimo 3 ejecuciones en

cada prueba

B. Comparaciones son en base a RowTables.

Page 10: POC SQL 2014

Plan de Pruebas

Planificación de Actividades.

A. Creación de script de bases de datos

B. Poblar información real.

C. Pruebas de ejecución de consultas

D. Pruebas con usuarios finales en ambiente real.

Ambiente Carga

Ambiente ODS

Ambiente OLAP

Optimización Carga de Información

Optimización Procesamiento de datos

Optimización de Consultas.

Optimización Procesamiento de Datos

Optimización de Consultas

Mejoramiento en Administración del ambiente

Mejoramiento en Backup

Mejoramiento Accesibilidad Usuarios Finales.

Pruebas a Realizar en cada Ambiente

Page 11: POC SQL 2014

Resultados POC y Conclusiones.

Contexto División Riesgos y Arquitectura DW Actual.

POC – Objetivos y Plan de Trabajo

Page 12: POC SQL 2014

Preparación del Ambiente

dbcc DropCleanBuffersElimina todo el contenido de páginas de datos que existen en memoria.

dbcc FreeProcCacheElimina todos los planes de ejecución de la caché de procedimiento

dbcc FreeSystemCache('ALL')Libera todas las entradas de caché no utilizadas de todas las memorias caché.

dbcc FreeSessionCacheVacía la memoria caché de conexión de las consultas distribuidas utilizada por las consultas distribuidas con una instancia de Microsoft SQL Server.

Page 13: POC SQL 2014

Resultados: Carga de Información.

Información de la prueba.

- Tablas con 1 millón de registros.

- 207 campos.

- Números en formato texto con separadores

- Fechas en formato texto.

# Prueba Normal (mm:ss) Column Store (mm:ss)

Diferencia (mm:ss) % Mejora

In-Memory (mm:ss) Diferencia

(mm:ss) %

Mejora Ej 1 Ej 2 Ej 3 Ej

Prom Ej 1 Ej 2 Ej 3

Ej Prom

Ej 1 Ej 2 Ej 3 Ej

Prom

1 Ejecución procedimiento almacenado de carga de archivo fuente de información

12:49 12:49 12:49 12:49 17:57 17:57 17:57 17:57 -0:05:08 -40,05% 10:08 10:08 10:08 10:08 02:41 20,94%

Resultados.

- Carga de información diaria es 21% más rápida con tablas en memoria

- Beneficio impacta directamente disponibilidad de información diaria.

Page 14: POC SQL 2014

# Prueba Normal (mm:ss) Column Store (mm:ss)

Diferencia (mm:ss) % Mejora

In-Memory (mm:ss) Diferencia

(mm:ss) %

Mejora Ej 1 Ej 2 Ej 3 Ej Prom

Ej 1 Ej 2 Ej 3 Ej Prom

Ej 1 Ej 2 Ej 3 Ej Prom

1 Nueva columna en dimensión: crear, actualizar y alterar (no nulos)

17:32 17:32 17:32 17:32 34:15 34:15 34:15 34:15 -0:16:43 -95,34%

2 Actualización de campo en tabla de dimensión 01:05 01:58 01:11 01:25 04:26 05:06 04:52 04:48 -0:03:23 -240,16% 00:17 00:23 00:18 00:19 01:05 77,17%

3 Actualización de campos en tabla de dimensión

01:34 01:30 01:24 01:29 05:02 04:53 05:04 05:00 -0:03:30 -235,45% 00:18 00:16 00:17 00:17 01:12 80,97%

4 Actualización de campos en tabla de dimensión con filtro

01:24 00:49 01:10 01:08 03:28 03:25 03:46 03:33 -0:02:25 -214,78% 00:12 00:14 00:12 00:13 00:55 81,28%

5 Eliminación simple de filas con filtro 00:47 00:51 01:26 01:01 00:45 00:14 00:14 00:24 00:37 60,33% 00:02 00:15 00:01 00:06 00:55 90,22%

Resultados: Procesamiento de Información

Información de la prueba.

- Tablas con 1 millón de registros.

- 42 y 109 campos.

Resultados.

- Procesamiento de información es 6 veces más rápido con tablas en memoria

- Beneficio impacta directamente disponibilidad de información diaria y reprocesos.

Page 15: POC SQL 2014

# Prueba Normal (mm:ss) Column Store (mm:ss)

Diferencia (mm:ss) % Mejora

In-Memory (mm:ss) Diferencia

(mm:ss) %

Mejora Ej 1 Ej 2 Ej 3 Ej

Prom Ej 1 Ej 2 Ej 3

Ej Prom

Ej 1 Ej 2 Ej 3 Ej

Prom

1 Estadísticas básicas de tabla TabFAC_DeudaAnaMes_2 con filtro periodo

01:19 01:05 01:10 01:11 00:04 00:04 00:03 00:04 01:08 94,86%

2

Consulta típica sobre tabla de hechos cruzada con tablas de dimensiones con filtro, agrupación y orden

00:32 00:31 00:31 00:31 00:09 00:09 00:09 00:09 00:22 71,28%

3 Cruce de tabla in-memory con tabla de diferente tipo (normal, column store e in-memory)

03:15 03:02 03:18 03:12 01:39 01:34 01:04 01:26 01:46 55,30% 01:19 01:20 01:20 01:20 01:52 58,43%

Resultados: Ejecución de Consultas (Querys)

Información de la prueba.

- Tablas con 90 millones de registros.

- 159 campos.

Resultados.

- Querys adhoc son 3 veces más rápidas utilizando tablas columnares.

- Mejora en procesos de usuarios avanzados.

Page 16: POC SQL 2014

# Prueba Normal (mm:ss) Column Store (mm:ss)

Diferencia (mm:ss) % Mejora

In-Memory (mm:ss) Diferencia

(mm:ss) %

Mejora Ej 1 Ej 2 Ej 3 Ej Prom

Ej 1 Ej 2 Ej 3 Ej Prom

Ej 1 Ej 2 Ej 3 Ej Prom

1 Informe SRD: Análisis CV Cliente (Judicial)

01:35 01:10 01:16 01:20 00:21 00:21 00:20 00:21 01:00 74,27%

2 Informe SRD: Primas de Riesgo por Producto 02:33 01:14 01:12 01:40 00:41 00:12 00:11 00:21 01:18 78,60%

3 Informe SRD: CM IMC Convenios 03:12 01:39 01:45 02:12 00:53 00:23 00:23 00:33 01:39 75,00%

Resultados: Ejecución de Consultas (SRD)

Información de la prueba.

- Tablas con 90 millones de registros.

- 159 campos.

Resultados.

- Sistema de Reportes es 5 veces más rápido utilizando tablas columnares.

- Mejora en Reporting diarios y mensuales, ejecutado por analistas de negocio.

Page 17: POC SQL 2014

Tipos de Tablas Tablas Normales (MB)

Tablas Columnares

(MB)

Ahorro en MB

N° Filas

Dimensiones 3.684 935 2.749 (75%) 35.515.177 Hechos 54.823 40.141 14.642 (27%) 459.148.171 Total 58.507 41.116 17.391 (30%) 494.663.348

Resultados: Pruebas de Almacenamiento.

Información de la prueba.

- Servidor 200GB espacio disponible

- Tablas fueron cargadas parcialmente para realizer pruebas.

- 80% de columnas en tablas de hechos son datos numéricos (deudas, dias de mora, flujos…)

Resultados.

- Con esta configuración se puede mejorar en 30% el rendimiento de compresión de datos, sin perjudicar rendimiento.

- Ratio puede mejorar incorporando Archival Compression.

Page 18: POC SQL 2014

Pruebas Realizadas

Resultados: Resumen

Ambiente Carga

Ambiente ODS

Ambiente OLAP

Optimización Carga de Información: 20%

Optimización Procesamiento de datos: 6X

Optimización de Consultas: 3X

Optimización Procesamiento de Datos: 6X

Optimización de Consultas: 5X

Mejoramiento en Administración del ambiente: 30% almacenamiento

Mejoramiento en Backup: 30% almacenamiento

Mejoramiento Accesibilidad Usuarios Finales.

Impactos de la Implementación

A. Implementación Manual de Integridad Referencial• Actualmente implementadas con FK –

constraint.

• Se implementarán triggers tipo “instead of” para evitar inconsistencia.

• Impacto en programación: Bajo.

B. Consultas entre bases de datos con Tablas en Memoria.• Ambientes “CARGA” Y “ODS” comparten

tablas para tareas ETL y traspaso de información entre modelos.

• Se deberán crear tablas de memoria especializadas en cada modelo

• Impacto en programación: Medio.

Page 19: POC SQL 2014

¿ Preguntas ?

19

Page 20: POC SQL 2014

© 2013 Microsoft Corporation. Todos los derechos reservados. Microsoft, Windows, Windows Vista y otros nombres de productos son o pueden ser marcas comerciales o marcas registradas en los Estados Unidos u otros países.La información que aquí figura se utiliza con fines informativos únicamente y representa la perspectiva actual de Microsoft Corporation a partir de la fecha de esta presentación. Dado que Microsoft debe responder a los cambios en las condiciones de mercado, no se debe interpretar como un compromiso de parte de Microsoft, y Microsoft no puede garantizar la exactitud de la información proporcionada después de la fecha de esta presentación. MICROSOFT NO OFRECE NINGUNA GARANTÍA EXPLÍCITA, IMPLÍCITA NI LEGAL EN CUANTO A LA INFORMACIÓN QUE CONTIENE ESTA PRESENTACIÓN.