SlideShare una empresa de Scribd logo
1 de 48
Introducción a Multidimensional 
Expressions (MDX) 
Libera el poder total de Analysis Services Multidimensional 
Alan Koo Labrín 
Senior Consultant | Nagnoi, LLC. 
MVP | MCSE Business Intelligence 
www.alankoo.com | @alan_koo | Facebook.com/MicrosoftBIyMas
Gracias a nuestros auspiciadores 
Database Security as Easy as A-B-C 
http://www.greensql.com 
Hardcore Developer and IT 
Training 
http://www.pluralsight.com 
SQL Server Performance 
Try PlanExplorer today! 
http://www.sqlsentry.com
Próximos SQL Saturday 
6 de Diciembre de 2014 
https://www.sqlsaturday.com/351/register.aspx 
24 de Enero de 2015 
https://www.sqlsaturday.com/346/register.aspx 
18 de Abril de 2015 
https://www.sqlsaturday.com/368/register.aspx 
9 de Mayo de 2015 
https://www.sqlsaturday.com/373/register.aspx
Capítulo Global PASS en Español 
4 
4 
Reuniones semanales todos los miércoles a 
las 12PM UTC-5 (Hora de Colombia) 
https://www.facebook.com/SpanishPASSVC
5 
Asistencia Técnica 
Si requiere asistencia 
durante la sesión debe 
usar la sección de 
preguntas que esta en el 
menú de la derecha. 
Use el botón de Zoom 
para ajustar su pantalla 
al tamaño deseado 
Escriba sus preguntas 
en la sección de 
preguntas que esta en el 
menú de la derecha
6 
Alan Koo 
Alan Koo cuenta con más de 13 años de experiencia, diseñando y 
desarrollando soluciones orientadas a incrementar el desempeño de los 
negocios, tanto en sector público y privado. Debido sus contribuciones y 
liderazgo en la comunidad técnica, fue reconocido como Microsoft MVP en el 
2014 ya por 5ta vez. Actualmente se desempeña como Consultor Sénior y líder 
técnico de la Práctica de Performance Management y Business Intelligence en 
Nagnoi, LLC. Co-fundador de PRPASS y actual PASS LATAM Regional Mentor, 
mantiene su blog "Microsoft Business Intelligence y más..." 
(http://www.alankoo.com). 
6
7 
Agenda 
 Multidimensional Expressions (MDX) 
 Escenarios de uso 
 Fundamentos: ¿Dónde estamos? 
 Sintaxis y ejemplos 
 Demos, demos, demos,… y más demos! 
7
8 
Mi experiencia 
 Senior Consultant en Nagnoi, LLC. 
 14+ años en SQL Server 
 9+ years en BI & OLAP 
 Microsoft MVP (5th year) 
 Miembro del equipo Microsoft BI Advisors 
 MCT Regional Lead – Puerto Rico 
 MCT Alumni BI / SQL Server / .NET 
 Co-Founder de Puerto Rico PASS 
 PASS Regional Mentor - LATAM 
 Blogger: www.alankoo.com 
8
Qué es MDX (Muldimensional Expressions) 
• Una base de datos multidimensional (Cubos OLAP), es un método para almacenar datos de 
forma multidimensional, generalmente para propósitos de reporte. 
• MDX es un lenguaje de consultas para bases de datos OLAP, análogo a SQL como lenguaje 
de consulta para bases de datos relacionales. 
• Use consultas MDX para obtener datos almacenados en un cubo de SQL Server Analysis 
9 
Services. 
• Devuelve un conjunto de resultados (dataset) multidimensional que consiste de data de 
celdas y data de ejes. 
• Originalmente desarrollado por Microsoft (finales de los 90’s). 
• Adoptado por muchos otros fabricantes de bases de datos multidimensionales. 
9
10 
Escenarios de uso 
• Herramientas de inteligencia de negocios 
• Excel Pivot Tables 
• Reporting Services 
• PerformancePoint Services (Sharepoint) 
• Power View 
• Power Query 
• Herramientas de terceros 
• Tableau 
• Business Objects 
• Integración con aplicaciones Web o Windows 
• ADOMD.NET 
10
Conceptos Fundamentales 
Introducción a MDX 
11
Adventure Works Sample Database 
12
13 
Adventure Works Cube 
• Dimensiones (dimensiones) 
• Medidas (measures) 
• Grupo de Medidas (measure groups) 
• 11 Measure Groups 
• 21Dimensions 
13
14 
¿Dónde estamos? 
• Dimensiones 
• Date 
• Product 
• Customer 
• Jerarquías 
• Calendar (Date) 
• Product Line (Product) 
• Country (Customer) 
14 
3 niveles: 
Year, Semester, Quarter 
2 niveles: 
All, Country 
2 niveles: 
All, Product Line
¿Dónde estamos? Members 
15 
• Los items contenidos dentro de 
cada jerarquía de una dimension 
• Ej. Jerarquía Calendar: 
15 
• 2004 
• H1 CY 2004 
• Q1 CY 2004 
• Q2 CY 2004 
• Q3 CY 2004 
• Q4 CY 2004 
• H2 CY 2004 
• Ej. Nivel Calendar Quarter: 
• Q1 CY 2004 
• Q2 CY 2004 
• Q3 CY 2004 
• Q4 CY 2004
16 
Identificadores 
• El nombre de un objeto en Analysis Services 
• Cubos, dimensiones, jerarquías (hierarchies), niveles (levels), etc. 
• Por defecto: 
• [Nombre de Dimensión].[Nombre de Jerarquía].[Nombre de Nivel].[Nombre de Miembro] 
• Usando la llave (key) del miembro: 
• [Nombre de Dimensión].[Nombre de Jerarquía].&[Llave del Miembro] 
16
¿Dónde estamos? Members 
[Date].[Calendar].[Q1 CY 2004] 
17 
• Ej. Jerarquía Calendar: 
17 
• 2004 
• H1 CY 2004 
• Q1 CY 2004 
• Q2 CY 2004 
• Q3 CY 2004 
• Q4 CY 2004 
• H2 CY 2004 
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2004] 
[Date].[Calendar].[CY 2004].[H1 CY 2004].][Q1 CY 2004] 
[Date].[Calendar].[Calendar Quarter].&[2004]&[1]
18 
¿Dónde estamos? Celdas 
 Un lugar en el cubo 
