high impact data warehousing with sql server analysis services grant dickinson [email protected]...

52
High Impact Data High Impact Data Warehousing with SQL Warehousing with SQL Server Analysis Services Server Analysis Services Grant Dickinson Grant Dickinson [email protected] [email protected] Program Manager, SQL Server Integration Services Program Manager, SQL Server Integration Services Microsoft Microsoft

Upload: guiomar-sagun

Post on 03-Jan-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

High Impact Data High Impact Data Warehousing with SQL Server Warehousing with SQL Server Analysis ServicesAnalysis Services

Grant DickinsonGrant [email protected]@microsoft.comProgram Manager, SQL Server Integration ServicesProgram Manager, SQL Server Integration ServicesMicrosoftMicrosoft

Page 2: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Arquitectura de Servidor y bases de Arquitectura de Servidor y bases de UDMUDM

Optimizar el Diseño de CuboOptimizar el Diseño de Cubo

Particionado y AgregacionesParticionado y Agregaciones

ProcesamientoProcesamiento

Consultas y CálculosConsultas y Cálculos

ConclusiónConclusión

Page 3: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Datawarehouse(SQL Server, Oracle,

DB2, Teradata)

SQL/Oracle

SAP/Dynamics

Sistemas Propietario

sTexto XML

Integration Services

InformesDashboard

sCuadros

de MandoExcel

HerramientaBI

Analysis Services

Page 4: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Clippy® para Business Intelligence!

Page 5: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Analysis Server

OLEDB

ADOMD .NET

AMO IIS

TCP

HTTP

XMLA

ADOMD

Apps

cliente

BIDS

SSMS

Profiler

Excel

Page 6: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Una entidad sobre la que se realizará el Una entidad sobre la que se realizará el análisis (e.j. Clientes)análisis (e.j. Clientes)

Está compuesta por:Está compuesta por:Atributos que describen la entidadAtributos que describen la entidad

Jerarquías que organizan los miembros de la Jerarquías que organizan los miembros de la dimensión de modo que tengan significadodimensión de modo que tengan significado

CustomerID

FirstName

LastName

State City MaritalStatus

Gender … Age

123 John Doe WA Seattle Married Male … 42

456 Lance Smith WA Redmond

Unmarried

Male … 34

789 Jill Thompson OR Portland Married Female … 21

Page 7: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Contenedores de miembros de Contenedores de miembros de dimensión.dimensión.

Definen completamente el espacio Definen completamente el espacio dimensional.dimensional.

Posibilitan el agrupamiento y los cortes Posibilitan el agrupamiento y los cortes de datos.de datos.

Clientes en la Clientes en la provincia de Madrid provincia de Madrid y edad edad > 50> 50

Clientes Clientes casadoscasados y hombreshombres

Normalmente tienen relaciones de uno a Normalmente tienen relaciones de uno a variosvarios

Ciudad Ciudad Estado, Estado Estado, Estado País, etc. País, etc.

Todos los atributos están relacionados Todos los atributos están relacionados implícitamente con la claveimplícitamente con la clave

Page 8: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Colección ordenada de atributos en nivelesColección ordenada de atributos en nivelesRuta de Navegación a través del espacio Ruta de Navegación a través del espacio dimensionaldimensionalJerarquías definidas por el usuario – Jerarquías definidas por el usuario – típicamente múltiples nivelestípicamente múltiples nivelesJerarquías de Atributo– creadas implícitamente Jerarquías de Atributo– creadas implícitamente para cada atributo – único nivelpara cada atributo – único nivel

Clientes por Geografía

País

Provincia

Ciudad

Cliente

Clientes por Demografía

Estado Civil

Sexo

Cliente

Page 9: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Cliente

Ciudad

Provincia

País

Sexo Estado Civil

País

Provincia

Ciudad

Cliente

Sexo

Cliente

Estado Civil

Sexo

Cliente

Cliente

Ciudad

Provincia

País

Sexo

Estado Civil

Atributos Jerarquías

Edad

Page 10: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Colección de dimensiones y medidasColección de dimensiones y medidas

MedidaMedida datos numéricos asociados datos numéricos asociados con un conjunto de dimensiones (e.j. con un conjunto de dimensiones (e.j. Cantidad de Ventas, Costes, Márgenes)Cantidad de Ventas, Costes, Márgenes)

