Zum Hauptinhalt springen
Zeit zu lesen: 4 Protokoll

In Teil 1 habe ich einige mögliche Szenarien für die Verwendung von Python mit Power BI außerhalb der integrierten visuellen Python- und Python-Skriptfunktionen vorgestellt. Dieser Beitrag konzentriert sich auf das Einrichten einer grundlegenden externen Tooldatei, die die Power BI-Datenmodellverbindung zur Verwendung in Python-Skripten übergibt. Es wird ein 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.

Solange das "erweiterte Metadatenformat" für das Datenmodell aktiviert ist und der JSON in Ihrer Datei korrekt ist, sollte Ihr neues Tool nach dem erneuten Öffnen von Power BI Desktop in der Multifunktionsleiste angezeigt werden.

Definieren wir ein externes Tool namens "Power BI Desktop Connection", das das Python-Logo in der Multifunktionsleiste und die aktuellen Informationen zur Power BI-Verbindung anzeigt, wenn Sie darauf klicken.

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

igraal_de-de
{
  "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": ""}

Aufschlüsselung des Inhalts:
Ausführung: ändere das nicht
Name: Anzeigename auf dem Power BI Desktop-Menüband
Beschreibung: Beschreibung des externen Werkzeugs (Sie würden denken, dass dies beim Scrollen als Alternativtext angezeigt wird, aber nur das 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.

Ich weiß, dass es eine Möglichkeit gibt, Code zum Konvertieren von Bildern in base64 zu verwenden, aber am Ende verwende ich aus praktischen Gründen immer eine Website wie diese: 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

Als Amazon-Mitarbeiter verdiene ich mit qualifizierten Einkäufen.

Error: Beachtung: Geschützter Inhalt.