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

Presentaciones similares


Presentación del tema: "High Impact Data Warehousing with SQL Server Analysis Services"— Transcripción de la presentación:

1 High Impact Data Warehousing with SQL Server Analysis Services
24/03/2017 4:00 PM High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson Program Manager, SQL Server Integration Services Microsoft 1 ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo
3/24/2017 4:00 PM Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

3 Analysis Services Datawarehouse Integration Services Informes
Dashboards Cuadros de Mando Excel HerramientaBI Analysis Services Datawarehouse (SQL Server, Oracle, DB2, Teradata) Integration Services SQL/Oracle SAP/Dynamics Sistemas Propietarios Texto XML

4 Clippy® para Business Intelligence!

5 Analysis Server Excel OLEDB ADOMD TCP Apps cliente XMLA AMO IIS BIDS
3/24/2017 4:00 PM Excel OLEDB ADOMD TCP Apps cliente Analysis Server XMLA AMO IIS BIDS SSMS HTTP Profiler ADOMD .NET

6 Una entidad sobre la que se realizará el análisis (e.j. Clientes)
3/24/2017 4:00 PM 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 State City Marital Status Gender Age 123 John Doe WA Seattle Married Male 42 456 Lance Smith Redmond Unmarried 34 789 Jill Thompson OR Portland Female 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 y edad > 50 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
3/24/2017 4:00 PM 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 Clientes por Demografía País Estado Civil Provincia Sexo Ciudad Cliente Cliente

9 Atributos Jerarquías 3/24/2017 4:00 PM País País Provincia
Estado Civil Ciudad Sexo Sexo Provincia Cliente Cliente Cliente Ciudad Sexo Estado Civil Edad Cliente Provincia Sexo Ciudad País Estado Civil Cliente Atributos Jerarquías

10 Colección de dimensiones y medidas
3/24/2017 4:00 PM 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 Cervezas vendidas en Zaragoza en Enero
M ercado Mad Bar Mar Acr Feb Tiempo En Patatas Palomitas Pan Leche Cerveza Producto

12 Grupo de Medidas 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 Grupo de Medidas Grupo de Medidas Ventas Inventario Finanzas Clientes
3/24/2017 4:00 PM Grupo de Medidas Grupo de Medidas Ventas Inventario Finanzas Clientes X Productos Tiempo Promociones Almacén Departmento Cuenta Escenario

14 Agenda Arquitectura de Servidor y bases de UDM
3/24/2017 4:00 PM Agenda Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

15 Los 3 Principios básicos de un buen diseño de cubos
3/24/2017 4:00 PM Los 3 Principios básicos de un buen diseño de cubos 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 Ciudad Sexo Estado Civil Edad Provincia País Cliente

18 País Provincia Ciudad Sexo Estado Civil Edad Cliente

19 Relaciones Atributo Dónde se utilizan?
3/24/2017 4:00 PM 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 (ULL) para Trimestre y Año Semántica MDX explicada en detalle en:

20 Relaciones Atributo Dónde se utilizan?
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 Relaciones Atributo Dónde se utilizan?
3/24/2017 4:00 PM Relaciones Atributo Dónde se utilizan? 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 Relaciones de Atributo ¿Cómo configurarlas?
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 Relaciones de Atributo ¿Cómo configurarlas?
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 Relaciones de Atributo Ejemplo
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 Relaciones de Atributo Ejemplo
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 Relaciones de Atributo Ejemplo
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 Relaciones de Atributo Ejemplo
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 Jerarquías Naturales 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 Jerarquías Naturales Buenas Prácticas para diseño de Jerarquías
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 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 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 Buenas Prácticas para el Diseño de Cubos
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 Agenda Arquitectura de Servidor y bases de UDM
3/24/2017 4:00 PM Agenda 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 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

38 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

39 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

40 Buenas Prácticas para Agregados
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 Agenda Arquitectura de Servidor y bases de UDM
3/24/2017 4:00 PM Agenda Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

42 Procesamiento paralelo requiere de versión Enterprise
3/24/2017 4:00 PM 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 © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

43 Para un mejor rendimiento usar ASCMD.EXE y XMLA
3/24/2017 4:00 PM 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 © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

44 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) 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 Agenda Arquitectura de Servidor y bases de UDM
3/24/2017 4:00 PM Agenda Arquitectura de Servidor y bases de UDM Optimizar el Diseño de Cubo Particionado y Agregaciones Procesamiento Consultas y Cálculos Conclusión

46 Sin cálculos, non empty es más rápido – solo chequea datos de hechos.
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”) Exists(Customer.Members, Gender.[Male])

48 Intentar forzar siempre que una de las ramas sea nula
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, Measures.SalesUSD, Measures.SalesUSD * Measures.XRate); Create Member Measures.Sales As Null; Scope(Measures.Sales, Currency.Members); This = Measures.SalesUSD * Measures.XRate; Scope(Currency.USA); This = Measures.SalesUSD; End Scope;

49 Usar .MemberValue para cálculos en atributos numéricos
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:

50 3/24/2017 4:00 PM 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 3/24/2017 4:00 PM © 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. © 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"

Presentaciones similares


Anuncios Google