Espacio Multi - DimensionalEspacio Multi - DimensionalDefinido por dimensiones y medidasDefinido por dimensiones y medidas

E.j. (Clientes, Productos, Tiempo, Medidas)E.j. (Clientes, Productos, Tiempo, Medidas)

Intersección de miembros de dimensión y Intersección de miembros de dimensión y medidas es una celda (USA, Bicicletas, medidas es una celda (USA, Bicicletas, 2004, Ventas) = €1,523,374.832004, Ventas) = €1,523,374.83

Page 11: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

ProductoProductoPatatasPatatasPalomitasPalomitas PanPan LecheLeche CervezaCerveza

MMeerrccaaddoo

ZarZar

MadMad

BarBar

AcrAcrEnEn

MarMarFebFeb

TiempoTiempo

Cervezas Cervezas vendidas en vendidas en Zaragoza en Zaragoza en

EneroEnero

Page 12: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Conjunto de medidas con la misma Conjunto de medidas con la misma “dimensionalidad”“dimensionalidad”

Análogo a tabla de hechosAnálogo a tabla de hechos

Un cubo puede contener más de un grupo Un cubo puede contener más de un grupo de medidasde medidas

E.j. Ventas, Inventario, FinanzasE.j. Ventas, Inventario, Finanzas

Espacio Multi-dimensionalEspacio Multi-dimensionalSubconjunto de dimensiones y medidas en el Subconjunto de dimensiones y medidas en el cubocubo

Comparación AS2000Comparación AS2000Cubo Virtual Cubo Virtual Cubo Cubo

Cubo Cubo Grupo de Medidas Grupo de Medidas

Page 13: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Ventas Inventario Finanzas

Clientes X

Productos X X

Tiempo X X X

Promociones

X

Almacén X

Departmento

X

Cuenta X

Escenario X

Grupo de MedidasGrupo de Medidas

Page 14: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM

Optimizar el Diseño de CuboOptimizar el Diseño de Cubo

Particionado y AgregacionesParticionado y Agregaciones

ProcesamientoProcesamiento

Consultas y CálculosConsultas y Cálculos

ConclusiónConclusión

Page 15: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Relaciones de AtributoRelaciones de Atributo

Relaciones de AtributoRelaciones de Atributo

Relaciones de AtributoRelaciones de Atributo

Page 16: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Relaciones uno a varios entre atributosRelaciones uno a varios entre atributosTodo funcionará mejor si las definimos cuando Todo funcionará mejor si las definimos cuando sea aplicablesea aplicableEjemplos:Ejemplos:

Ciudad Ciudad Provincia, Provincia Provincia, Provincia País PaísDíaDía Mes, Mes Mes, Mes Trimestre, Trimestre Trimestre, Trimestre Año AñoSubcategoría Subcategoría Categoría Categoría

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

Cliente Cliente Ciudad, Cliente Ciudad, Cliente Teléfono son flexibles Teléfono son flexiblesCliente Cliente FechaNacimiento, Ciudad FechaNacimiento, Ciudad Provincia son Provincia son rígidasrígidas

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

Page 17: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Cliente

Ciudad

Provincia País

Sexo Estado Civil Edad

Page 18: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Cliente

Ciudad

Provincia

País

Sexo Estado Civil Edad

Page 19: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Semántica MDXSemántica MDXLe indica al motor de fórmula como agrupar los Le indica al motor de fórmula como agrupar los valores de medidavalores de medida

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

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

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

Semántica MDX explicada en detalle en:Semántica MDX explicada en detalle en:http://www.sqlserveranalysisservices.com/OLAPPapers/AttributeRelationships.htm

Page 20: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

AlmacenamientoAlmacenamientoReduce las relaciones redundantes entre Reduce las relaciones redundantes entre miembros de una dimensión – normaliza el miembros de una dimensión – normaliza el almacenamiento de la dimensiónalmacenamiento de la dimensión

Posibilita el agrupamiento de registros dentro de Posibilita el agrupamiento de registros dentro de los segmentos de la partición (e.j. almacenar los segmentos de la partición (e.j. almacenar hechos para un mes juntos)hechos para un mes juntos)

ProcesamientoProcesamientoReduce el consumo de memoria en el Reduce el consumo de memoria en el procesamiento de la dimensión – menos tablas procesamiento de la dimensión – menos tablas hash en memoriahash en memoria

Permite que las grandes dimensiones superen la Permite que las grandes dimensiones superen la barrera de 32-bitsbarrera de 32-bits

