escalabilidad y alta disponibilidad en una solución...

31
Copyright © 2008, Solid Quality Mentors. All rights reserved. Escalabilidad y Rendimiento en una Solución BI

Upload: dinhliem

Post on 27-Sep-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad y Rendimiento en una

Solución BI

Page 2: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Agenda

• Escalabilidad

• Rendimiento

Page 3: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSIS

• Podemos instalar SSIS de forma independiente en

un servidor

• Podemos escalar utilizando varios servidores SSIS

• SSIS soporta completamente 64 bits

• Cuidado con Drivers

• BIDS es 32 bits

• Podemos configurar “Granjas de SSIS”

• SSIS de Front-End y almacén de paquetes en MSDB

centralizada

Page 4: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSAS

• Escalabilidad en el procesado

• Utilizar particiones

• Escalabilidad en los orígenes de datos

• Procesamiento Paralelo

• Podemos implementar escalado horizontal??

• Podemos dividir procesamiento de consulta??

Page 5: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSASArquitectura de Escalado

Page 6: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSASPaso 1: Estado Inicial

Page 7: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSASPaso 2: Sincronización

Page 8: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSASPaso 3: Cambio Cadenas de Conexión

Page 9: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSRSDespliegue escalado

Orígenes de

Datos

Flat Files,

OLE DB,

ODBC

Oracle

SQL Server

DB2

ClientesDespliegue escalado

Windows Server

SQL Server

Report Metadata

Y Cache Failover Cluster

NLB

Report Server

Windows Server

IIS

Windows Server

SQL Server

Report Server

Windows Server

IIS

Report Server

Windows Server

IIS

Page 10: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSRSFicheros de Configuración del Servidor

• Unico por Report Server – no transferible

• Configuración (incluir extensiones) debería ser el mismo en cada máquina

• Áreas específicas de interés

• Conexión a la base de datos de Report Server

• Cuenta y contraseña de Ejecución

• Configuración de extensiones (incluyendo la entrega por E-mail)

• Usar la herramienta de configuración, editor de texto o las herramientas por consola para modificarlo

• Monitorizar las actualizaciones de configuración

• Seguridad de Acceso a Código (CAS) para las extensiones se almacenan en un fichero separado

Page 11: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Escalabilidad SSRSCifrado de Datos

• Cuando se almacenan las conexiones de orígenes de datos y las credenciales, se cifran

• La clave simétrica se almacena cifrada con la clave privada de la instancia

• En SQL Server 2005, solo el servicio Windows tiene lógica de cifrado / descifrado

• Compartida por todos los servidores en un escenario de escalabilidad

• Debemos de restaurar la clave cuando cambiemos, el nombre del servidor, la cuenta de servicio o hagamos algún cambio en la instalación

• Administra claves con RSKEYMGMT o la Herramienta de Configuración

• Extrae una copia

• Aplica la clave almacenada

• Elimina los dos cifrados en el equipo

• Hacer copia de Seguridad de Clave!!!

Page 12: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Rendimiento

Page 13: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Los 3 Principios básicos

de un buen diseño de cubos

• Relaciones de Atributo

• Relaciones de Atributo

• Relaciones de Atributo

Page 14: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Relaciones de Atributo

• Relaciones uno a varios entre atributos

• Todo funcionará mejor si las definimos cuando sea aplicable

• Ejemplos:

• Ciudad Provincia, Provincia País

• DíaMes, Mes Trimestre, Trimestre Año

• Subcategoría Categoría

• Relaciones Rígidas vs. Flexibles (flexible predeterminado)

• Cliente Ciudad, Cliente Teléfono son flexibles

• Cliente FechaNacimiento, Ciudad Provincia son rígidas

• Todos los atributos están implícitamente relacionados al atributo clave

Page 15: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Cliente

Ciudad

Provincia País

Sexo Estado Civil Edad

Relaciones Atributo (continuación)

Page 16: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Cliente

Ciudad

Provincia

País

Sexo Estado Civil Edad

Relaciones Atributo(continuación)

Page 17: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Relaciones Atributo¿Dónde se utilizan?

• Semántica MDX

• Le indica al motor de fórmula como agrupar los valores de medida

• Si la granularidad del grupo de medidas es diferente a la del atributo clave (e.j. Ventas por Mes)

