Power Query vs Power Pivot – Metadatos y relaciones

Anteriormente, en esta serie, vimos Power Query vs Power Pivot – Denormalizar

Estamos viendo cómo Power Query y Power Pivot consumen los metadatos del origen de datos subyacente, de un origen de Base de datos SQL Server.

Hoy vamos a ver qué ocurre con las relaciones entre tablas cuándo importamos tablas que pertenecen al mismo origen de datos SQL Server. En este escenario las tablas no se importarán a la vez, sino una a una.

Relaciones entre tablas y Power Query

Tenemos el Editor de consultas de Power Query con la tabla FactInternetSales de la base de datos AdventureWorksDW2012 que se corresponde con el ejemplo de Microsoft. Esta tabla contiene los hechos de las ventas y como ya sabemos, contiene también el acceso directo a todas las columnas de todas las tablas relacionadas.

tablaventas

En las entradas anteriores vimos la importancia y utilidad de estas columnas; pero ahora vamos a deshacernos de ellas, que no queden en las tablas que vamos a llevar al modelo de datos. Vamos a seleccionar todas estas columnas, que no pertenecen a la tabla, clic derecho y de las dos opciones disponibles para quitar columnas, seleccionemos la primera, Quitar columnas, que se encarga de eliminar todas las columnas seleccionadas.

quitarcol

Hasta aquí todo lo que necesitamos para la demo que les quiero hacer hoy.

codquitacol

Si queremos agregar otra tabla a la consulta y no hemos aprovechado lo que hemos aprendido en las entradas anteriores de esta misma serie. Vamos al menos a reutilizar la conexión. En Power Query, se trata de ir al menú de MS Office Excel, ficha Power Query – grupo Obtener datos externos y botón Orígenes recientes. De la lista seleccionamos el que necesitamos.

origrecientes

En Power Query la conexión a un origen de datos es a un servidor de datos, no a una base de datos, a menos que lo fijemos durante la conexión. La conexión puede ser también una ruta de fichero, ruta de carpeta, URL. En los ejemplos anteriores conectamos al servidor y esto es lo que podemos reutilizar y que además me parece muy conveniente, especialmente si trabajamos con varias bases de datos alojadas en el mismo servidor SQL Server.

Nos muestra el panel Navegador que contiene todas las bases de datos y todos sus contenidos respectivos, alojados en el servidor al que nos acabamos de conectar. Digamos que de este navegador seleccionamos la tabla de Productos, que se corresponde con DimProduct.

En esta tabla también eliminamos las columnas adicionales, cerramos y cargamos.

tablaprod

De esta forma tenemos dos consultas de las dos tablas.

dosconsultaspq

Si estuviéramos fuera del Modelo de datos, nos vamos al menú Excel, ficha PowerPivot, grupo Modelo de datos, comando Administrar, vista Diagrama,  vemos que las dos tablas están relacionadas, aun cuando han sido cargadas en momentos diferentes y que nos hemos encargado de eliminar todas las columnas extras aportadas por Power Query. Si en el modelo relacional subyacente, hay  relación entre las tablas, Power Query la detecta y la envía a Power Pivot.

tablasrelac

Relaciones entre tablas y Power Pivot

Por su parte, Power Pivot al conectar no nos pide solamente el servidor, sino que necesita también autenticar, una y otra vez, así como el catálogo o Base de datos, es decir, no hay forma de reutilizar la conexión para trabajar con diferentes Bases de datos alojadas en el mismo servidor.

conectapp

Tras definir la conexión, podemos seleccionar la o las tablas que necesitamos, en este caso, vamos a reproducir el escenario anterior y seleccionar una única tabla, FactInternetSales.

selectablaventaspp

Recordemos que desde este punto podemos filtrar tanto por filas como por columnas, no haremos nada más y nos iremos a importar directamente todas las columnas y filas de la tabla, no es lo óptimo; pero no es donde nos queremos detener hoy.

importaventas

Ya está, tenemos nuestra primera tabla y ahora queremos traernos otra, reutilizando la conexión anterior y afortunadamente podemos, ya que se trata de una tabla de la misma Base de datos.

Desde la ventana del modelo, en la ficha Inicio, grupo Obtener datos externos, seleccionamos el botón Conexiones existentes.

conexexistpp

Seleccionamos la conexión que deseamos reutilizar y de los botones de comando de la parte posterior seleccionamos Abrir.

abrirconexist

Lo que nos devuelve al Asistente para importación de tablas, directamente en el paso de escoger cómo importar los datos: desde tabla / vista o desde consulta TSQL.

selectabconspp

Siguiendo el mismo procedimiento, seleccionamos en este caso DimProduct

seleccdimprodpp

Importamos los datos

traedimprodpp

Y en la vista diagrama de nuestro modelo vemos que no hay relación entre las dos tablas, Power Pivot no ha podido leer bien los metadatos y no ha sido capaz de crear por sí mismo la relación entre tablas que se encuentran relacionadas en el origen de datos subyacente y que han sido importadas al modelo una a una.

sinrelacpp

Si traemos en un mismo paso varias tablas de una Base de datos al modelo Power Pivot, entonces sí que se reconoce la relación.

No te pierdas el resto de entradas de la serie Power Query vs Power Pivot

2 pensamientos en “Power Query vs Power Pivot – Metadatos y relaciones

  1. José De Jesús

    Buenos días Sra. Consultora BI con SQL Server, Sharepoint y Office Ana Bisbé (@ambynet) quisiera que me ayudara a usar la base de datos AdventureWorksDW2012 ya que la he descargado pero no tengo instalado sql server ni ningún programa de base de dato como se descomprime, para poder seguir su tutorial

    Me gusta

    Responder
    1. anabisbe Autor de la entrada

      Hola José
      Siento el retraso, estoy intentando ponerme al día con la web. ¿Se mantiene la problemática o está resuelta?
      Saludos,
      Ana

      Me gusta

      Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.