Mejora la velocidad de procesamiento de Mejora la velocidad de procesamiento de dimensiones y particionesdimensiones y particiones

Page 21: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Rendimiento de ConsultasRendimiento de ConsultasAcceso al almacenamiento de la dimensión es más Acceso al almacenamiento de la dimensión es más rápidorápidoProduce planes de ejecución más óptimoProduce planes de ejecución más óptimo

Diseño de AgregaciónDiseño de AgregaciónPosibilita que el algoritmo de diseño de las Posibilita que el algoritmo de diseño de las agregaciones produzca conjuntos de agregaciones agregaciones produzca conjuntos de agregaciones efectivosefectivos

Seguridad DimensiónSeguridad DimensiónDeniedSet = {Provincia.Madrid} debería denegar DeniedSet = {Provincia.Madrid} debería denegar ciudades y clientes en Madrid – requiere relaciones ciudades y clientes en Madrid – requiere relaciones de atributosde atributos

Propiedades de MiembroPropiedades de MiembroLas relaciones de atributo identifican las Las relaciones de atributo identifican las propiedades de los miembros en los nivelespropiedades de los miembros en los niveles

Page 22: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Crear una relación es sencillo, pero…Crear una relación es sencillo, pero…Atención a los campos clave!Atención a los campos clave!Debemos de asegurarnos que cada atributo Debemos de asegurarnos que cada atributo tiene campos clave únicos (añade claves tiene campos clave únicos (añade claves compuestas si es necesario)compuestas si es necesario)

Debe de existir una relación 1:M entre los Debe de existir una relación 1:M entre los campos clave de los dos atributoscampos clave de los dos atributosCampos clave no válidos causan que un Campos clave no válidos causan que un miembro tenga múltiples padresmiembro tenga múltiples padres

EL procesamiento de la dimensión seleccionará EL procesamiento de la dimensión seleccionará un padre aleatoriamente un padre aleatoriamente La Jerarquía puede ser erróneaLa Jerarquía puede ser errónea

Page 23: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

No olvides eliminar relaciones No olvides eliminar relaciones redundantes!redundantes!

Todos los atributos comienzan con Todos los atributos comienzan con relaciones con la claverelaciones con la clave

Cliente Cliente Ciudad Ciudad Provincia Provincia País PaísCliente Cliente Provincia (redundante) Provincia (redundante)

Cliente Cliente País (redundante) País (redundante)

Page 24: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, Día, Semana, Mes, Trimestre, AñoAño

Año: 2003 a 2010Año: 2003 a 2010

Trimestre: 1 a 4Trimestre: 1 a 4

Mes: 1 a 12Mes: 1 a 12

Semana: 1 a 52Semana: 1 a 52

Día: 20030101 a 20101231Día: 20030101 a 20101231

Día

Semana

Mes

Trimestre

Año

Page 25: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año

Año: 2003 a 2010Año: 2003 a 2010Trimestre: 1 a 4 – Trimestre: 1 a 4 – Campos clave (Año, Trimestre)Campos clave (Año, Trimestre)

Mes: 1 a 12Mes: 1 a 12

Semana: 1 a 52Semana: 1 a 52

Día: 20030101 a 20101231Día: 20030101 a 20101231Día

Semana

Mes

Trimestre

Año

Page 26: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año

Año: 2003 a 2010Año: 2003 a 2010

Trimestre: 1 a 4Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Campos Clave(Año, Trimestre)

Mes: 1 a 12Mes: 1 a 12 Campos Clave(Año,Mes) Campos Clave(Año,Mes)

Semana: 1 a 52Semana: 1 a 52

Día: 20030101 a 20101231Día: 20030101 a 20101231Día

Semana

Mes

Trimestre

Año

Page 27: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año

Año: 2003 a 2010Año: 2003 a 2010

Trimestre: 1 a 4Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Campos Clave(Año, Trimestre)

Mes: 1 a 12Mes: 1 a 12 Campos Clave(Año,Mes) Campos Clave(Año,Mes)

Semana: 1 a 52 Semana: 1 a 52 Campos Clave (Año,Semana)Campos Clave (Año,Semana)

Día: 20030101 a 20101231Día: 20030101 a 20101231

Día

Semana

Mes

Trimestre

Año

Page 28: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft
Page 29: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Jerarquías de AtributosJerarquías de AtributosRutas de Navegación predefinidasRutas de Navegación predefinidas

