Zum Hauptinhalt springen




Zeit zu lesen: 4 Protokoll

En la Parte 1, presenté algunos escenarios posibles para usar python con Power BI fuera de las funciones integradas de python visual y script de python. Esta publicación se centra en la configuración de un archivo de herramienta externo básico que pasa la conexión del modelo de datos de Power BI para su uso en Skripte de python. Va a ser un sehr Grundszenario, schafft aber die Voraussetzungen für hoffentlich bessere Dinge, wie in Teil 1 beschrieben.

Definieren Sie eine grundlegende PBITool-JSON-Datei

Um ein neues Tool in der Power BI Desktop-Multifunktionsleiste anzuzeigen, müssen Sie eine JSON-Datei definieren und in einem bestimmten Ordner auf Ihrer Workstation ablegen. das Höhepunkte Die externen Tools Tabular Editor, DAX Studio und ALM Toolkit verfügen über Installationsprogramme, die diesen Schritt ausführen. Da Sie kein dediziertes Installationsprogramm haben, um diese Datei im erforderlichen Verzeichnis abzulegen, Sie müssen Ihre manuell definieren.

Siempre que el «formato de Metadaten mejorado» para el modelo de datos esté habilitado y el JSON en su archivo Sein preciso, debería ver su nueva herramienta en la cinta después de volver a abrir Power BI Desktop.

Definamos una herramienta externa llamada «Conexión de escritorio de Power BI» que muestra el Logo de python en la cinta y muestra la información de conexión de Power BI actual cuando hace clic en ella.

<>

Kopieren Sie zunächst den folgenden JSON und fügen Sie ihn in einen Texteditor ein (Wesen).

{
  "version": "1.0",
  "Name": "[Werkzeugname]",
  "Beschreibung": "[Werkzeugbeschreibung]",
  "Pfad": "C: \[WEG ZU PYTHON AUSFÜHRBAR]\ python.exe ",
  "Argumente": "C: /[WEG ZU PYTHON SCRIPT].py "%server%" "%database%"",
  "iconData": "data: image / png; base64,[IHR BASE64-BILDINHALT]"
}

Hier ist ein Beispiel, das ich für mein grundlegendes Beispieltool ausgefüllt habe, um die aktuelle Power BI Desktop-Verbindung anzuzeigen. Ich benutze AnakondaAus diesem Grund sehen Sie python.exe vom Standardspeicherort von Anaconda in meinem Pfad.

 {"version": "1.0", "name": "Power BI Desktop Connection", "description": "Use python", "path": "C: \ ProgramData \ Anaconda3 \python.exe"," Argumente ":" C: / Users / DavidEldersveld / Documents / python /PowerBIConnectionString.py "%server%" "%database%"", "iconData": ""}

Desglosando el Inhalt:
Ausführung: ändere das nicht
Name: Anzeigename auf dem Power BI Desktop-Menüband
Beschreibung: descripción de la herramienta externa (pensaría que esto aparecería como texto alternativo cuando se desplaza, pero solo el Name wird beim Schweben angezeigt)
Straße: Weg zu dir python.exe Verfahren
Argumente: Befehlszeilenargumente, die an Ihre ausführbare Datei übergeben werden
iconData: base64-Bild, das für das Farbbandsymbol verwendet wird

Wenn Sie in der Datei [tool] .pbitool.json nach einem anderen Tool wie dem Tabelleneditor suchen, wird das angezeigt Server y Datenbank als die einzigen zwei Argumente übergeben. Für die Verwendung mit Python können diese verbleiben, aber Ihr erstes Argument muss in diesem Fall ein Python-Py-Skript sein.