• Necesitamos relaciones de atributo con otros atributos (e.j. Mes Trimestre, Trimestre Año)

• De otro modo no se devolverían datos (NULL) para Trimestre y Año

Semántica MDX explicada en detalle en:

http://www.sqlserveranalysisservices.com/OLAPPapers/AttributeRelationships.htm

Page 18: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Almacenamiento

• Reduce las relaciones redundantes entre miembros de una

dimensión – normaliza el almacenamiento de la dimensión

• Posibilita el agrupamiento de registros dentro de los segmentos

de la partición (e.j. almacenar hechos para un mes juntos)

• Procesamiento

• Reduce el consumo de memoria en el procesamiento de la

dimensión – menos tablas hash en memoria

• Permite que las grandes dimensiones superen la barrera de 32-

bits

• Mejora la velocidad de procesamiento de dimensiones y

particiones

Relaciones Atributo¿Dónde se utilizan?

Page 19: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Rendimiento de Consultas

• Acceso al almacenamiento de la dimensión es más rápido

• Produce planes de ejecución más óptimo

• Diseño de Agregación

• Posibilita que el algoritmo de diseño de las agregaciones produzca

conjuntos de agregaciones efectivos

• Seguridad Dimensión

• DeniedSet = {Provincia.Madrid} debería denegar ciudades y clientes

en Madrid – requiere relaciones de atributos

• Propiedades de Miembro

• Las relaciones de atributo identifican las propiedades de los

miembros en los niveles

Relaciones Atributo¿Dónde se utilizan?

Page 20: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Buenas Prácticas

para el Diseño de Cubos• Dimensiones

• Consolidar múltiples jerarquías en una única dimensión (A no ser que estén relacionadas a través de la tabla de hechos)

• Evitar el modo de almacenamiento ROLAP si el rendimiento es una clave

• Usar dimensiones “role playing” (e.j. FechaPedido, FechaFactura, FechaEntrega) – evita múltiples copias físicas

• Usar las dimensiones padre-hijo prudentementeo No hay soporte para un nivel de agregación intermedio

• Usar dimensiones varios-a-varios prudentementeo Más lentas que las dimensiones regulares, pero más rápidas que los

cálculos

o Grupo de medidas intermedio debe de ser “pequeño” en relación con el grupo de medidas primario

Page 21: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Atributos

• Definir todas las relaciones de atributo posibles!

• Marcar las relaciones de atributo como rígidas cuando sea posible

• Usar campos clave de tipo integer (o numérico)

• Configurar la propiedad AttributeHierarchyEnabled a falso en

atributos no usados para navegación (e.j. Telf., Dirección)

• Configurar AttributeHierarchyOptimizedState a NotOptimized para

atributos no usados frecuentemente

• Configurar AttributeHierarchyOrdered a falso si el orden de los

miembros no es importante

• Jerarquías

• Usar jerarquías naturales donde sea posible

Buenas Prácticas

para el Diseño de Cubos

Page 22: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Medidas

• Usar el tipo de datos numérico más pequeño posible

• Usar funciones de agregado semi-aditivas en lugar de

cálculos MDX para conseguir el mismo

comportamiento

• Poner medidas distinct count en un grupo de medidas

separado (BIDS lo hace automáticamente)

• Evitar el uso de campos de tipo string para medidas

distinct count

Buenas Prácticas

para el Diseño de Cubos

Page 23: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Particionado

(sólo versión Enterprise)

• Mecanismo para romper los cubos en partes más manejables

• Las particiones pueden ser añadidas, procesadas y borradas independientemente

• La actualización de datos del últimos mes no afecta a otras particiones

• Podemos implementar un escenario de ventana de forma muy sencilla

o E.j. ventana de 24 meses añadir la partición de Junio de 2006 y borrar Junio 2004

• Las particiones pueden tener diferentes configuraciones de almacenamiento

Page 24: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Beneficios de Particionado

• Las particiones pueden procesarse y consultarse en paralelo

• Mejor utilización de recursos de servidor

• Reducimos los tiempos de carga

• Consultas se aíslan a particiones relevantes menos datos que revisar

• SELECT … FROM … WHERE [Tiempo].[Año].[2006]

• Consulta solo particiones de 2006

• Lo Esencial Las particiones posibilitan:

• Administración