Definidas por los atributosDefinidas por los atributos

Posibilitan la navegación ad hocPosibilitan la navegación ad hoc

Por qué crear más?Por qué crear más?Guiar a los usuarios finales por rutas de Guiar a los usuarios finales por rutas de interésinterésMuchas herramientas de cliente existentes Muchas herramientas de cliente existentes no soportan las jerarquías de atributono soportan las jerarquías de atributoRendimientoRendimiento

Optimizar las rutas de navegación en tiempo de procesamientoOptimizar las rutas de navegación en tiempo de procesamientoMaterialización del árbol de jerarquía en discoMaterialización del árbol de jerarquía en discoEl diseñador de agregaciones favorece las jerarquías definidas El diseñador de agregaciones favorece las jerarquías definidas por el usuariopor el usuario

Page 30: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Relación 1:M (a través de relaciones de Relación 1:M (a través de relaciones de atributos) entre cada par de niveles atributos) entre cada par de niveles adyacentesadyacentes

Ejemplos:Ejemplos:País-Provincia-Ciudad-Cliente (natural)País-Provincia-Ciudad-Cliente (natural)

País-Ciudad (natural)País-Ciudad (natural)

Provincia-Cliente (natural)Provincia-Cliente (natural)

Edad-Sexo-Cliente (no-natural)Edad-Sexo-Cliente (no-natural)

Año-Trimestre-Mes (depende de los campos Año-Trimestre-Mes (depende de los campos clave)clave)

¿Cuántos trimestres y meses?¿Cuántos trimestres y meses?

4 y 12 a través de todos los años (no-natural)4 y 12 a través de todos los años (no-natural)

4 y 12 para cada año (natural)4 y 12 para cada año (natural)

Page 31: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Implicaciones de RendimientoImplicaciones de RendimientoSolo las jerarquías naturales se materializan Solo las jerarquías naturales se materializan en disco durante el procesamientoen disco durante el procesamiento

Las jerarquías no naturales se construyen al Las jerarquías no naturales se construyen al vuelo durante las consultas (se cachean en vuelo durante las consultas (se cachean en memoria)memoria)

El Servidor descompone internamente las El Servidor descompone internamente las jerarquías no naturales en componentes jerarquías no naturales en componentes naturalesnaturales

Opera esencialmente como una ruta de navegación ad hoc (pero Opera esencialmente como una ruta de navegación ad hoc (pero algo mejor)algo mejor)

Crear jerarquías naturales donde sea Crear jerarquías naturales donde sea posibleposible

Usando relaciones de atributosUsando relaciones de atributos

No siempre es lo apropiado (e.j. Edad-Sexo)No siempre es lo apropiado (e.j. Edad-Sexo)

Page 32: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

DimensionesDimensionesConsolidar múltiples jerarquías en una única Consolidar múltiples jerarquías en una única dimensión (A no ser que estén relacionadas a través dimensión (A no ser que estén relacionadas a través de la tabla de hechos)de la tabla de hechos)Evitar el modo de almacenamiento ROLAP si el Evitar el modo de almacenamiento ROLAP si el rendimiento es una claverendimiento es una claveUsar dimensiones “role playing” (e.j. FechaPedido, Usar dimensiones “role playing” (e.j. FechaPedido, FechaFactura, FechaEntrega) – evita múltiples copias FechaFactura, FechaEntrega) – evita múltiples copias físicasfísicasUsar las dimensiones padre-hijo prudentementeUsar las dimensiones padre-hijo prudentemente

No hay soporte para un nivel de agregación intermedioNo hay soporte para un nivel de agregación intermedio

Usar dimensiones varios-a-varios prudentementeUsar dimensiones varios-a-varios prudentementeMás lentas que las dimensiones regulares, pero más rápidas que Más lentas que las dimensiones regulares, pero más rápidas que los cálculoslos cálculosGrupo de medidas intermedio debe de ser “pequeño” en relación Grupo de medidas intermedio debe de ser “pequeño” en relación con el grupo de medidas primariocon el grupo de medidas primario

Page 33: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