18 
 Data pertinente a una intersección 
de miembros 
 Contiene medidas 
 Identificada por los miembros de 
una dimensión 
Celda 
Cantidad 1,134 
X * Y * Z 
Product * Quarter * Country 
4 * 4 * 6 = 96 celdas
19 
¿Dónde estamos? Tuplas 
 Identifica una cela o sección 
19 
de un cubo 
 Representada por un miembro 
de cada dimensión 
 Separados por comas, 
delimitados por paréntesis 
Celda 
Cantidad 1,134 
([Product].[Product Line].[Accesories], 
[Date].[Calendar].[Calendar Quarter].&[2003].&[4], 
[Customer].[Country].[Australia])
20 
¿Dónde estamos? Tuplas 
 No tiene tener que 
20 
explícitamente tener miembros 
de todas las dimensiones 
Tuple 
1. ([Customer].[Country].[Australia]) 
2. ([Date].[Calendar].[2004].[H1 CY 2004]. 
[Q1 CY 2004], 
[Customer].[Country].[Australia]) 
3. ([Date].[Calendar].[2004].[H1 CY 2004]. 
[Q1 CY 2004], 
([Product].[Product Line].[Mountain], 
[Customer].[Country].[Australia]) 
Tuple 
Tuple
¿Dónde estamos? Conjuntos (Sets) 
{Customer.CCoouunnttrryy..AAuussttrraalliiaa,, [[PPrroodduucctt]]..[[PPrroodduucctt LLiinnee]]..[[MMoouunnttaaiinn]]}} 
21 
• Colección de tuplas 
definidas usando las 
misma dimensiones (en 
tipo y número) 
• Delimitada por llaves {} 
21 
{(Customer.Country.Australia), (Customer.Country.Canada)} 
{ 
([Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2002], 
[Product].[Product Line].[Mountain], 
[Customer].[Country].[Australia]), 
([Customer].[Country].[Australia], 
[Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2003], 
[Product].[Product Line].[Mountain]), 
([Customer].[Country].[Australia], 
[Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2004], 
[Product].[Product Line].[Mountain]) 
} 
{ }
Consultas MDX 
Más allá de los Pivot Tables 
22
Sintaxis básica de una consulta 
• Se usa para devolver un subconjunto de la data multidimensional de un 
23 
servidor OLAP 
[ WITH <formula_expression> [ , <formula_expression> ... ] ] 
SELECT [<axis_expression>, [<axis_expression> ... ]] 
FROM [<cube_expression>] 
[WHERE [slicer_expression]] 
• Ejes (Axis): Hasta 128 ejes, los 5 primeros tienen alias (COLUMN, ROWS, 
PAGES, SECTIONS, CHAPTERS) 
23
24 
Miembros Calculados 
• Cálculos especificados por expresiones MDX 
• Resuelto después de la evaluación de la expresión (en lugar de traer la data 
original de las tablas de hechos) 
24 
WITH MEMBER [Measures].[Profit] AS 
'[Measures].[Internet Sales Amount] - [Measures].[Internet Total Product Cost]' 
SELECT … 
WITH MEMBER Measures.[Cumulative Sales] AS 
'SUM(YTD(), [Measures].[Internet Sales Amount]) ' 
SELECT …
25 
Expresiones 
• Sentencias parciales de MDX que se evalúan a un valor 
• Combinación de identificadores, valores y operadores que Analysis Services 
puede evaluar para obtener un resultado 
• Usamos las expresiones como parte de los datos a ser devueltos por una 
consulta o como una condición de búsqueda de acuerdo a un criterio 
25
Expresiones a nivel de Dimensión 
Typically used when passing parameters to functions in Multidimensional 
Expressions (MDX) to return members, sets, or tuples from a hierarchy. 
26 
26 
WITH MEMBER [Measures].[MeasureCount] AS 
COUNT([Measures].MEMBERS) 
…
Expresiones a nivel de Jerarquía (dimensión) 
hierarchy expression contains either a hierarchy identifier or a hierarchy 
function 
• WITH MEMBER [Measures].[CalendarLevelCount] AS 
[Date].[Calendar].Levels.Count 
SELECT [Measures].[CalendarLevelCount] ON 0 
FROM [Adventure Works] 
• SELECT [Measures].[Internet Sales Amount] ON 0, 
27 
[Date].[Calendar].MEMBERS ON 1 
FROM [Adventure Works] 
27
Expresiones a nivel de Tupla (1/2) 
• Made up of one member from every dimension that is contained within a cube 
• Uniquely identifies a single cell within the cube 
(Member_expression [ ,Member_expression ... ] ) 
• Can be fully qualified, can contain implicit members, or can contain a single member 
• Any dimension not explicitly referenced within a tuple is implicitly referenced 
28 
• Tuplas de un solo miembro 
• [Measures].[TestMeasure]  Miembro 
• ( [Measures].[TestMeasure] )  Tupla 
28
Expresiones a nivel de Tupla (2/2) 
• Conjuntos (Sets): Lista ordenada de cero o más tuplas 
• Conjuntos vacios (Empty Set): No contiene tuplas 
{ [ { Tuple_expression | Member_expression } [ , { Tuple_expression | Member_expression } ] ... ] } 
• SELECT {[Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount]} 
ON COLUMNS, 
{ 
([Product].[Product Categories].[Category].&[4], [Date].[Calendar].[Calendar Year].&[2004]), 
([Product].[Product Categories].[Category].&[1], [Date].[Calendar].[Calendar Year].&[2003]), 
([Product].[Product Categories].[Category].&[3], [Date].[Calendar].[Calendar Year].&[2004]) 
} ON ROWS 
FROM [Adventure Works] 
29 
29
Expresiones a nivel de Sub-Cubo 
Puede contener un identificador de sub-cubo o una sentencia MDX que 
devuelva un sub-cubo. 
SELECT [Measures].MEMBERS ON COLUMNS, 
[Date].[Calendar Year].MEMBERS ON ROWS 
FROM (SELECT [Measures].[Internet Sales Amount] ON COLUMNS, 
[Date].[Calendar Year].&[2012] ON ROWS 
FROM [Adventure Works]) 
30 
30
WITH MEMBER Measures.LocationName AS 
[Customer].[Country].CurrentMember.Name 
… 
WITH MEMBER Measures.User AS USERNAME 
… 
31 
Funciones 
• Usadas para operar programáticamente sobre bases de datos 
multidimensionales 
31 
CROSSJOIN ([Product].[Product Line].[Product Line].MEMBERS, 
Customer.Country.Members) ON ROWS 
…
Trabajando con valores Vacíos (empty) 
WITH 
MEMBER [Product].[Category].[All Products].ReturnZero AS 0 
MEMBER MEASURES.ISEMPTYDemo AS 
ISEMPTY([Measures].[Internet Tax Amount]) 
MEASURES.ISEMPTYDemo, MEASURES.IsZero} ON COLUMNS, 
[Product].[Category].[Category].ALLMEMBERS ON ROWS 
FROM [Adventure Works] 
WHERE [Date].[Calendar].[Calendar Year].&[2012] 
32 
//Will true for any null or zero value 
MEMBER MEASURES.IsZero AS 
[Measures].[Internet Tax Amount]=0 
SELECT {[Measures].[Internet Tax Amount], 
32
SELECT {[Measures].[Internet Tax Amount]} ON COLUMNS, 
NON EMPTY [Product].[Category].[Category].MEMBERS ON ROWS 
FROM [Adventure Works] 
WHERE([Date].[Calendar].[Calendar Year].&[2012]) 
33 
NON EMPTY 
33
WITH MEMBER MEASURES.CategoryCount AS 
COUNT([Product].[Category].[Category].MEMBERS) 
MEMBER MEASURES.NonEmptyCategoryCountFor2012 AS 
COUNT( 
NONEMPTY( [Product].[Category].[Category].MEMBERS , 
([Date].[Calendar].[Calendar Year].&[2012], [Measures].[Internet Tax Amount]) 
) 
34 
Fundamentos: NonEmpty 
34 
) 
SELECT {MEASURES.CategoryCount, MEASURES.NonEmptyCategoryCountFor2012 } 
ON COLUMNS 
FROM [Adventure Works];
Funciones y más funciones 
Más allá de los Pivot Tables 
35
Categoría Descripción 
Array functions Provide arrays for use in stored procedures 
Dimension functions Return a reference to a dimension from a hierarchy, level, or member. 
Hierarchy functions Return a reference to a hierarchy from a level or member. 
Level functions Return a reference to a level from a member, dimension, hierarchy, or 
36 
Funciones (Sintaxis MDX) 
36 
from a string expression. 
Logical functions Perform logical operations and comparisons on objects and 
expressions. 
Member functions Return a reference to a member from other objects or from a string 
expression. 
Numeric functions Perform mathematical and statistical functions on objects and 
expressions. 
Set functions Return a reference to a set from other objects or from a string 
expression. 
String functions Return string values from other objects or from the server. 
Tuple functions Return a reference to a tuple from a set or from a string expression.
Funciones de Cadena (String) 
[Product].[Product].CurrentMember.Name 
MEMBER [Measures].[ProductUniqueName] AS 
[Product].[Product].CurrentMember.Uniquename 
MEMBER [Measures].[ProductDimensionName] AS 
SELECT {[Measures].[ProductName], [Measures].[ProductUniqueName], 
[Measures].[ProductDimensionName]} ON COLUMNS, 
[Product].[Product].MEMBERS ON ROWS 
37 
WITH 
MEMBER [Measures].[ProductName] AS 
[Product].Name 
FROM [Adventure Works] ; 
37
Funciones de Cadena (String) 
SELECT {STRTOMEMBER("[Measures].[Inter" + "net Sales Amount]")} ON COLUMNS, 
STRTOSET("{ 
[Product].[Product Categories].[Category].&[3], 
[Product].[Product Categories].[Product].&[477], 
[Product].[Product Categories].[Product].&[788], 
[Product].[Product Categories].[Product].&[708], 
[Product].[Product Categories].[Product].&[711] 
}") ON ROWS 
38 
FROM [Adventure Works]; 
38
IsLeaf([Date].[Calendar].CurrentMember) 
MEMBER MEASURES.[IsAncestorDemo] AS 
IsAncestor([Date].[Calendar].CurrentMember, 
[Date].[Calendar].[Date].&[1]) 
SELECT {MEASURES.[IsLeafDemo], MEASURES.[IsAncestorDemo] } ON 0, 
[Date].[Calendar].MEMBERS ON 1 
39 
Funciones Lógicas 
WITH 
MEMBER MEASURES.[IsLeafDemo] AS 
FROM [Adventure Works]; 
39
Funciones a nivel de Miembro 
[Date].[Calendar].CurrentMember.Parent.Name 
ANCESTOR([Date].[Calendar].CurrentMember, [Date].[Calendar].[Calendar Year]).Name 
[Date].[Calendar].CurrentMember.Prevmember.Name 
SELECT {MEASURES.[CurrentMemberDemo], MEASURES.[ParentDemo], 
MEASURES.[AncestorDemo], MEASURES.[PrevMemberDemo] } ON 0, 
40 
WITH 
MEMBER MEASURES.[CurrentMemberDemo] AS 
[Date].[Calendar].CurrentMember.Name 
MEMBER MEASURES.[ParentDemo] AS 
MEMBER MEASURES.[AncestorDemo] AS 
MEMBER MEASURES.[PrevMemberDemo] AS 
[Date].[Calendar].MEMBERS ON 1 
FROM [Adventure Works]; 
40
Funciones a nivel de Miembro: ParallelPeriod 
41 
41 
january 
february 
march 
april 
may 
june 
july 
august 
september 
october 
november 
december 
Quarter 1 
Quarter 2 
Quarter 3 
Quarter 4 
Semester 1 
Semester 2 
ParallelPeriod([Quarter, 1, April]) 
ParallelPeriod([Quarter, -2, April])
Funciones a nivel de Conjunto (Set): Descendants 
SELECT [Measures].[Internet Sales Amount] ON Columns, 
DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2011] , 
[Date].[Calendar].[Date]) ON Rows 
42 
FROM [Adventure Works]; 
42
Funciones a nivel de Conjunto (Set): Order 
SELECT [Measures].[Internet Sales Amount] ON Columns, 
ORDER( 
DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2012] 
43 
43 
, 
[Date].[Calendar].[Date]) , 
[Measures].[Internet Sales Amount], BDESC 
) ON ROWS 
FROM [Adventure Works] ;
Funciones a nivel de Conjunto (Set): Filter 
SELECT [Measures].[Internet Sales Amount] ON Columns, 
44 
44 
FILTER( 
DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2010] , 
[Date].[Calendar].[Date]) 
, [Measures].[Internet Sales Amount]>10000 
) ON Rows 
FROM [Adventure Works]
Preguntas?
Referencias
¡Gracias! 
Alan Koo 
Senior Consultant | Nagnoi, LLC. 
Blog: www.alankoo.com 
Twitter: @alan_koo 
facebook.com/MicrosofBIyMas
Gracias por participar