• Rendimiento

• Escalabilidad

Page 25: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Buenas Prácticas Particionado

• No más de 20M de filas por partición

• Especificar el corte de la partición

• Opcional para MOLAP – servidor auto-detecta y valida contra la

especificada por el usuario (si existe)

• Debemos especificarla para ROLAP

• Administrar las configuraciones de almacenamiento utilizando

patrones

• Frecuentemente Consultadas MOLAP con muchas agregaciones

• Consultadas Periódicamente MOLAP con menos agregaciones o sin

ellas

• Histórico ROLAP sin agregaciones

• Discos diferentes - usar múltiples controladores para evitar contención

I/O

Page 26: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Buenas Prácticas para Agregados

• Definir todas las relaciones de atributo posibles

• Propiedad AggregationUsage para guiar al

diseñador de agregaciones

• Atributos menos utilizados None

• Atributos más utilizados Unrestricted

• No crear demasiadas agregaciones

• Sobre los 100s, no en los 1000s!

• No crear agregaciones más allá del 30% del

tamaño de la tabla de hechos

Page 27: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Ciclo diseño de agregaciones

• Usar asistente de diseño de almacenamiento (~20% mejora

rendimiento) para el diseño inicial de agregaciones

• Habilitar el registro de consultas y ejecutar cargas de trabajo

(pruebas con conjunto limitado de usuarios)

• Usar el Asistente de Optimización basado en el uso para refinar

agregados

• Mayor ganancia de rendimiento (70-80%)

• Reprocesar nuevos agregados

• Usar el asistente periódicamente

Buenas Prácticas para Agregados

Page 28: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Mejorando el Procesado

• Optimización de Rendimiento de SQL Server

• Mejorar las consultas utilizadas para extraer datos

o Comprobar los planes de ejecución e índices

o Realizar un proceso normal de optimización

• Mejoras de Procesamiento de AS

• Usa SP2 !!– Procesado de 20 particiones: SP1 1:56, SP2: 1:06

• No dejar las opciones predeterminadas de procesado paraleloEn la pestaña avanzada

• Monitorizar los valores:

o Maximizar el número de conexiones de orígenes de datos

o MaxParallel – Cuántas particiones se procesan en paralelo, no permitir que el servidor decida por él mismo.

• Usa INT para las claves si es posible

(Procesado paralelo sólo en versión Enterprise)

Page 29: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

• Para un mejor rendimiento usar ASCMD.EXE y XMLA

• Usar <Parallel> </Parallel> para agrupar tareas de

procesamiento

• Uso apropiado de <Transaction> </Transaction>

• ProcessFact y ProcessIndex por separado en lugar

de ProcessFull (para grandes particiones)

• Consume menos memoria.

• ProcessClearIndexes borra los índices existentes y

ProcessIndexes genera o reprocesa los existentes

Mejorando el Procesado

Page 30: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Buenas Prácticas para Procesado

• Procesado de Partición

• Monitorizar el uso de espacio temporal durante el procesamiento (contadores de monitor de rendimiento para archivos temporales)

o Añadir Memoria, configurar /3GB, mover a x64/ia64

• Periódicamente procesar completamente las particiones

o Consigue una mejor compresión frente al procesado incremental

• Orígenes de Datos

o Evitar el uso de orígenes de datos .NET – OLEDB es más rápido para procesado

Page 31: Escalabilidad y Alta Disponibilidad en una Solución BIblogs.solidq.com/wp-content/uploads/Escalabilidad-y-Rendimiento-en... · •Mejorar las consultas utilizadas para extraer datos

Copyright © 2008, Solid Quality Mentors. All rights reserved.

Conclusión

• AS2005 es una re-arquitectura de AS2000

• Debemos de diseñar teniendo en mente el rendimiento y la

escalabilidad desde el principio

• Muchos de estos principios vienen de AS2000

• Diseño Dimensional, Particiones, Agregados

• Muchos nuevos principios en AS2005

• Relaciones de Atributo, jerarquías naturales

• Nuevas alternativas de diseño – role playing, varios a varios,

dimensiones referenciadas, medidas semi-aditivas

• Opciones de procesamiento flexible

• MDX scripts, ámbitos

• Usa Analysis Services con SQL Server Enterprise Edition

para obtener el máximo rendimiento y escalabilidad