La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson Program Manager, SQL Server Integration Services Microsoft.

Presentaciones similares


Presentación del tema: "High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson Program Manager, SQL Server Integration Services Microsoft."— Transcripción de la presentación:

1 High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson Program Manager, SQL Server Integration Services Microsoft

2 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

3 Datawarehouse (SQL Server, Oracle, DB2, Teradata) SQL/Oracle SAP/Dynamics Sistemas Propietarios TextoXML Integration Services InformesDashboards Cuadros de Mando Excel Herramienta BI Analysis Services

4 Clippy® para Business Intelligence!

5 Analysis Server OLEDB ADOMD.NET AMO IIS TCP HTTP XMLA ADOMD Apps cliente BIDS SSMS Profiler Excel

6 Una entidad sobre la que se realizará el análisis (e.j. Clientes) Está compuesta por: Atributos que describen la entidad Jerarquías que organizan los miembros de la dimensión de modo que tengan significado Customer ID First Name Last Name StateCityMarital Status Gender…Age 123JohnDoeWASeattleMarriedMale…42 456LanceSmithWARedmondUnmarriedMale…34 789JillThompsonORPortlandMarriedFemale…21

7 Contenedores de miembros de dimensión. Definen completamente el espacio dimensional. Posibilitan el agrupamiento y los cortes de datos. Clientes en la provincia de Madrid edad > 50 Clientes en la provincia de Madrid y edad > 50 Clientes casados hombres Clientes casados y hombres Normalmente tienen relaciones de uno a varios Ciudad Estado, Estado País, etc. Todos los atributos están relacionados implícitamente con la clave

8 Colección ordenada de atributos en niveles Ruta de Navegación a través del espacio dimensional Jerarquías definidas por el usuario – típicamente múltiples niveles Jerarquías de Atributo– creadas implícitamente para cada atributo – único nivel Clientes por Geografía País Provincia Ciudad Cliente Clientes por Demografía Estado Civil Sexo Cliente

9 Ciudad Provincia País Sexo Estado Civil País Provincia Ciudad Cliente Sexo Cliente Estado Civil Sexo Cliente Ciudad Provincia País Sexo Estado Civil AtributosJerarquías Edad

10 Colección de dimensiones y medidas Medida datos numéricos asociados con un conjunto de dimensiones (e.j. Cantidad de Ventas, Costes, Márgenes) Espacio Multi - Dimensional Definido por dimensiones y medidas E.j. (Clientes, Productos, Tiempo, Medidas) Intersección de miembros de dimensión y medidas es una celda (USA, Bicicletas, 2004, Ventas) = 1,523,374.83

11 Producto PatatasPalomitas Pan LecheCerveza M MMercadoercadoMMercadoercado Zar Mad Bar Acr En Mar Feb Tiempo Cervezas vendidas en Zaragoza en Enero

12 Conjunto de medidas con la misma dimensionalidad Análogo a tabla de hechos Un cubo puede contener más de un grupo de medidas E.j. Ventas, Inventario, Finanzas Espacio Multi-dimensional Subconjunto de dimensiones y medidas en el cubo Comparación AS2000 Cubo Virtual Cubo Cubo Grupo de Medidas

13 VentasInventarioFinanzas ClientesX ProductosXX TiempoXXX PromocionesX AlmacénX DepartmentoX CuentaX EscenarioX Grupo de Medidas

14 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

15 Relaciones de Atributo

16 Relaciones uno a varios entre atributos Todo funcionará mejor si las definimos cuando sea aplicable Ejemplos: Ciudad Provincia, Provincia País Día Mes, 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

17 Cliente Ciudad Provincia País SexoEstado Civil Edad

18 Cliente Ciudad Provincia País SexoEstado Civil Edad

19 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 (ULL) para Trimestre y Año Semántica MDX explicada en detalle en:

20 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

21 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

