Power BI soporte tres métodos para conectarse a las fuentes de datos, denominados Live Connection, DirectQuery, e ImportData (también llamado Actualización programada). En los siguientes puntos analizaremos qué significa cada uno de estos tipos, sus características, pros y cons, y cuál elegir en cada situación.
Determinar cuál tipo de conexión elegir entre éstos (o modo Composite que integra DirectQuery + Import Data) es una decisión importante en la definición de la arquitectura de una solución Power BI, ya que es costoso el cambio de tipo de conexión una vez definido uno de los caminos.
Import Data
Este método se denomina “Importar datos” porque los datos son cargados en Power BI. Algunos lo llaman “Actualización programada”, dado que hay que programar la carga y actualización de los datos en el servicio Power BI . Cargar los datos en Power BI significa consumir memoria y espacio en disco, ya sea en la memoria y el espacio en disco de la máquina de desarrollo (al utilizar Power BI Desktop) o en el servicio Power BI (cuando el informe se publica en la nube). A mayor cantidad de tablas y datos, mayor utilización de recursos.
No existe un cálculo simple y directo para conocer cuánto van a ocupar los datos fuente en la memoria de Power BI (o sea, no es filas por columnas por tipo de datos), ya que Power BI utiliza el motor de compresión de xVelocity, que comprime los datos y los almacena en un formato comprimido. Un archivo de Excel de 1 GB podría ocupar sólo 10 MB en Power BI, dependiendo de la cantidad de valores únicos en la columna, los tipos de datos y otras variables. En breve, el tamaño de los datos en Power BI normalmente será mucho más pequeño que el tamaño de la fuente de datos.
Pros y contras importantes de Import Data
PRO – Power BI 100% funcional
Con este método se pueden utilizar todas las funciones y componentes de Power BI, tanto Power Query para combinar datos de varias fuentes o DAX para escribir visualizaciones o expresiones avanzadas de inteligencia de tiempo. No hay limitaciones en la funcionalidad de Power BI con este método.
CON – Limitación de tamaño
Con este método se aplican límites de tamaño y capacidad. Por un lado, cada modelo o archivo en Power BI no puede ocupar más de 1 GB (con capacidad Premium o licencias Premium este tope es de 100 GB), siempre considerando el modelo comprimido. Luego, se tiene un tamaño de hasta 10 GB en la cuenta, mientras que Power BI Premium tiene un límite de 100 TB. Si se usara Power BI Report Server (la versión del servicio Power BI on-premises), el límite de tamaño es de 2 GB por archivo.
PRO – Es el método más rápido
Este método de conexión es la opción más rápida posible. Las consultas de informes se evaluarán a partir de los datos cargados y se utilizarán desde la memoria del servidor, sin problemas de latencia.
DirectQuery
DirectQuery es una conexión directa a la fuente de datos. Los datos NO se almacenan en Power BI, por lo que Power BI es principalmente una capa de visualización y consulta los datos de la fuente de datos cada vez que lo requiere. Power BI sólo almacena los metadatos de las tablas (nombres de tablas, nombres de columnas, relaciones) pero no los datos. El tamaño del archivo de Power BI será mucho más pequeño y lo más probable es que nunca llegue al límite de tamaño porque no hay datos almacenados en el modelo.
DirectQuery sólo es factible para unas pocas fuentes de datos. A continuación se enumeran algunas (lista completa en Power BI data sources):
- Amazon Redshift
- Azure HDInsight Spark
- Azure SQL Database
- Azure SQL Datawarehouse
- IBM Netezza
- Impala
- Oracle Database
- SAP Business Warehouse
- SAP HANA
- Snowflake
- Spark
- SQL Server Database
- Teradata Database
Pros y contras importantes de DirectQuery
PRO – Escalabilidad
Este método no tiene limitación de tamaño, porque no se almacenan los datos en el archivo de Power BI. Se pueden utilizar fuentes de datos con petabytes de datos en SQL Server, Oracle o cualquier otra fuente de datos compatible y conectarse desde Power BI.
CON – Funcionalidad limitada
Este método no tiene disponibilidad de la funcionalidad completa de Power BI. Como se observa en la imagen debajo, sólo habrá dos pestañas en Power BI Desktop: Informe (para diseño de la visualización) y Modelo (para cambiar algunas relaciones).
Power Query está limitado a las operaciones plegables (mayor información en Power Query query folding), pero se puede utilizar DAX en la capa de visualización.
CON – Conexión lenta
Una gran desventaja de este método es que la conexión es más lenta que otros tipos de conexión. Esto se debe a que en un informe, compuesto por varios elementos visuales, cada elemento visual envía una consulta a las fuentes de datos y luego los datos regresan. Es muy importante evaluar las latencias entre los servidores y analizar el rendimiento de las fuentes de datos, realizando ajustes de performance en las mismas.
Live connection
Live Connection es muy similar a DirectQuery en la forma en que funciona con la fuente de datos, dado que los datos no se almacenan en Power BI y se consultan a las fuentes de datos cada vez. Live Connection sólo es compatible con estas fuentes de datos:
- Azure Analysis Services
- SQL Server Analysis Services (SSAS) Tabular
- SQL Server Analysis Services (SSAS) Multi-Dimensional
- Power BI Dataset in the Service
Debido a que estas fuentes de datos son motores de modelado en sí mismas, Power BI sólo se conecta a ellas y obtiene todos los metadatos del modelo (nombres de tablas, nombres de columnas, relaciones). Con este método, Power BI sólo se usa para visualización y todos los requisitos de modelado deben realizarse en la fuente de datos.
Pros y contras importantes de Live Connection
PRO – Modelo de gran tamaño
El gran beneficio de este modelo es que puede tener un modelo de datos de gran tamaño y también puede aprovechar la capa de modelado de SSAS (SQL Server Analysis Services), si se usa el motor Tabular se tendrá DAX y si se usa el modelo Multi-Dimensional OLAP se tendrá MDX. Con cualquiera de estos dos lenguajes se pueden cubrir todas las necesidades de cálculo y modelado. Este método tiene mejores funciones de modelado que DirectQuery.
CON – Sólo visualización
La gran desventaja de este método es que no se tiene la transformación de Power Query. Como se observa en la imagen, en Power BI Desktop sólo está la pestaña Informe (para diseño de la visualización).
PRO – Medidas a nivel de informe
Como complemento al modelo realizado en la fuente de datos, con este tipo de conexión se pueden realizar medidas DAX a nivel de informe. Sin embargo, no es lo más adecuado, dado que las medidas sólo estarán visibles en el informe donde son desarrolladas y no quedarán en el modelo para su reutilización
Modelo compuesto
Power BI permite generar modelos compuestos que consisten en la combinación de fuentes de DirectQuery con fuentes de datos de Import Data; brindando el rendimiento y la flexibilidad de Import Data, junto con la escalabilidad y el gran tamaño de los datos de DirectQuery.
Los modelos compuestos no sólo admiten DirectQuery para fuentes de datos como SQL Server y otras fuentes de DirectQuery, sino que también se permite para conjuntos de datos de Power BI (dataflows o datasets), lo que permite crear un conjunto de datos encadenado a partir del conjunto de datos principal de Power BI.
¿Cuáles son los escenarios de arquitectura que se deben usar para cada método?
Import data para agilidad y rendimiento
Utilizando Import Data se tendrá un Power BI completamente funcional con un gran rendimiento, por lo tanto, si el conjunto de datos no es enorme, entonces se puede usar fácilmente este método y producir informes en un marco de tiempo de desarrollo muy rápido.
Live connection para soluciones empresariales
Muchas empresas ya tienen modelos preconstruidos en SSAS tabular o multidimensional. Estos modelos se pueden usar fácilmente en Power BI Live Connection. Incluso si una empresa aún no ha iniciado la solución AAS (Azure Analysis Services) o SSAS, y está tratando con un gran conjunto de datos, esta opción es mejor que Direct Query, ya que SSAS tiene lenguajes de expresión analítica de MDX o DAX para hacer frente a muchos cálculos y desafíos de modelado, además de mayor performance. Aquí hay una arquitectura de muestra que se puede usar con este método.
Adicionalmente, en un entorno empresarial hay muchos beneficios al usar Live Connection. Si está trabajando en un proyecto de análisis con varios autores de informes y miembros del equipo, se puede compartir el conjunto de datos con una conexión en vivo y los autores de informes pueden consumir el conjunto de datos simultáneamente.
DirectQuery para fuentes que no son de Microsoft
La conexión DirectQuery no se usa mucho en la arquitectura de soluciones de Microsoft. La razón principal es que si tiene una arquitectura de solución basada en Microsoft, probablemente usará SSAS como se mencionó anteriormente para aprovechar su motor analítico. El modo DirectQuery se usa principalmente en la arquitectura que no es de Microsoft, cuando el modelo de datos se maneja en el sistema Oracle, MySQL, SAP HANA o algo por el estilo.
Resumen
En resumen, se han descripto los tres tipos de conexión: Live Connection, Import Data y DirectQuery; junto con sus diferencias, pros y contras, y los escenarios en los que se debe usar cada uno. Esta es una introducción y puede encontrase mayor información al respecto.