Performance y Escalabilidad del Kernel Linux aplicado a Redes de ...
Escalabilidad y Alta Disponibilidad en una Solución...
Transcript of Escalabilidad y Alta Disponibilidad en una Solución...
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Escalabilidad y Rendimiento en una
Solución BI
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Agenda
• Escalabilidad
• Rendimiento
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
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??
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Escalabilidad SSASArquitectura de Escalado
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Escalabilidad SSASPaso 1: Estado Inicial
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Escalabilidad SSASPaso 2: Sincronización
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Escalabilidad SSASPaso 3: Cambio Cadenas de Conexión
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
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
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!!!
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Rendimiento
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
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
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Cliente
Ciudad
Provincia País
Sexo Estado Civil Edad
Relaciones Atributo (continuación)
Copyright © 2008, Solid Quality Mentors. All rights reserved.
Cliente
Ciudad
Provincia
País
Sexo Estado Civil Edad
Relaciones Atributo(continuación)
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
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?
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?
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
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
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
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
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
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
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
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
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)
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
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
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