Um diese Datei an Ihre anzupassen, ermitteln Sie die entsprechenden Werte und ersetzen Sie sie bei Bedarf.

 {"version": "1.0", "name": "[Werkzeugname]"," Beschreibung ":"[Werkzeugbeschreibung]"," Pfad ":" C: \[WEG ZU PYTHON AUSFÜHRBAR]\ python.exe "," Argumente ":" C: /[WEG ZU PYTHON SCRIPT].py "%server%" "%database%"",
  "iconData": "data:image/png;base64,[IHR BASE64-BILDINHALT]"
}

Die beiden wichtigsten werden die sein korrekter Pfad zu Ihrer python.exe und der erste Argumentwert mit dem korrekter Pfad zu Ihrem Python-Skript.

Sé que hay una forma de usar código para convertir imágenes a base64, pero siempre termino usando un sitio Netz como este por conveniencia: https://www.base64-image.de/

Fügen Sie Ihre [tool] .pbitool.json-Datei zum richtigen Ordner hinzu

Fügen Sie Ihre neue Datei zu Ihrer hinzu C: Programmdateien (x86) Allgemeine Dateien Externe Microsoft Shared Power BI Desktop-Tools Bindemittel.

Erstellen Sie Ihr Python-Skript

Die Datei [tool] .pbitool.json verwendete als erstes Argument eine .py-Datei. Woher kommt das? Es kommt von dir! Fügen Sie den Code, den Sie ausführen möchten, in diese Datei ein und speichern Sie ihn an dem Speicherort, den Sie in der Datei [tool] .pbitool.json angegeben haben.

Für mein Power BI Desktop Connection-Beispiel mein Beispielskript (Wesen) befindet sich unter dem ich als PowerBIConnectionString.py im oben beschriebenen Pfad [tool] .pbitool.json gespeichert habe. Das Skript druckt einfach die an ihn übergebenen Server- und Datenbankargumente, verkettet und druckt dann eine Verbindungszeichenfolge, mit der eine Verbindung zu diesem bestimmten Datenmodell hergestellt werden kann.

sys print importieren ('Power BI Desktop Connection') print (str (sys.argv [1])) print (str (sys.argv [2])) print ('') conn = "Provider = MSOLAP; Data Source = "+ str (sys.argv [1]) +"; Initial Catalog = ''; " print (conn) input () 

sys.argv [1] ist das dem Server entsprechende Argument und sys.argv [2] ist die GUID der Datenbank. Python beginnt bei 0, dem Wert des Arguments, das dem aktuellen Skript zugeordnet ist.

Wenn Sie die externen Tools schließlich mit Ihren eigenen Python-Skripten erweitern und die Power BI Desktop-Verbindung übergeben, werden Sie vertrauen sys.argv [1].

Die GUID der Datenbank wird in zukünftigen Skripten zum Einsatz kommen, ist jedoch für dieses erste Szenario nicht erforderlich. Sie müssen nur wissen, dass die Verbindungszeichenfolge lokal nur server: port benötigt.

Wenn sich sowohl das .py-Skript als auch [tool] Die .pbitool.json-Datei am richtigen Speicherort befindet und das Skript funktioniert, können Sie Power BI Desktop öffnen. Überprüfen Sie das Menüband Externe Tools, um das Skript auszuführen.

In Kürze in Teil 3: .NET + Python - Herstellen einer Verbindung zum tabellarischen Objektmodell (TOM)

Während dieses grundlegende Skript so funktioniert, wie es ist, gibt es ein Problem mit diesem Setup, das ich im nächsten Beitrag behandeln werde. python.exe wird unabhängig außerhalb einer Umgebung ausgeführt, sodass Pakete, die in die Datenbank oder in eine alternative virtuelle Umgebung geladen wurden, für das Skript nicht verfügbar sind.

Um eine Verbindung zum tabellarischen Objektmodell von Python herzustellen, benötigen wir ein wenig Hilfe von .NET und einigen Paketen in meiner Conda-Umgebung. Teil 3 enthält die Einstellungen für die Datei [tool] .pbitool.json, mit denen ich eine bestimmte virtuelle Python-Umgebung verwenden kann.

Zahlungslinks

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