PowerBI – Como trabajar con volumen de datos de forma performante

En este artículo vamos a analizar como trabajan los distintos modos de storage de PowerBI para que con ello podamos lograr manejar grandes volúmenes de datos y obtener la mejor performance.

Tipos de storage soportados por PowerBI

Cache (Modo Import)

En este modo los datos se importan de la fuente de datos y se cargan en memoria al modelo tabular de PowerBI.

Es el método de storage mas eficiente ya que las operaciones de interacción no se realizan sobre la fuente de datos sino sobre el modelo in-memory.

Ahora bien, puede sucede que tengamos tablas en el origen de datos con mucho volumen y que no podamos usar el modo import.

Si elegimos este modo de storage las entidades no podremos cambiarlo a otro modo.

NoCache (Modo DirectQuery)

El modo NoCache no importara los datos al modelo tabular y cada vez que necesitemos consumir información se conectara directamente a la fuente de datos para realizar la consulta (armara en la mayoría de los casos consultas con el lenguaje SQL)

Este hace que la performance dependa de la fuente de datos y no así de PowerBI por lo cual en muchos casos no suele ser el mas eficiente ya que siempre debe consultar la fuente de datos y adaptar las medidas y operaciones hacia el motor, pero nos permite dos grandes ventajas:

  • Trabajar con los datos en vivo
  • Trabajar con grandes volúmenes (por ejemplo contra un origen de Big Data)

Si deseamos conectar contra Analysis Services este modo es el que se usara por defecto permitiendo así que en PowerBI no se deba de nuevo definir el modelo. No obstante también se puede conectar con SSAS en modo import si es que necesitamos por ejemplo combinar con otras fuentes de datos

Modo Dual

Este modo permite a una tabla trabajar en modo import o directquery dependiendo del contexto.

Las tablas dual se recargan como cualquier import al momento de la actualización de las tablas, y después para resolver una consulta que se relaciona con otra tabla que tiene modo directquery, no utilizara la información pre-cacheada si no que se comporta como una DirectQuery y envía la query al origen.

Esto nos permite que cuando son DirectQuery el join de datos se hace en origen y no en Power BI ya que puede ser las lento y costoso en recursos.

Modelos compuestos

Los modelos compuestos están por el momento solo soportados para PowerBIDektop y services , no así para PowerBI Report Server.

Este tipo de modelos nos da la posibilidad de tener entidades en modo import, directquery o dual sobre el mismo modelo pudiendo así determinar por cada entidad que es lo que mas nos conviene.

Por ejemplo podríamos tener las ventas que vienen de un Big Data en modo DirectQuery y los maestros en modo import que están en una base de datos

Por ejemplo podríamos tener las ventas que vienen de un Big Data en modo DirectQuery y los maestros en modo import que están en una base de datos

Manos a la obra

En las siguiente sección haremos un simple ejemplo usando la base de datos SQL Server “AdventureWorksDW2016

Para esto usaremos dos tablas “dbo.DimCustomer” la cual pondremos en modo import y “Dbo.FactInternetSales” la cual estará en modo DirectQuery

Buscamos la fuente de datos
Introducimos los datos del Servidor y la Base de Datos y el modo Import (Cache)
Seleccionamos la tabla DimCustomer
Nos volvemos a conectar a la fuente de datos
Ahora seleccionamos el modo DirectQuery (No Cache)
Seleccionamos la tabla FactInternetSales
Vemos las dos entidades en nuestro modelo , una en modo NoCache y la otra en Cache
Creamos las relaciones entre las tablas
Seleccionamos los campos vinculantes (CustomerKey)
Las relaciones terminadas
Vemos las opciones de Storage de la tabla FactInternetSales que esta en modo DQ y la cual podemos cambiar a los otros modos

Como ver o cambiar el modo de storage en una tabla

Si desea revisar o bien cambiar el modo de storage de una tabla en el modelo debe seguir los siguientes pasos

Paso 1: Seleccionamos la opción Modelo

Paso 2: Seleccionamos la tabla

Paso 3: Vamos a las propiedades de la tabla y a la sección Advance

Conclusiones

PowerBI nos da la posibilidad de trabajar con distintos tipos de Storage haciendo así que podamos tener una combinación tanto para poco o mucho volumen.

Los modelos combinados son una excelente funcionalidad ya que nos permiten combinar fuentes de datos en modo cache y no cache.

Links

https://docs.microsoft.com/en-us/power-bi/desktop-storage-mode

DataSummit 2019

El pasado lunes 27 de mayo se realizo en Buenos Aires el evento DataSummit 2019 organizado por nuestra comunidad de SQL Pass Argentina

En este evento que duro todo el día en las oficinas de Microsoft Argentina y que han participado mas de 60 asistentes, se han dado varias charlas de Data Platform y Analytics donde los oradores mostramos muchas de las nuevas funcionalidades que nos ofrece la plataforma de Microsoft ya sea para ambientes on-prem como azure.

Por mi lado he dado estas dos conferencias de 90 minutos cada una:

Modernizando BI en azure

En esta charla mostré con ejemplos reales como se pueden usar los servicios de azure para poder implementar una solución completa de BI y analytics. Observamos el uso de Datalake Storage, Blob Storage, SQL datawarehouse, Analysis Services, Powerbi, Big Data (HdInisight y Databricks) y Datafactory para los ETL.

En el siguiente link comparto el material que use en mi charla como así también varios enlaces de interés

SQL Machine Learning y Big Data cluster SQL 2019

En esta charla he mostrado como usar las características de Machine Learning en SQL usando lenguajes como R y Python como así también las nuevas características de Big data cluster de SQL 2019

En el siguiente link comparto el material de dicha charla

Algunas imágenes del evento

Modernizando tu solución de BI usando Azure

El pasado 2 de enero de 2019 hice un webinar en donde la idea fue mostrar los servicios que existen en Microsoft Azure relacionados a Business Intelligence y Data Analytics.

En este post comparto el video grabado como así también el material de lectura

Presentación

[slideshare id=132705602&doc=modernizandoplataformadebi-190221105552]