AtributosAtributosDefinir todas las relaciones de atributo posibles!Definir todas las relaciones de atributo posibles!Marcar las relaciones de atributo como rígidas Marcar las relaciones de atributo como rígidas cuando sea posiblecuando sea posibleUsar campos clave de tipo integer (o numérico)Usar campos clave de tipo integer (o numérico)Configurar la propiedad AttributeHierarchyEnabled Configurar la propiedad AttributeHierarchyEnabled a falso en atributos no usados para navegación a falso en atributos no usados para navegación (e.j. Telf., Dirección)(e.j. Telf., Dirección)Configurar AttributeHierarchyOptimizedState a Configurar AttributeHierarchyOptimizedState a NotOptimized para atributos no usados NotOptimized para atributos no usados frecuentementefrecuentementeConfigurar AttributeHierarchyOrdered a falso si el Configurar AttributeHierarchyOrdered a falso si el orden de los miembros no es importanteorden de los miembros no es importante

JerarquíasJerarquíasUsar jerarquías naturales donde sea posibleUsar jerarquías naturales donde sea posible

Page 34: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

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

Usar funciones de agregado semi-aditivas e Usar funciones de agregado semi-aditivas e lugar de cálculos MDX para conseguir el lugar de cálculos MDX para conseguir el mismo comportamientomismo comportamiento

Poner medidas distinct count en un grupo Poner medidas distinct count en un grupo de medidas separado (BIDS lo hace de medidas separado (BIDS lo hace automáticamente)automáticamente)

Evitar el uso de campos de tipo string para Evitar el uso de campos de tipo string para medidas distinct countmedidas distinct count

Page 35: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM

Optimizar el Diseño de CuboOptimizar el Diseño de Cubo

Particionado y AgregacionesParticionado y Agregaciones

ProcesamientoProcesamiento

Consultas y CálculosConsultas y Cálculos

ConclusiónConclusión

Page 36: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

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

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

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

Podemos implementar un escenario de ventana de Podemos implementar un escenario de ventana de forma muy sencillaforma muy sencilla

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

Las particiones pueden tener diferentes Las particiones pueden tener diferentes configuraciones de almacenamientoconfiguraciones de almacenamiento

Necesitamos la versión Enterprise!

Page 37: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Las particiones pueden procesarse y Las particiones pueden procesarse y consultarse en paraleloconsultarse en paralelo

Mejor utilización de recursos de servidorMejor utilización de recursos de servidor

Reducimos los tiempos de cargaReducimos los tiempos de carga

Consultas se aíslan a particiones Consultas se aíslan a particiones relevantesrelevantes menos datos que revisar menos datos que revisar

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

Consulta solo particiones de 2006Consulta solo particiones de 2006

Lo EsencialLo Esencial Las particiones posibilitan: Las particiones posibilitan:AdministraciónAdministración

RendimientoRendimiento

EscalabilidadEscalabilidad

Page 38: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

No más de 20M de filas por particiónNo más de 20M de filas por particiónEspecificar el corte de la particiónEspecificar el corte de la partición

Opcional para MOLAP – servidor auto-detecta y Opcional para MOLAP – servidor auto-detecta y valida contra la especificada por el usuario (si valida contra la especificada por el usuario (si existe)existe)Debemos especificarla para ROLAPDebemos especificarla para ROLAP

Administrar las configuraciones de Administrar las configuraciones de almacenamiento utilizando patronesalmacenamiento utilizando patrones

Frecuentemente Consultadas Frecuentemente Consultadas MOLAP con MOLAP con muchas agregacionesmuchas agregacionesConsultadas Periódicamente Consultadas Periódicamente MOLAP con menos MOLAP con menos agregaciones o sin ellasagregaciones o sin ellasHistórico Histórico ROLAP sin agregaciones ROLAP sin agregaciones

Discos diferentes - usar múltiples Discos diferentes - usar múltiples controladores para evitar contención I/O controladores para evitar contención I/O

Page 39: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Definir todas las relaciones de atributo Definir todas las relaciones de atributo posiblesposibles

Propiedad AggregationUsage para guiar Propiedad AggregationUsage para guiar al diseñador de agregacionesal diseñador de agregaciones

Atributos menos utilizados NoneAtributos menos utilizados None

Atributos más utilizados UnrestrictedAtributos más utilizados Unrestricted

No crear demasiadas agregacionesNo crear demasiadas agregacionesSobre los 100s, no en los 1000s!Sobre los 100s, no en los 1000s!

No crear agregaciones más allá del 30% No crear agregaciones más allá del 30% del tamaño de la tabla de hechosdel tamaño de la tabla de hechos