Más contenido relacionado

Similar a 24 HOP edición Español - Introduccion a multidimensional expressions (mdx) en analysis services multidimensional- - Alan Koo

Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Raul Martin Sarachaga Diaz
 
Data analysis for startups
Data analysis for startupsData analysis for startups
Data analysis for startupsRestorando
 
Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Eduardo Castro
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerSpanishPASSVC
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014SpanishPASSVC
 
Curso de SQL y EXCEL IMPORTANTE PARA .pdf
Curso de SQL y EXCEL IMPORTANTE PARA .pdfCurso de SQL y EXCEL IMPORTANTE PARA .pdf
Curso de SQL y EXCEL IMPORTANTE PARA .pdfexpertoleonelmartine
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalEnrique Catala Bañuls
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014SolidQ
 
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique CatalaSpanishPASSVC
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBASpanishPASSVC
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Enrique Puig
 
Brouchure SQL SERVER en la actualidad y sus aplicaciones
Brouchure SQL SERVER en la actualidad y sus aplicacionesBrouchure SQL SERVER en la actualidad y sus aplicaciones
Brouchure SQL SERVER en la actualidad y sus aplicacioneserikwsuarezmaciel
 
Sql tuning without trying arup nanda ls
Sql tuning without trying   arup nanda lsSql tuning without trying   arup nanda ls
Sql tuning without trying arup nanda lsCJava Peru
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLSpanishPASSVC
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000Salvador Ramos
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceMarco Tulio Gómez Reyes
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Luis775803
 
Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Salvador Ramos
 
Cuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesCuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesSpanishPASSVC
 

Similar a 24 HOP edición Español - Introduccion a multidimensional expressions (mdx) en analysis services multidimensional- - Alan Koo (20)

Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016
 
Data analysis for startups
Data analysis for startupsData analysis for startups
Data analysis for startups
 
Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012
 
Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL Server
 
Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014Indices Columnares en SQL Server 2014
Indices Columnares en SQL Server 2014
 
Curso de SQL y EXCEL IMPORTANTE PARA .pdf
Curso de SQL y EXCEL IMPORTANTE PARA .pdfCurso de SQL y EXCEL IMPORTANTE PARA .pdf
Curso de SQL y EXCEL IMPORTANTE PARA .pdf
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
Novedades deSQL Server 2014 en Motor Relacional | SolidQ Summit 2014
 
Ciclo de vida de la inteligencia de negocios
Ciclo de vida de la inteligencia de negociosCiclo de vida de la inteligencia de negocios
Ciclo de vida de la inteligencia de negocios
 
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
24 HOP edición Español - Planes de ejecución en sql server 2014 - Enrique Catala
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
 
Brouchure SQL SERVER en la actualidad y sus aplicaciones
Brouchure SQL SERVER en la actualidad y sus aplicacionesBrouchure SQL SERVER en la actualidad y sus aplicaciones
Brouchure SQL SERVER en la actualidad y sus aplicaciones
 