22 Crear una relación es sencillo, pero… Atención a los campos clave! Debemos de asegurarnos que cada atributo tiene campos clave únicos (añade claves compuestas si es necesario) Debe de existir una relación 1:M entre los campos clave de los dos atributos Campos clave no válidos causan que un miembro tenga múltiples padres EL procesamiento de la dimensión seleccionará un padre aleatoriamente La Jerarquía puede ser errónea

23 No olvides eliminar relaciones redundantes! Todos los atributos comienzan con relaciones con la clave Cliente Ciudad Provincia País Cliente Provincia (redundante) Cliente País (redundante)

24 Dimensión Tiempo Día, Semana, Mes, Trimestre, Año Año: 2003 a 2010 Trimestre: 1 a 4 Mes: 1 a 12 Semana: 1 a 52 Día: a Día Semana Mes Trimestre Año

25 Dimensión Tiempo Día, Semana, Mes, Trimestre, Año Año: 2003 a 2010 Trimestre: 1 a 4 – Campos clave (Año, Trimestre) Mes: 1 a 12 Semana: 1 a 52 Día: a Día Semana Mes Trimestre Año

26 Dimensión Tiempo Día, Semana, Mes, Trimestre, Año Año: 2003 a 2010 Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Mes: 1 a 12 Campos Clave(Año,Mes) Semana: 1 a 52 Día: a Día Semana Mes Trimestre Año

27 Dimensión Tiempo Día, Semana, Mes, Trimestre, Año Año: 2003 a 2010 Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Mes: 1 a 12 Campos Clave(Año,Mes) Semana: 1 a 52 Campos Clave (Año,Semana) Día: a Día Semana Mes Trimestre Año

28

29 Jerarquías de Atributos Rutas de Navegación predefinidas Definidas por los atributos Posibilitan la navegación ad hoc Por qué crear más? Guiar a los usuarios finales por rutas de interés Muchas herramientas de cliente existentes no soportan las jerarquías de atributo Rendimiento Optimizar las rutas de navegación en tiempo de procesamiento Materialización del árbol de jerarquía en disco El diseñador de agregaciones favorece las jerarquías definidas por el usuario

30 Relación 1:M (a través de relaciones de atributos) entre cada par de niveles adyacentes Ejemplos: País-Provincia-Ciudad-Cliente (natural) País-Ciudad (natural) Provincia-Cliente (natural) Edad-Sexo-Cliente (no-natural) Año-Trimestre-Mes (depende de los campos clave) ¿Cuántos trimestres y meses? 4 y 12 a través de todos los años (no-natural) 4 y 12 para cada año (natural)

31 Implicaciones de Rendimiento Solo las jerarquías naturales se materializan en disco durante el procesamiento Las jerarquías no naturales se construyen al vuelo durante las consultas (se cachean en memoria) El Servidor descompone internamente las jerarquías no naturales en componentes naturales Opera esencialmente como una ruta de navegación ad hoc (pero algo mejor) Crear jerarquías naturales donde sea posible Usando relaciones de atributos No siempre es lo apropiado (e.j. Edad-Sexo)

32 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 prudentemente No hay soporte para un nivel de agregación intermedio Usar dimensiones varios-a-varios prudentemente Más lentas que las dimensiones regulares, pero más rápidas que los cálculos Grupo de medidas intermedio debe de ser pequeño en relación con el grupo de medidas primario

33 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

34 Medidas Usar el tipo de datos numérico más pequeño posible Usar funciones de agregado semi-aditivas e 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

35 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

36 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 E.j. ventana de 24 meses añadir la partición de Junio de 2006y borrar Junio 2004 Las particiones pueden tener diferentes configuraciones de almacenamiento Necesitamos la versión Enterprise!

37 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ónRendimientoEscalabilidad

38 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

39 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

40 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

41 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

42 Optimización de Rendimiento de SQL Server Mejorar las consultas utilizadas para extraer datos Comprobar los planes de ejecución e índices 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 paralelo En la pestaña avanzada Monitorizar los valores: Maximizar el número de conexiones de orígenes de datos 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 Procesamiento paralelo requiere de versión Enterprise