Page 40: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Ciclo diseño de agregacionesCiclo diseño de agregacionesUsar asistente de diseño de Usar asistente de diseño de almacenamiento (~20% mejora almacenamiento (~20% mejora rendimiento) para el diseño inicial de rendimiento) para el diseño inicial de agregacionesagregacionesHabilitar el registro de consultas y ejecutar Habilitar el registro de consultas y ejecutar cargas de trabajo (pruebas con conjunto cargas de trabajo (pruebas con conjunto limitado de usuarios)limitado de usuarios)Usar el Asistente de Optimización basado en Usar el Asistente de Optimización basado en el uso para refinar agregadosel uso para refinar agregadosMayor ganancia de rendimiento (70-80%)Mayor ganancia de rendimiento (70-80%)Reprocesar nuevos agregadosReprocesar nuevos agregadosUsar el asistente periódicamenteUsar el asistente periódicamente

Page 41: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM

Optimizar el Diseño de CuboOptimizar el Diseño de Cubo

Particionado y AgregacionesParticionado y Agregaciones

ProcesamientoProcesamiento

Consultas y CálculosConsultas y Cálculos

ConclusiónConclusión

Page 42: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Optimización de Rendimiento de SQL ServerMejorar las consultas utilizadas para extraer datos

Comprobar los planes de ejecución e índicesRealizar un proceso normal de optimización

Mejoras de Procesamiento de ASUsa 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:Maximizar el número de conexiones de orígenes de datosMaxParallel – 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

Page 43: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Para un mejor rendimiento usar ASCMD.EXE y XMLA

Usar <Parallel> </Parallel> para agrupar tareas de procesamientoUso 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

Page 44: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Procesado de ParticiónProcesado de ParticiónMonitorizar el uso de espacio temporal durante Monitorizar el uso de espacio temporal durante el procesamiento (contadores de monitor de el procesamiento (contadores de monitor de rendimiento para archivos temporales)rendimiento para archivos temporales)

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

Periódicamente procesar completamente las Periódicamente procesar completamente las particionesparticiones

Consigue una mejor compresión frente al procesado Consigue una mejor compresión frente al procesado incrementalincremental

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

Page 45: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM

Optimizar el Diseño de CuboOptimizar el Diseño de Cubo

Particionado y AgregacionesParticionado y Agregaciones

ProcesamientoProcesamiento

Consultas y CálculosConsultas y Cálculos

ConclusiónConclusión

Page 46: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

La mayoría de las herramientas cliente (Excel, La mayoría de las herramientas cliente (Excel, Proclarity) muestran las celdas vacías – Proclarity) muestran las celdas vacías – eliminar miembros sin datoseliminar miembros sin datosSin cálculos, non empty es más rápido – solo Sin cálculos, non empty es más rápido – solo chequea datos de hechos.chequea datos de hechos.Con cálculos, non empty puede ser más lento – Con cálculos, non empty puede ser más lento – requiere evaluar la fórmula para cada celdarequiere evaluar la fórmula para cada celdaNon_Empty_Behavior permite non empty en Non_Empty_Behavior permite non empty en cálculos solo para chequear los datos de cálculos solo para chequear los datos de hechoshechos

Nota: query processing hint – usar con cuidado!Nota: query processing hint – usar con cuidado!Create Member [Measures].[Internet Gross Profit]Create Member [Measures].[Internet Gross Profit] AAss[Internet Sales Amount][Internet Sales Amount] -- [Internet Total Cost],[Internet Total Cost],Format_String = "Currency",Format_String = "Currency",Non_Empty_Behavior =Non_Empty_Behavior = [Internet Sales Amount][Internet Sales Amount];;

Page 47: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Atributos/ Jerarquías dentro de una Atributos/ Jerarquías dentro de una dimensión siempre están juntosdimensión siempre están juntos

City.Seattle * State.Members returns {(Seattle, City.Seattle * State.Members returns {(Seattle, WA)}WA)}

(Seattle, OR), (Seattle, CA) do not “exist”(Seattle, OR), (Seattle, CA) do not “exist”

Explotar el poder de auto-existsExplotar el poder de auto-existsUsar Exists/CrossJoin en lugar de .Properties – es Usar Exists/CrossJoin en lugar de .Properties – es más rápidomás rápido