Sql tuning without trying arup nanda ls
Sql tuning without trying   arup nanda lsSql tuning without trying   arup nanda ls
Sql tuning without trying arup nanda ls
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQL
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes Performance
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008Resumen de nuevas caracteriscitas de sql server 2008
Resumen de nuevas caracteriscitas de sql server 2008
 
Cuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partesCuadros de mando el todo es más que la suma de las partes
Cuadros de mando el todo es más que la suma de las partes
 

Más de SpanishPASSVC

Creación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeCreación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeSpanishPASSVC
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IOSpanishPASSVC
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasSpanishPASSVC
 
Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016SpanishPASSVC
 
Mejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalMejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalSpanishPASSVC
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecuciónSpanishPASSVC
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016SpanishPASSVC
 
VMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureVMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureSpanishPASSVC
 
Tecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoTecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoSpanishPASSVC
 
Principios de diseño para procesos de ETL
Principios de diseño para procesos de ETLPrincipios de diseño para procesos de ETL
Principios de diseño para procesos de ETLSpanishPASSVC
 
Planeando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzurePlaneando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzureSpanishPASSVC
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosSpanishPASSVC
 
La receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosLa receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosSpanishPASSVC
 
Introducción a Azure Machine Learning
Introducción a Azure Machine LearningIntroducción a Azure Machine Learning
Introducción a Azure Machine LearningSpanishPASSVC
 
Automatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosAutomatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosSpanishPASSVC
 
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”SpanishPASSVC
 
Administrando soluciones de Power BI
Administrando soluciones de Power BIAdministrando soluciones de Power BI
Administrando soluciones de Power BISpanishPASSVC
 
Vista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoVista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoSpanishPASSVC
 
JSON Support en SQL Server 2016
JSON Support en SQL Server 2016JSON Support en SQL Server 2016
JSON Support en SQL Server 2016SpanishPASSVC
 
SQL Server 2016 - Row Level Security
SQL Server 2016 - Row Level SecuritySQL Server 2016 - Row Level Security
SQL Server 2016 - Row Level SecuritySpanishPASSVC
 

Más de SpanishPASSVC (20)

Creación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nubeCreación de un modelo de análisis predictivo en la nube
Creación de un modelo de análisis predictivo en la nube
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IO
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones Aprendidas
 
Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016Data Science con Microsoft R Server y SQL Server 2016
Data Science con Microsoft R Server y SQL Server 2016
 
Mejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación TransaccionalMejoras de Rendimiento para Replicación Transaccional
Mejoras de Rendimiento para Replicación Transaccional
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecución
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016
 
VMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y AzureVMs de alto rendimiento para SQL Server en AWS y Azure
VMs de alto rendimiento para SQL Server en AWS y Azure
 
Tecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreoTecnicas avanzadas de monitoreo
Tecnicas avanzadas de monitoreo
 
Principios de diseño para procesos de ETL
Principios de diseño para procesos de ETLPrincipios de diseño para procesos de ETL
Principios de diseño para procesos de ETL
 
Planeando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft AzurePlaneando e implementando servicios de datos con Microsoft Azure
Planeando e implementando servicios de datos con Microsoft Azure
 
Mejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizadosMejores prácticas para SQL Server en ambientes virtualizados
Mejores prácticas para SQL Server en ambientes virtualizados
 
La receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datosLa receta de la abuela para mejores cargas de datos
La receta de la abuela para mejores cargas de datos
 
Introducción a Azure Machine Learning
Introducción a Azure Machine LearningIntroducción a Azure Machine Learning
Introducción a Azure Machine Learning
 
Automatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatosAutomatizando la generación de Datawarehouses a través de metadatos
Automatizando la generación de Datawarehouses a través de metadatos
 
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
Descubriendo el corazón de la optimización “Estadísticas más que un concepto”
 
Administrando soluciones de Power BI
Administrando soluciones de Power BIAdministrando soluciones de Power BI
Administrando soluciones de Power BI
 
Vista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan AlvaradoVista 360 grados de DataZen - Juan Alvarado
Vista 360 grados de DataZen - Juan Alvarado
 
JSON Support en SQL Server 2016
JSON Support en SQL Server 2016JSON Support en SQL Server 2016
JSON Support en SQL Server 2016
 
SQL Server 2016 - Row Level Security
SQL Server 2016 - Row Level SecuritySQL Server 2016 - Row Level Security
SQL Server 2016 - Row Level Security
 

Último

LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaJoellyAlejandraRodrg
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffJefersonBazalloCarri1
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticJamithGarcia1
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdfAnaBelindaArmellonHi
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 

Último (20)

LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problema
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffff
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 

