Power BI

Jupyter como herramienta externa para Power BI Desktop (Python Parte 4)

Tiempo de leer: 4 minutos

Mucha gente usa Python con cuadernos, así que echemos un vistazo a una forma posible de habilitar un Jupyter herramienta externa para Power BI Desktop. El siguiente enfoque escalonado comienza con simplemente abrir Jupyter. Luego avanza para crear y abrir un cuaderno que incluye Power BI servidor y base de datos argumentos. Finalmente, se abre camino hacia la descarga de una definición de cuaderno contenida en una esencia de GitHub y se conecta al modelo tabular de Power BI para comenzar a hacer que este enfoque sea más útil.

Esta publicación continúa una serie de publicaciones relacionadas con Python y Power BI. Las primeras tres partes de esta serie de blogs introdujeron algunos usos posibles de Python conectado a un modelo de Power BI, cómo configurar una herramienta externa básica de Python y cómo usarla con un entorno virtual y conectarse al modelo de objetos tabulares.

Open Jupyter: fundamental pero no útil

Yo uso el Anaconda distribución en estos ejemplos, y consideremos cómo simplemente iniciar y abrir un cuaderno (vainilla Jupyter y nada con JupyterLab). Solo necesitamos un archivo pbitool.json en esta etapa porque el objetivo es simplemente iniciar Jupyter, ni siquiera un archivo de cuaderno. No es un ejemplo útil, pero proporciona una base sobre la que construiremos.

Como se discutió en la Parte 2, los archivos pbitool.json definen las herramientas externas de Power BI Desktop. Si observa el acceso directo de Jupyter, proporciona la inspiración sobre cómo definir la herramienta externa de Power BI.

image-9396482

El JSON en esta esencia debería guardarse como un [tool].pbitool.json y se coloca en C: Archivos de programa (x86) Archivos comunes Microsoft Shared Power BI Desktop Herramientas externas.

Tenga en cuenta que la ruta es para Python.exe y los argumentos cargan el entorno Python predeterminado y ejecutan el jupyter-notebook-script.py script para iniciar Jupyter.

image-1-5659520

Sin embargo, no tiene ningún valor simplemente abrir Jupyter. En esta etapa, no es más que un reemplazo de un atajo. El valor real es integrar Power BI Desktop más estrechamente con el portátil.

Crear y abrir un cuaderno (codificado)

Yendo un paso más allá, creemos un cuaderno vacío y escribamos la información de conexión de Power BI Desktop actualmente abierta en las celdas del cuaderno. En este caso, necesitamos un script Python junto con un nuevo [tool]Archivo .pbitool.json.

los [tool]El archivo .pbitool.json tiene algunas diferencias con la versión anterior. En particular, ejecuta un script de Python que he nombrado powerbinotebook.py y colocado en mi C: Temp directorio. También verá el servidor y base de datos argumentos que usa Power BI Desktop para pasar la conexión local actual (servidor: puerto y GUID de la base de datos).

C: /Temp/powerbinotebook.py ”% servidor% ” ”% base de datos% ”

El resto de los argumentos inician el entorno Python predeterminado y ejecutan Jupyter, pero es importante que el powerbinotebook.py El script se ejecuta antes de que se inicie Jupyter. ¿Porqué es eso?

El script Python define un cuaderno casi vacío para Jupyter y luego lo lanza en Jupyter. Pon mucha atención a notebook_core, que contiene la definición JSON para el cuaderno y escribe sys.argv[1] y sys.argv[2] en el cuaderno para el servidor de Power BI y la base de datos respectivamente. Cada celda en el células La matriz aparecerá como una celda separada en el cuaderno de muestra. Como lo requiere la definición pbitool.json anterior, la secuencia de comandos de Python se encuentra en C: Temp powerbinotebook.py, y obviamente podría nombrar y guardar el suyo en la ubicación que elija.

Quizás te interesa >>>  Gráfico de líneas y columnas agrupadas en Power BI
image-2-8664612

El siguiente video muestra la ejecución básica del script, donde el script de Python crea el cuaderno, inicia Jupyter y Jupyter inicia el cuaderno.

Crear y abrir un cuaderno definido en un Gist de GitHub

Yendo un paso más allá, cambiemos la definición del cuaderno a una esencia de GitHub en lugar de codificarla en el script de Python. La esencia contiene JSON y también marcadores de posición para <> y <>, que la secuencia de comandos de Python reemplazará con el archivo sys.argv real[1] y sys.argv[2] valores.

Ejemplo de esencia (no incrustado en la publicación): https://gist.github.com/deldersveld/fdada06b82621233d6e40fac13cceb55

Yo usé lo mismo [tool].pbitool.json, ya que solo cambia el contenido del script powerbinotebook.py. Tenga en cuenta que el script es mucho más corto ahora que ya no contiene la definición del cuaderno. Esto usa el peticiones biblioteca para obtener la plantilla de cuaderno JSON de la URL definida en gist_url. Note también cómo reemplazar intercambia los valores actuales del servidor y la base de datos de Power BI.

Ampliación de la definición del portátil

Finalmente, construyamos un cuaderno un poco más complejo con una actualización powerbinotebook.py guión. Como antes, no se requieren modificaciones para [tool].pbitool.json. Solo se actualiza la secuencia de comandos de Python.

Aquí está el Gist del cuaderno actualizado como referencia (no incrustado en la publicación):
https://gist.github.com/deldersveld/70e05dbc97086181641592f03d314800

Al igual que con el último ejemplo, el script de Python descarga la nueva definición de cuaderno contenida en una esencia de GitHub diferente. Además, como antes, reemplaza los marcadores de posición <> y <> con los valores reales pasados ​​a sys.argv desde Power BI Desktop.

Lo nuevo aquí es que este script descarga el ssas_api.py módulo mencionado en la publicación de la Parte 3, que es una de las muchas formas posibles de conectar Python a AMO / TOM y otras bibliotecas .NET. El cuaderno de muestra actualizado carga el módulo y demuestra la conectividad del modelo básico.

TENGA EN CUENTA que la secuencia de comandos no sobrescribe intencionalmente un cuaderno una vez que se crea para un número de puerto específico. Para obtener una nueva plantilla en blanco si está probando esto, simplemente requiere cerrar y volver a abrir Power BI Desktop. La conexión a TOM en este ejemplo también requiere una conexión de Power BI Desktop con al menos una tabla existente.

Aquí tienes un vistazo al cuaderno de muestra en acción. Ilustra dos cosas: una conexión básica a TOM y la evaluación de una consulta DAX con el modelo abierto en Power BI Desktop.

Desbloqueo de más

Con una conexión en vivo al modelo de Power BI Desktop de Python, puede desbloquear muchas posibilidades. Como se describe en la Parte 1, hay muchos ejemplos que van desde la visualización de datos hasta la actualización del modelo. Tengo curiosidad por conocer su opinión sobre cómo le gustaría usar Python en Power BI.

Házmelo saber en los comentarios y no olvides suscribirte al blog de DataVeld.

Enlaces de pago

Como asociado de Amazon, gano con las compras que califican.

error: Atención: Contenido protegido.