43 Para un mejor rendimiento usar ASCMD.EXE y XMLA Usar para agrupar tareas de procesamiento Uso apropiado de 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

44 Procesado de Partición Monitorizar el uso de espacio temporal durante el procesamiento (contadores de monitor de rendimiento para archivos temporales) Añadir Memoria, configurar /3GB, mover a x64/ia64 Periódicamente procesar completamente las particiones Consigue una mejor compresión frente al procesado incremental Orígenes de Datos Evitar el uso de orígenes de datos.NET – OLEDB es más rápido para procesado

45 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

46 La mayoría de las herramientas cliente (Excel, Proclarity) muestran las celdas vacías – eliminar miembros sin datos Sin cálculos, non empty es más rápido – solo chequea datos de hechos. Con cálculos, non empty puede ser más lento – requiere evaluar la fórmula para cada celda Non_Empty_Behavior permite non empty en cálculos solo para chequear los datos de hechos Nota: query processing hint – usar con cuidado! Create Member [Measures].[Internet Gross Profit] As [Internet Sales Amount] - [Internet Total Cost], Format_String = "Currency", Non_Empty_Behavior = [Internet Sales Amount];

47 Atributos/ Jerarquías dentro de una dimensión siempre están juntos City.Seattle * State.Members returns {(Seattle, WA)} (Seattle, OR), (Seattle, CA) do not exist Explotar el poder de auto-exists Usar Exists/CrossJoin en lugar de.Properties – es más rápido Requiere jerarquía de atributo habilitada en la propiedad miembro Filter(Customer.Members, Customer.CurrentMember.Properties(Gender) = Male) Customer.CurrentMember.Properties(Gender) = Male) Exists(Customer.Members, Gender.[Male])

48 Usar ámbitos en lugar de condiciones como Iif/Case Ámbitos se evalúan una vez estáticamente Condiciones se evalúan dinámicamente para cada celda Intentar forzar siempre que una de las ramas sea nula Create Member Measures.Sales As Iif(Currency.CurrentMember Is Currency.USD, Iif(Currency.CurrentMember Is Currency.USD, Measures.SalesUSD, Measures.SalesUSD * Measures.XRate); Measures.SalesUSD, Measures.SalesUSD * Measures.XRate); Create Member Measures.Sales As Null; Scope(Measures.Sales, Currency.Members); This = Measures.SalesUSD * Measures.XRate; This = Measures.SalesUSD * Measures.XRate; Scope(Currency.USA); Scope(Currency.USA); This = Measures.SalesUSD; This = Measures.SalesUSD; End Scope; End Scope; End Scope;

49 Usar miembros calculados en lugar de celdas calculadas cuando sea posible Usar.MemberValue para cálculos en atributos numéricos Filter(Customer.members, Salary.MemberValue > ) Evitar el uso redundante de.CurrentMember y.Value (Tiempo.CurrentMember.PrevMember, Measures.CurrentMember ).Value puede reemplazarse por Tiempo.PrevMember Evitar LinkMember, StrToSet, StrToMember, StrToValue Reemplazar cálculos simples por campos calculados en DSV El cálculo se realiza en tiempo de procesado Más guías: Analysis Services Performance Whitepaper: 7f7151b2011c/SSAS2005PerfGuide.doc 7f7151b2011c/SSAS2005PerfGuide.doc

50 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

51 SSIS SQL Server Integration Services site SSIS MSDN Forum: SSIS MVP community site: SSAS BLOGS: PROJECT REAL-Business Intelligence in Practice Analysis Services Performance Guide TechNet: Analysis Services for IT Professionals Microsoft BI SQL Server Business Intelligence public site:

52 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Descargar ppt "High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson Program Manager, SQL Server Integration Services Microsoft."

Presentaciones similares


Anuncios Google