24 HOP edición Español - Introduccion a multidimensional expressions (mdx) en analysis services multidimensional- - Alan Koo

  • 1. Introducción a Multidimensional Expressions (MDX) Libera el poder total de Analysis Services Multidimensional Alan Koo Labrín Senior Consultant | Nagnoi, LLC. MVP | MCSE Business Intelligence www.alankoo.com | @alan_koo | Facebook.com/MicrosoftBIyMas
  • 2. Gracias a nuestros auspiciadores Database Security as Easy as A-B-C http://www.greensql.com Hardcore Developer and IT Training http://www.pluralsight.com SQL Server Performance Try PlanExplorer today! http://www.sqlsentry.com
  • 3. Próximos SQL Saturday 6 de Diciembre de 2014 https://www.sqlsaturday.com/351/register.aspx 24 de Enero de 2015 https://www.sqlsaturday.com/346/register.aspx 18 de Abril de 2015 https://www.sqlsaturday.com/368/register.aspx 9 de Mayo de 2015 https://www.sqlsaturday.com/373/register.aspx
  • 4. Capítulo Global PASS en Español 4 4 Reuniones semanales todos los miércoles a las 12PM UTC-5 (Hora de Colombia) https://www.facebook.com/SpanishPASSVC
  • 5. 5 Asistencia Técnica Si requiere asistencia durante la sesión debe usar la sección de preguntas que esta en el menú de la derecha. Use el botón de Zoom para ajustar su pantalla al tamaño deseado Escriba sus preguntas en la sección de preguntas que esta en el menú de la derecha
  • 6. 6 Alan Koo Alan Koo cuenta con más de 13 años de experiencia, diseñando y desarrollando soluciones orientadas a incrementar el desempeño de los negocios, tanto en sector público y privado. Debido sus contribuciones y liderazgo en la comunidad técnica, fue reconocido como Microsoft MVP en el 2014 ya por 5ta vez. Actualmente se desempeña como Consultor Sénior y líder técnico de la Práctica de Performance Management y Business Intelligence en Nagnoi, LLC. Co-fundador de PRPASS y actual PASS LATAM Regional Mentor, mantiene su blog "Microsoft Business Intelligence y más..." (http://www.alankoo.com). 6
  • 7. 7 Agenda  Multidimensional Expressions (MDX)  Escenarios de uso  Fundamentos: ¿Dónde estamos?  Sintaxis y ejemplos  Demos, demos, demos,… y más demos! 7
  • 8. 8 Mi experiencia  Senior Consultant en Nagnoi, LLC.  14+ años en SQL Server  9+ years en BI & OLAP  Microsoft MVP (5th year)  Miembro del equipo Microsoft BI Advisors  MCT Regional Lead – Puerto Rico  MCT Alumni BI / SQL Server / .NET  Co-Founder de Puerto Rico PASS  PASS Regional Mentor - LATAM  Blogger: www.alankoo.com 8
  • 9. Qué es MDX (Muldimensional Expressions) • Una base de datos multidimensional (Cubos OLAP), es un método para almacenar datos de forma multidimensional, generalmente para propósitos de reporte. • MDX es un lenguaje de consultas para bases de datos OLAP, análogo a SQL como lenguaje de consulta para bases de datos relacionales. • Use consultas MDX para obtener datos almacenados en un cubo de SQL Server Analysis 9 Services. • Devuelve un conjunto de resultados (dataset) multidimensional que consiste de data de celdas y data de ejes. • Originalmente desarrollado por Microsoft (finales de los 90’s). • Adoptado por muchos otros fabricantes de bases de datos multidimensionales. 9
  • 10. 10 Escenarios de uso • Herramientas de inteligencia de negocios • Excel Pivot Tables • Reporting Services • PerformancePoint Services (Sharepoint) • Power View • Power Query • Herramientas de terceros • Tableau • Business Objects • Integración con aplicaciones Web o Windows • ADOMD.NET 10
  • 12. Adventure Works Sample Database 12
  • 13. 13 Adventure Works Cube • Dimensiones (dimensiones) • Medidas (measures) • Grupo de Medidas (measure groups) • 11 Measure Groups • 21Dimensions 13
  • 14. 14 ¿Dónde estamos? • Dimensiones • Date • Product • Customer • Jerarquías • Calendar (Date) • Product Line (Product) • Country (Customer) 14 3 niveles: Year, Semester, Quarter 2 niveles: All, Country 2 niveles: All, Product Line
  • 15. ¿Dónde estamos? Members 15 • Los items contenidos dentro de cada jerarquía de una dimension • Ej. Jerarquía Calendar: 15 • 2004 • H1 CY 2004 • Q1 CY 2004 • Q2 CY 2004 • Q3 CY 2004 • Q4 CY 2004 • H2 CY 2004 • Ej. Nivel Calendar Quarter: • Q1 CY 2004 • Q2 CY 2004 • Q3 CY 2004 • Q4 CY 2004
  • 16. 16 Identificadores • El nombre de un objeto en Analysis Services • Cubos, dimensiones, jerarquías (hierarchies), niveles (levels), etc. • Por defecto: • [Nombre de Dimensión].[Nombre de Jerarquía].[Nombre de Nivel].[Nombre de Miembro] • Usando la llave (key) del miembro: • [Nombre de Dimensión].[Nombre de Jerarquía].&[Llave del Miembro] 16
  • 17. ¿Dónde estamos? Members [Date].[Calendar].[Q1 CY 2004] 17 • Ej. Jerarquía Calendar: 17 • 2004 • H1 CY 2004 • Q1 CY 2004 • Q2 CY 2004 • Q3 CY 2004 • Q4 CY 2004 • H2 CY 2004 [Date].[Calendar].[Calendar Quarter].[Q1 CY 2004] [Date].[Calendar].[CY 2004].[H1 CY 2004].][Q1 CY 2004] [Date].[Calendar].[Calendar Quarter].&[2004]&[1]
  • 18. 18 ¿Dónde estamos? Celdas  Un lugar en el cubo 18  Data pertinente a una intersección de miembros  Contiene medidas  Identificada por los miembros de una dimensión Celda Cantidad 1,134 X * Y * Z Product * Quarter * Country 4 * 4 * 6 = 96 celdas
  • 19. 19 ¿Dónde estamos? Tuplas  Identifica una cela o sección 19 de un cubo  Representada por un miembro de cada dimensión  Separados por comas, delimitados por paréntesis Celda Cantidad 1,134 ([Product].[Product Line].[Accesories], [Date].[Calendar].[Calendar Quarter].&[2003].&[4], [Customer].[Country].[Australia])
  • 20. 20 ¿Dónde estamos? Tuplas  No tiene tener que 20 explícitamente tener miembros de todas las dimensiones Tuple 1. ([Customer].[Country].[Australia]) 2. ([Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2004], [Customer].[Country].[Australia]) 3. ([Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2004], ([Product].[Product Line].[Mountain], [Customer].[Country].[Australia]) Tuple Tuple
  • 21. ¿Dónde estamos? Conjuntos (Sets) {Customer.CCoouunnttrryy..AAuussttrraalliiaa,, [[PPrroodduucctt]]..[[PPrroodduucctt LLiinnee]]..[[MMoouunnttaaiinn]]}} 21 • Colección de tuplas definidas usando las misma dimensiones (en tipo y número) • Delimitada por llaves {} 21 {(Customer.Country.Australia), (Customer.Country.Canada)} { ([Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2002], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]), ([Customer].[Country].[Australia], [Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2003], [Product].[Product Line].[Mountain]), ([Customer].[Country].[Australia], [Date].[Calendar].[2004].[H1 CY 2004]. [Q1 CY 2004], [Product].[Product Line].[Mountain]) } { }
  • 22. Consultas MDX Más allá de los Pivot Tables 22
  • 23. Sintaxis básica de una consulta • Se usa para devolver un subconjunto de la data multidimensional de un 23 servidor OLAP [ WITH <formula_expression> [ , <formula_expression> ... ] ] SELECT [<axis_expression>, [<axis_expression> ... ]] FROM [<cube_expression>] [WHERE [slicer_expression]] • Ejes (Axis): Hasta 128 ejes, los 5 primeros tienen alias (COLUMN, ROWS, PAGES, SECTIONS, CHAPTERS) 23
  • 24. 24 Miembros Calculados • Cálculos especificados por expresiones MDX • Resuelto después de la evaluación de la expresión (en lugar de traer la data original de las tablas de hechos) 24 WITH MEMBER [Measures].[Profit] AS '[Measures].[Internet Sales Amount] - [Measures].[Internet Total Product Cost]' SELECT … WITH MEMBER Measures.[Cumulative Sales] AS 'SUM(YTD(), [Measures].[Internet Sales Amount]) ' SELECT …
  • 25. 25 Expresiones • Sentencias parciales de MDX que se evalúan a un valor • Combinación de identificadores, valores y operadores que Analysis Services puede evaluar para obtener un resultado • Usamos las expresiones como parte de los datos a ser devueltos por una consulta o como una condición de búsqueda de acuerdo a un criterio 25
  • 26. Expresiones a nivel de Dimensión Typically used when passing parameters to functions in Multidimensional Expressions (MDX) to return members, sets, or tuples from a hierarchy. 26 26 WITH MEMBER [Measures].[MeasureCount] AS COUNT([Measures].MEMBERS) …
  • 27. Expresiones a nivel de Jerarquía (dimensión) hierarchy expression contains either a hierarchy identifier or a hierarchy function • WITH MEMBER [Measures].[CalendarLevelCount] AS [Date].[Calendar].Levels.Count SELECT [Measures].[CalendarLevelCount] ON 0 FROM [Adventure Works] • SELECT [Measures].[Internet Sales Amount] ON 0, 27 [Date].[Calendar].MEMBERS ON 1 FROM [Adventure Works] 27
  • 28. Expresiones a nivel de Tupla (1/2) • Made up of one member from every dimension that is contained within a cube • Uniquely identifies a single cell within the cube (Member_expression [ ,Member_expression ... ] ) • Can be fully qualified, can contain implicit members, or can contain a single member • Any dimension not explicitly referenced within a tuple is implicitly referenced 28 • Tuplas de un solo miembro • [Measures].[TestMeasure]  Miembro • ( [Measures].[TestMeasure] )  Tupla 28
  • 29. Expresiones a nivel de Tupla (2/2) • Conjuntos (Sets): Lista ordenada de cero o más tuplas • Conjuntos vacios (Empty Set): No contiene tuplas { [ { Tuple_expression | Member_expression } [ , { Tuple_expression | Member_expression } ] ... ] } • SELECT {[Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount]} ON COLUMNS, { ([Product].[Product Categories].[Category].&[4], [Date].[Calendar].[Calendar Year].&[2004]), ([Product].[Product Categories].[Category].&[1], [Date].[Calendar].[Calendar Year].&[2003]), ([Product].[Product Categories].[Category].&[3], [Date].[Calendar].[Calendar Year].&[2004]) } ON ROWS FROM [Adventure Works] 29 29
  • 30. Expresiones a nivel de Sub-Cubo Puede contener un identificador de sub-cubo o una sentencia MDX que devuelva un sub-cubo. SELECT [Measures].MEMBERS ON COLUMNS, [Date].[Calendar Year].MEMBERS ON ROWS FROM (SELECT [Measures].[Internet Sales Amount] ON COLUMNS, [Date].[Calendar Year].&[2012] ON ROWS FROM [Adventure Works]) 30 30
  • 31. WITH MEMBER Measures.LocationName AS [Customer].[Country].CurrentMember.Name … WITH MEMBER Measures.User AS USERNAME … 31 Funciones • Usadas para operar programáticamente sobre bases de datos multidimensionales 31 CROSSJOIN ([Product].[Product Line].[Product Line].MEMBERS, Customer.Country.Members) ON ROWS …
  • 32. Trabajando con valores Vacíos (empty) WITH MEMBER [Product].[Category].[All Products].ReturnZero AS 0 MEMBER MEASURES.ISEMPTYDemo AS ISEMPTY([Measures].[Internet Tax Amount]) MEASURES.ISEMPTYDemo, MEASURES.IsZero} ON COLUMNS, [Product].[Category].[Category].ALLMEMBERS ON ROWS FROM [Adventure Works] WHERE [Date].[Calendar].[Calendar Year].&[2012] 32 //Will true for any null or zero value MEMBER MEASURES.IsZero AS [Measures].[Internet Tax Amount]=0 SELECT {[Measures].[Internet Tax Amount], 32
  • 33. SELECT {[Measures].[Internet Tax Amount]} ON COLUMNS, NON EMPTY [Product].[Category].[Category].MEMBERS ON ROWS FROM [Adventure Works] WHERE([Date].[Calendar].[Calendar Year].&[2012]) 33 NON EMPTY 33
  • 34. WITH MEMBER MEASURES.CategoryCount AS COUNT([Product].[Category].[Category].MEMBERS) MEMBER MEASURES.NonEmptyCategoryCountFor2012 AS COUNT( NONEMPTY( [Product].[Category].[Category].MEMBERS , ([Date].[Calendar].[Calendar Year].&[2012], [Measures].[Internet Tax Amount]) ) 34 Fundamentos: NonEmpty 34 ) SELECT {MEASURES.CategoryCount, MEASURES.NonEmptyCategoryCountFor2012 } ON COLUMNS FROM [Adventure Works];
  • 35. Funciones y más funciones Más allá de los Pivot Tables 35
  • 36. Categoría Descripción Array functions Provide arrays for use in stored procedures Dimension functions Return a reference to a dimension from a hierarchy, level, or member. Hierarchy functions Return a reference to a hierarchy from a level or member. Level functions Return a reference to a level from a member, dimension, hierarchy, or 36 Funciones (Sintaxis MDX) 36 from a string expression. Logical functions Perform logical operations and comparisons on objects and expressions. Member functions Return a reference to a member from other objects or from a string expression. Numeric functions Perform mathematical and statistical functions on objects and expressions. Set functions Return a reference to a set from other objects or from a string expression. String functions Return string values from other objects or from the server. Tuple functions Return a reference to a tuple from a set or from a string expression.
  • 37. Funciones de Cadena (String) [Product].[Product].CurrentMember.Name MEMBER [Measures].[ProductUniqueName] AS [Product].[Product].CurrentMember.Uniquename MEMBER [Measures].[ProductDimensionName] AS SELECT {[Measures].[ProductName], [Measures].[ProductUniqueName], [Measures].[ProductDimensionName]} ON COLUMNS, [Product].[Product].MEMBERS ON ROWS 37 WITH MEMBER [Measures].[ProductName] AS [Product].Name FROM [Adventure Works] ; 37
  • 38. Funciones de Cadena (String) SELECT {STRTOMEMBER("[Measures].[Inter" + "net Sales Amount]")} ON COLUMNS, STRTOSET("{ [Product].[Product Categories].[Category].&[3], [Product].[Product Categories].[Product].&[477], [Product].[Product Categories].[Product].&[788], [Product].[Product Categories].[Product].&[708], [Product].[Product Categories].[Product].&[711] }") ON ROWS 38 FROM [Adventure Works]; 38
  • 39. IsLeaf([Date].[Calendar].CurrentMember) MEMBER MEASURES.[IsAncestorDemo] AS IsAncestor([Date].[Calendar].CurrentMember, [Date].[Calendar].[Date].&[1]) SELECT {MEASURES.[IsLeafDemo], MEASURES.[IsAncestorDemo] } ON 0, [Date].[Calendar].MEMBERS ON 1 39 Funciones Lógicas WITH MEMBER MEASURES.[IsLeafDemo] AS FROM [Adventure Works]; 39
  • 40. Funciones a nivel de Miembro [Date].[Calendar].CurrentMember.Parent.Name ANCESTOR([Date].[Calendar].CurrentMember, [Date].[Calendar].[Calendar Year]).Name [Date].[Calendar].CurrentMember.Prevmember.Name SELECT {MEASURES.[CurrentMemberDemo], MEASURES.[ParentDemo], MEASURES.[AncestorDemo], MEASURES.[PrevMemberDemo] } ON 0, 40 WITH MEMBER MEASURES.[CurrentMemberDemo] AS [Date].[Calendar].CurrentMember.Name MEMBER MEASURES.[ParentDemo] AS MEMBER MEASURES.[AncestorDemo] AS MEMBER MEASURES.[PrevMemberDemo] AS [Date].[Calendar].MEMBERS ON 1 FROM [Adventure Works]; 40
  • 41. Funciones a nivel de Miembro: ParallelPeriod 41 41 january february march april may june july august september october november december Quarter 1 Quarter 2 Quarter 3 Quarter 4 Semester 1 Semester 2 ParallelPeriod([Quarter, 1, April]) ParallelPeriod([Quarter, -2, April])
  • 42. Funciones a nivel de Conjunto (Set): Descendants SELECT [Measures].[Internet Sales Amount] ON Columns, DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2011] , [Date].[Calendar].[Date]) ON Rows 42 FROM [Adventure Works]; 42
  • 43. Funciones a nivel de Conjunto (Set): Order SELECT [Measures].[Internet Sales Amount] ON Columns, ORDER( DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2012] 43 43 , [Date].[Calendar].[Date]) , [Measures].[Internet Sales Amount], BDESC ) ON ROWS FROM [Adventure Works] ;
  • 44. Funciones a nivel de Conjunto (Set): Filter SELECT [Measures].[Internet Sales Amount] ON Columns, 44 44 FILTER( DESCENDANTS( [Date].[Calendar].[Calendar Year].&[2010] , [Date].[Calendar].[Date]) , [Measures].[Internet Sales Amount]>10000 ) ON Rows FROM [Adventure Works]
  • 47. ¡Gracias! Alan Koo Senior Consultant | Nagnoi, LLC. Blog: www.alankoo.com Twitter: @alan_koo facebook.com/MicrosofBIyMas