Requiere jerarquía de atributo habilitada en la Requiere jerarquía de atributo habilitada en la propiedad miembropropiedad miembroFilter(Customer.Members,Filter(Customer.Members,

Customer.CurrentMember.Properties(“Gender”) = “Male”)Customer.CurrentMember.Properties(“Gender”) = “Male”)

Exists(Customer.Members, Gender.[Male])Exists(Customer.Members, Gender.[Male])

Page 48: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Usar ámbitos en lugar de condiciones como Iif/CaseUsar ámbitos en lugar de condiciones como Iif/CaseÁmbitos se evalúan una vez estáticamenteÁmbitos se evalúan una vez estáticamente

Condiciones se evalúan dinámicamente para cada celdaCondiciones se evalúan dinámicamente para cada celda

Intentar forzar siempre que una de las ramas sea nulaIntentar forzar siempre que una de las ramas sea nula

Create Member Measures.Create Member Measures.Sales Sales AAss 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;Create Member Measures.Sales As Null;Scope(Measures.Sales, Currency.Members);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;End Scope;

Page 49: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

Usar miembros calculados en lugar de celdas calculadas Usar miembros calculados en lugar de celdas calculadas cuando sea posiblecuando sea posible

Usar .MemberValue para cálculos en atributos numéricosUsar .MemberValue para cálculos en atributos numéricosFilter(Customer.members, Salary.MemberValue > 100000)Filter(Customer.members, Salary.MemberValue > 100000)

Evitar el uso redundante de .CurrentMember y .ValueEvitar el uso redundante de .CurrentMember y .Value(Tiempo.CurrentMember.PrevMember, (Tiempo.CurrentMember.PrevMember, Measures.CurrentMember ).Value puede reemplazarse por Measures.CurrentMember ).Value puede reemplazarse por Tiempo.PrevMemberTiempo.PrevMember

Evitar LinkMember, StrToSet, StrToMember, StrToValueEvitar LinkMember, StrToSet, StrToMember, StrToValue

Reemplazar cálculos simples por campos calculados en DSVReemplazar cálculos simples por campos calculados en DSVEl cálculo se realiza en tiempo de procesadoEl cálculo se realiza en tiempo de procesado

Más guías:Más guías:Analysis Services Performance Whitepaper: http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SSAS2005PerfGuide.doc

http://sqljunkies.com/weblog/moshahttp://sqljunkies.com/weblog/mosha

http://sqlserveranalysisservices.comhttp://sqlserveranalysisservices.com

Page 50: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

AS2005 es una re-arquitectura de AS2000AS2005 es una re-arquitectura de AS2000

Debemos de diseñar teniendo en mente el Debemos de diseñar teniendo en mente el rendimiento y la escalabilidad desde el principiorendimiento y la escalabilidad desde el principio

Muchos de estos principios vienen de AS2000Muchos de estos principios vienen de AS2000Diseño Dimensional, Particiones, AgregadosDiseño Dimensional, Particiones, Agregados

Muchos nuevos principios en AS2005Muchos nuevos principios en AS2005Relaciones de Atributo, jerarquías naturalesRelaciones de Atributo, jerarquías naturales

Nuevas alternativas de diseño – role playing, varios a Nuevas alternativas de diseño – role playing, varios a varios, dimensiones referenciadas, medidas semi-aditivasvarios, dimensiones referenciadas, medidas semi-aditivas

Opciones de procesamiento flexibleOpciones de procesamiento flexible

MDX scripts, ámbitosMDX scripts, ámbitos

Usa Analysis Services con SQL Server Usa Analysis Services con SQL Server Enterprise Edition para obtener el máximo Enterprise Edition para obtener el máximo rendimiento y escalabilidadrendimiento y escalabilidad

Page 51: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

SSIS

SQL Server Integration Services site http://msdn.microsoft.com/SQL/sqlwarehouse/SSIS/default.aspx

SSIS MSDN Forum: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=80&SiteID=1

SSIS MVP community site: http://www.sqlis.com

SSAS

BLOGS: http://blogs.msdn.com/sqlcatPROJECT REAL-Business Intelligence in PracticeAnalysis Services Performance GuideTechNet: Analysis Services for IT Professionals

Microsoft BI

SQL Server Business Intelligence public site: http://www.microsoft.com/sql/evaluation/bi/default.asp

http://www.microsoft.com/bi

Page 52: High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson grantdi@microsoft.com Program Manager, SQL Server Integration Services Microsoft

© 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.