lunes, 28 de septiembre de 2015

Obtener datos externos - Desde una base de datos de Access

Para ver una versión actualizada de esta entrada visita el blog de mi nuevo sitio www.dataXbi.com


Dentro del grupo Obtener datos externos de la cinta de opciones Power Query, está la opción Desde una base de datos.




Esta opción nos permite importar datos desde diversos tipos de bases de datos como: Microsoft Access, Microsoft SQL Server, Microsoft Analysis Services, Oracle, MySql, PostgreSQL, etc.





Importar datos desde una base de datos Access

La opción Desde una base de datos de Access nos permite utilizar las tablas y consultas de una base de datos Access. Por cada tabla o consulta seleccionada obtendremos una consulta Power Query


Para el ejemplo usaremos la base de datos: ContosoSales.accdb que podemos descargar desde el siguiente enlace
 
http://powerpivotsdr.codeplex.com/ 

Una vez que hemos descargado el fichero ContosoV2.zip debemos descompactarlo. 




Seleccionamos la opción Obtener datos externos >> Desde una base de datos >> Desde una base de datos Access de la cinta de opciones Power Query.



 
A continuación escogemos la base de datos con la que vamos a trabajar, en el ejemplo ContosoSales.accdb



Power Query se conecta a la base de datos. Esta operación puede demorar unos minutos dependiendo del tamaño de la base de datos.



Se abre la ventana del navegador y seleccionar los elementos a importar. En el panel de la izquierda podemos seleccionar las tablas y/o consultas que utilizaremos. Podemos seleccionar varios elementos. 

Cuando seleccionamos un elemento del panel de la izquierda su contenido se muestra en el panel de la derecha.



Una vez que hemos escogido los datos debemos específicar donde queremos cargarlos. En la parte inferior del panel de la derecha desplegaremos el menú Cargar y escogeremos la opción Cargar en..



La opción por defecto es Tabla que mostrará los datos en forma de tablas en hojas de datos Excel. Podemos cambiar y escoger Crear solo conexión, de esta manera los datos no se almacenarán en hojas de datos Excel. También podemos seleccionar Agregar estos datos al Modelo de datos lo que nos permitirá usarlos posteriormente en Power Pivot.



En el ejemplo hemos escogido cargar los datos en tabla por lo que se mostrará cada conjunto de resultados en una hoja de cálculo diferente.



Si iniciamos el Editor de consultas de Power Query podemos observar en el navegador que se han creado dos consultas, cada consulta se refiere a cada una de las tablas seleccionadas.


Si hacemos clic sobre DimProduct en el panel de resultados se mostrará el contenido de la tabla. En el panel de Configuración de consulta podemos observar que se han aplicado dos pasos: Origen y Navegación.


Si abrimos el Editor avanzado veremos las fórmulas correspondientes a dichos pasos.



En la primera fórmula a Origen se le ha asignado el resultado de evaluar la función Access.Database que devuelve como resultado una tabla con la lista de tablas y consultas de la base de datos. A la función se le ha pasado como parámetro la función File.Contents. La función File.Contents recibe como parámetro la ubicación física de un fichero, en este caso ContosoSales.accdb y retorna el contenido binario del fichero. Ambas funciones pertenecen a la categoría de funciones Accessing data.

La segunda fórmula devuelve el contenido de  la tabla seleccionada, en este caso DimProducto.

Otra forma de obtener estos resultados es construir la consulta manualmente desde el Editor avanzado.

Para ello en la cinta de opciones Power Query, dentro del grupo Obtener datos externos, seleccionemos la opción Consulta en blanco en Desde otros orígenes.



Se inicia el Editor de Consultas de Power Query.




Abrimos el Editor avanzado.





Sustituimos el valor de origen por:

Origen = Access.Database(File.Contents("C:\soft\AdventureWorks DW 2012.accdb"))



Al presionar el botón Listo podemos ver en el editor de consultas el contenido de la base de datos (27 tablas y 1 vista)



En el Editor avanzado escribiremos una nueva fórmula para escoger la vista Products.

Products = Origen {["Schema = "", Item = "Products"]}[Data]




Al hacer clic en Listo se mostrará en el Editor de consultas el resultado de ejecutar la vista.



No hay comentarios:

Publicar un comentario