2. Bienvenida
• Ing. Eduardo Castro, PhD
• MVP de Microsoft SQL Server
• PASS Regional de Mentor
• PASS Board of Directors
• ecastro@simsasys.com
• ecastrom@gmail.com
• http://www.youtube.com/eduardocastrom
3. RC1, RC2 y RC3
4
• No hay características nuevas o mejoradas en
estas versiones.
• Todas las actualizaciones se limitan a
correcciones de errores.
4. Nuevo en RC0
5
• PowerShell para los modelos tabulares en el
nivel de compatibilidad 1200
• RC0 completa las mejoras PowerShell para
modelos tabulares creados en el servidor SQL
2016 con nivel de compatibilidad (1200). Puede
utilizar todos los cmdlets aplicables, más
cmdlets específicos a modo tabular
• Invoke-ProcessASDatabase
• Invoke-ProcessTable
5. Nuevo en RC0
6
• SSIS Tasks para los modelos tabulares a 1200
nivel de compatibilidad
• SSIS Tasks y destinos conectados a un servidor
SQL 2016 modelo tabular utilizan
representaciones de objetos tabulares en lugar
de multidimensional.
• Por ejemplo, en la última versión de SSDT, al
seleccionar objetos para procesar, el Processing
Task detectará automáticamente que es un
modelo tabular y mostrar objetos tabulares en
lugar de grupos de medidas y dimensiones.
6. Nuevo en RC0
7
• Microsoft.AnalysisServices.Tabular namespace
para modelo tabular 1200 en AMO
• Analysis Services Management objects
actualizado para incluir un nuevo espacio de
nombres Tabular para la gestión de una
instancia tabular de SQL Server 2016 Analysis
Services (en el nivel de compatibilidad de 1200),
• Así como proporcionar el lenguaje de definición
de datos para crear o modificar los modelos
tabulares mediante programación.
7. Nuevo en RC0
8
• Display folders para los modelos tabulares a
1200 nivel de compatibilidad
• Se define en SQL Server Data Tools y mostrada
en las aplicaciones cliente como Excel o Power
BI Desktop,
• Los Display Folders ayudan a organizar un gran
número de medidas en carpetas individuales,
añadiendo una jerarquía visual para facilitar la
navegación en el filed list.
8. Nuevo en CTP 3.3
9
• Upgrade support para un modelo tabular que tenga
pasted tables. A diferencia de las tablas con una
conexión de fuentes de datos, una table pegada no
tiene nombre de conexión o propiedad de Data
Source
• Ahora es posible actualizar un modelo tabular 1100
ó 1103 a 1200 cuando el modelo contiene tablas
pegadas. Se recomienda el SQL Server Data Tools
para actualizar el modelo.
• En SSDT, se establece el nivel CompatibilityLevel
1200 y luego se hace deploy en un servidor SQL
2016 de Analysis Services.
9. Nuevo en CTP 3.3
10
• SSMS scripting de operaciones de bases de
datos
• En Management Studio, scripting está
habilitado para los comandos de base de datos,
incluyendo crear, modificar, borrar, copia de
seguridad, restauración, attach, detach.
• La salida es Tabular Model Scripting Language
(TMSL) en JSON.
• Tabular Model Scripting Language (TMSL)
10. Comandos Tabular Model Scripting
Language
11
Attach command (TMSL) Añade un archivo al servidor.
Detach command (TMSL) Elimina un archivo del servidor.
Backup command (TMSL) Crea un respaldo de una base de datos.
Restore command (TMSL) Restaura la base de datos
Synchronize command (TMSL) Sincroniza una base de datos de Analysis Services con
otra base de datos existente.
Alter command (TMSL) Hacer modificaciones a un objeto sin tener que
especificar la definición completa.
Create command (TMSL) Crea un nuevo objeto, incluyendo sus descendientes.
CreateOrReplace command (TMSL) Crear o sustituir partes de una definición de objeto. La
definición completa debe ser proporcionada.
Delete command (TMSL) Eliminar un objeto, incluyendo sus descendientes.
11. Nuevo en CTP 3.3
12
• SSIS Analysis Services Execute DDL Task
• SSIS Analysis Services Execute DDL Task
• ahora también acepta comandos de lenguaje de
script de modelos tabulares.
• Otras tareas SSIS-SSAS se modificarán en un
futuro CTP para utilizar los nuevos metadatos
tabular.
12. Nuevo en CTP 3.3
13
• SSAS cmdlet de PowerShell
• SSAS cmdlet de PowerShell I Invoke-ASCmd
ahora acepta comandos tabular model scripting
language .
• Otros cmdlets de PowerShell SSAS se
actualizarán en un futuro CTP para utilizar los
nuevos metadatos tabular
13. Mejoras en DirectQuery
14
• Row level security (RLS) es ahora compatible con
DirectQuery modelos de la compatibilidad 1200.
Anteriormente, la presencia de RLS impedía a los
clientes que se ejecute en un modelo tabular en
modo DirectQuery.
• Las columnas calculadas son ahora soportados para
modelos de DirectQuery en la compatibilidad 1200.
Anteriormente, la presencia de columnas calculadas
impedía a los clientes utilizar DirectQuery Mode.
• Optimización del rendimiento: eliminación de joins
redundantes en VertiPaq y DirectQuery.
14. Traducciones
15
• Ahora puede almacenar metadatos traducidos
en un modelo tabular 1200. Metadatos en el
modelo incluye campos para Culture, títulos y
descripciones traducidas.
• Para añadir traducciones, utilice el
Model > Translations en SQL Server Data
Tools.
15. 3.2 CTP
dieciséis
• Modelo tabularlenguaje de script (TMSL) apoyado
en SSMS
• Los scripts pueden ser generados en SSMS para
automatizar fácilmente la mayoría de las tareas
administrativas realizadas en la herramienta.
• En CTP 3.2 ahora puede generar secuencias de
comandos en SSMS para los modelos tabulares en
el nivel de compatibilidad de 1200. En la actualidad,
las siguientes tareas puede ser escrito: Proceso a
cualquier nivel, además de crear, modificar, suprimir
al nivel de la base de datos.
• Script es en TMSL (un formato JSON).
16. 17
• Funcionalmente, TMSL es equivalente a la
extensión ASSL XMLA que proporciona
definiciones de objetos multidimensionales,
excepto que utiliza descriptores TMSL nativas
como modelo,mesay relación para describir
metadatos tabular.
• Para utilizar esta función, debe descargar la
versión de SSMS que los buques
simultáneamente con CTP 3.2 y conectarse a
una CTP versión 3.2 de un servidor de servicios
de análisis en modo tabular.
17. script basado en JSON generado por un
modelo de tabla
18
{
"Crear": {
"Base de datos": {
"Name": "AdventureWorksTabular1200",
"Id": "AdventureWorksTabular1200",
"CompatibilityLevel": 1200,
"readWriteMode":"leer escribir",
"Modelo": {}
}
}
}
18. Comandos disponibles actualmente en script
TMSL
19
comando Descripción
create Agrega una base de datos, conexión, o partición. El ASSL es equivalente a
crear.
createOrReplace Actualiza una definición de objeto existente (base de datos, conexión, o
partición) al sobrescribir una versión anterior. El ASSL es equivalente ALTER
con AllowOverwrite establece en true y ObjectDefinition a ExpandFull.
delete Elimina una definición de objeto. ASSL equivalente es ELIMINAR.
refresh Procesa el objeto.
19. Tablas calculadas en SSDT
20
• Una tabla calculada solo existen en el modelo y
está basado en una expresión DAX o consulta en la
SSDT.
• Cuando se hace deploy en una base de datos, una
tabla calculada es indistinguible de tablas normales.
• Hay varios usos para las tablas calculadas,
incluyendo la creación de nuevas tablas para
exponer una tabla existente en una función
específica. El ejemplo clásico es una tabla de fechas
que opera en múltiples contextos (fecha de pedido,
fecha de envío, y así sucesivamente).
20. Tablas calculadas en SSDT
21
• Mediante la creación de una tabla calculada
para un rol determinado, ahora se puede activar
una relación de tablas facilitar la consulta o la
interacción de datos utilizando la tabla
calculada.
• Otro uso para las tablas calculadas es combinar
partes de las tablas existentes en una tabla
completamente nuevo que sólo existe en el
modelo.
21. Beneficios de DirectQuery
22
• Por defecto, los modelos tabulares utilizan una
caché en memoria para almacenar datos de la
consulta. Cuando los modelos tabulares utilizan los
datos que residen en la memoria, incluso consultas
complejas pueden ser increíblemente rápido.
• Sin embargo, hay algunos inconvenientes a la
utilización de datos almacenados en caché.
• Los grandes conjuntos de datos pueden exceder la
memoria disponible y los requisitos mantener los
datos actualizados puede ser difícil o imposible de
lograr en un horario regular de procesamiento.
22. Beneficios de DirectQuery
23
• DirectQuery supera estas limitaciones y también
utiliza las características de RDBMS que pueden
hacer de ejecución de consulta más eficiente.
• Con DirectQuery:
• Se garantiza que los datos estén actualizados a la
fecha, y no hay sobrecarga de administración
adicional de tener que mantener una copia separada
de los datos. Los cambios en los datos de origen
pueden reflejarse de inmediato en consultas en el
modelo de datos.
• Los conjuntos de datos pueden ser más grandes que
la capacidad de memoria de un servidor de Analysis
Services.
23. Beneficios de DirectQuery
24
• DirectQuery puede tomar ventaja de la aceleración
del lado del proveedor de búsqueda, tales como la
proporcionada por xVelocity memory optimized
column indexes.
• La seguridad puede ser aplicada por la base de
datos por medio del row-level security (como
alternativa, se puede utilizar la seguridad a nivel de
fila en el modelo a través de DAX).
• Si el modelo contiene fórmulas complejas que
pueden requerir varias consultas, Analysis Services
puede realizar la optimización para asegurar que el
plan de consulta para la consulta ejecutada contra
la base de datos back-end sea tan eficiente como
sea posible.
24. Limitaciones de funcionalidad en
DirectQuery Modo
25
• DirectQuery se mejora significativamente en esta
versión, pero todavía tiene algunas restricciones.
• Antes de cambiar de modo, determinar si las
ventajas de la ejecución de la consulta en el
servidor back-end sobrepasan cualquier desventaja
que presente el DirectQuery.
• Si cambia el modo de un modelo existente en SQL
Server Data Tools, el diseñador de modelos le
avisará de cualquier función de su modelo que son
incompatibles con el modo de DirectQuery.
25. Limitaciones de funcionalidad en
DirectQuery
26
Fuentes de datos DirectQuery modelos sólo pueden utilizar datos de una sola base de datos
relacional de los siguientes tipos: SQL Server, Oracle, Teradata.
tablas calculadas tablas calculadas no son compatibles con DirectQuery, pero las columnas
calculadas si son compatibles. Si intenta convertir un modelo tabular que
contiene una tabla calculada, se producirá un error que indica que el modelo no
es compatible.
DAX limitaciones Analysis Services convierte todas las fórmulas y definiciones de medidas DAX en
sentencias SQL cuando se consulta DirectQuery.
Cualquier fórmula que contiene elementos que no se puede convertir en la
sintaxis SQL se disparará errores de validación del modelo.
Esta restricción se limita sobre todo a las funciones. Para las medidas, las fórmulas
DAX se convierten en operaciones basadas en conjuntos del motor relacional.
Esto significa que todas las medidas creadas implícitamente son compatibles.
Las funciones que no son compatibles o que comportan de forma inconsistente a
través de plataformas incluyen funciones de inteligencia de tiempo y funciones
estadísticas.
26. DirectQuery implementación
27
• DirectQuery ya está disponible para los modelos
tabulares que operan en el nivel 1200 de
compatibilidad.
• En SQL Server 2016, DirectQuery tiene
diferentes propiedades y capacidades para 1200
modelos tabulares.
• Lo más notable es el control adicional sobre la
definición de conjuntos de datos utilizados para
el diseño de modelos y pruebas.
27. Bi-directional cross filters
29
• En SQL Server 2016 es un enfoque integrado para
permitir filtros transversales bidireccionales en los
modelos tabulares, eliminando la necesidad de
soluciones DAX hechos a mano para la propagación
de contexto de filtro a través de relaciones de la
tabla.
• Componentes: cross filtering es la capacidad de
establecer un contexto filtro en una tabla basada en
valores en una tabla relacionada, y bi-directional es
la transferencia de un contexto de filtro para
relacionado segunda tabla en el otro lado de una
relación de tabla.
• Como su nombre indica, se puede hacer slice en
ambos sentidos de la relación en lugar de sólo en
una dirección. Internamente, el filtrado bidireccional
expande contexto filtro para consultar un
superconjunto de sus datos.
28. Bi-directional cross filters en los modelos
tabulares en SSDT
28
• CTP 3.2 permite a los filtros transversales
bidireccionales por defecto para los modelos
tabulares en el nivel de compatibilidad en 1200
SSDT.
• Los filtros son solamente auto-generados
cuando la dirección se puede establecer con un
alto grado de certeza.
• Si hay ambigüedad en la forma de multiple
query paths across de las relaciones de tablas,
un filtro no se creará automáticamente.
29. Editor de archivos JSON para BIM
30
• El Code View en Visual Studio 2015 ahora hace
que el BIM se despliegue en formato JSON para
los modelos tabulares en el nivel 1.200 de
compatibilidad.
• La versión de Visual Studio determina si el
archivo BIM se representa en JSON a través del
JSON Editor o como texto.
30. Partition management Modelos Tabulares
31
• Ahora puede utilizar la versión de SSMS con
CTP 3.1 para crear, procesar y fusionar
particiones para los modelos tabulares en el
nivel de 1.200 compatibilidad.
31. Nuevo en 3.0 CTP
32
• Nuevas fuentes de datos para DirectQuery
modo
• Las fuentes de datos compatibles para los
modelos tabulares en 110x DirectQuery ahora
incluyen Oracle, Teradata y Microsoft Analytics
Platform (anteriormente conocido como Parallel
Data Warehouse).
32. Nuevo en 3.0 CTP
33
• Las plantillas de proyecto se añaden para
Modelos Tabulares en version 1200 en SSDT
• A partir de CTP 3.0, que ya no necesita dos
versiones de SSDT para la construcción de
proyectos de BI y relacionales.
• SQL Server Data Tools for Visual Studio 2015
añade plantillas de proyectos de soluciones de
Analysis Services, que incluye Analysis Services
Tabular Projects utilizado para la construcción
de modelos a nivel de compatibilidad 1200.
33. Nuevo en 3.0 CTP
34
• Edición de fórmulas DAX mejorado
• Las actualizaciones de la ayuda barra de fórmulas
para escribir fórmulas con más facilidad mediante la
diferenciación de funciones, campos y medidas
usando coloreado de sintaxis, que ofrece
sugerencias de función y de campo inteligentes y le
indica si las partes de su expresión DAX están mal
uso de garabatos '' error. También permite el uso de
múltiples líneas (Alt + Enter) y la identitación (Tab).
• La barra de fórmulas ahora también le permite
escribir comentarios como parte de sus medidas,
sólo tienes que escribir "//" y todo después de estos
caracteres en la misma línea se considerarán un
comentario.
34. Nuevo en 3.0 CTP
36
• Formula Fixup
• Con la fórmula de corrección en un modelo
tabular 1200, SSDT se actualizará
automáticamente cualquier medida que hace
referencia a una columna o tabla que se ha
cambiado de nombre.
35. Nuevo en 3.0 CTP
37
• Guardar medidas incompletas
• Ahora puede guardar las medidas incompletas
DAX directamente en un proyecto modelo
tabular compatibilidad 1200 y reiniciar la
edición de nuevo cuando esté listo para
continuar.
36. Nuevo en 3.0 CTP
38
• Soporte para Visual Studio Manager
Configuración
• Para dar soporte a múltiples entornos, como
entornos de prueba y pre-producción, Visual
Studio permite a los desarrolladores crear
múltiples configuraciones del proyecto
utilizando el gestor de configuración.
• A partir de CTP 3.0 ya puede utilizar el gestor de
configuración para hacer deploy en diferentes
servidores.
37. Nuevo en 3.0 CTP
39
• La administración de modelos tabulares
compatibilidad 1200 en SSMS
• En SQL Server 2016, una instancia de Analysis
Services en modo de servidor tabular puede
ejecutar modelos tabulares en cualquier nivel de
compatibilidad (1100, 1103, 1200).
• En CTP 3.0 y posterior, SQL Server Management
Studio se actualiza para mostrar las propiedades
y proporcionar una administración modelo de
base de datos para los modelos tabulares en el
nivel de compatibilidad 1200.
38. Nuevo en 3.0 CTP
40
• Cambios en el Analysis Services Management
Objects (AMO)
• A partir de CTP 3.0 ha sido re-factorizado para
incluir un segundo assembly,
Microsoft.AnalysisServices.Core.dll.
• La nueva asamblea se separa clases comunes
como s Server, Database y Role que tienen una
amplia aplicación en Analysis Services, con
independencia del modo de servidor.
39. Nuevo en 3.0 CTP
41
• DBCC para Analysis Services
• El Database Consistency Checker (DBCC) se
ejecuta internamente para detectar posibles
problemas de corrupción de datos
• Pero también se puede ejecutar por demanda si
se sospecha que hay problemas en sus datos o
modelo. DBCC ejecuta diferentes controles en
función de si el modelo es tabular o
multidimensional.
41. Sintaxis para modelos tabulares 110x
41
<DBCC xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>AdventureWorksDW2014Multidimensional-EE</DatabaseID>
<CubeID>Adventure Works</CubeID>
<MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
<PartitionID>Internet_Sales_2006</PartitionID>
</Object>
</DBCC>
42. Nuevo en 2.3 CTP
42
• Eventos extendidos para Analysis Services
• CTP 2.3 añade una interfaz gráfica de usuario de
SQL Server Management Studio para configurar
y administrar Analysis Services Extended Events.
• Puede configurar flujos de datos en tiempo real
para supervisar la actividad del servidor en
tiempo real, mantener los datos de sesión
cargados en la memoria para un análisis más
rápido, o guardar flujos de datos a un archivo
para su análisis fuera de línea.
43. Nuevo en 2.3 CTP
43
• Nuevos comportamientos de las variables DAX
• SQL Server 2016 CTP 2.3 incluye el nuevo
incluye soporte para las variables en DAX.
• Las variables pueden ahora almacenar el
resultado de una expresión como una named
variable, que luego puede ser pasado como un
argumento a otras expresiones de medidas.
• Una vez que los valores resultantes se han
calculado para una expresión variable, esos
valores no cambian, incluso si se hace referencia
a la variable en otra expresión.
44. Ejemplo
44
• Para calcular un porcentaje de crecimiento año
tras año sin necesidad de utilizar una variable,
se pueden crear tres medidas separadas.
45. Muestra
45
Esta primera medida calcula Suma de la cantidad de
ventas
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
SalesAmount PreviousYear=CALCULATE([Sum of
SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date]))
Sum of SalesAmount YoY%:=IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount
PreviousYear]), [Sum of SalesAmount]))
46. Mismo cálculo usando variables
46
YoY% = var Sales = SUM(SalesTable[SalesAmount])
var SalesLastYear=CALCULATE(Sales,
SAMEPERIODLASTYEAR(‘Calendar'[Date]))
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))