MicroStrategy ONE
Erstellen Sie ein Python-fähiges Transaktions-Dashboard
Ab MicroStrategy ONE (März 2024) können Sie Python-aktivierte Transaktions-Dossiers in MicroStrategy-Cloud-Umgebungen und auf der MicroStrategy Cloud for Government-Plattform erstellen. Um ein Python-fähiges Transaktions-Dashboard zu erstellen und auszuführen, müssen Sie:
-
Stellen Sie sicher, dass die Umgebung die Verwendung des Python-Executors unterstützt
Diese Funktion wird auf der Microstrategy Cloud Environment-Plattform unterstützt. Kontakt MicroStrategy-Support, um diese Funktion zu aktivieren.
-
Wählen Sie eine Datenquelle mit einem öffentlichen Endpunkt zum Rückschreiben von Datenänderungen
-
Aktualisieren Sie die Metadaten auf die neueste Version
-
Erstellen eines transaktionsfähigen Dashboards
-
Erstellen Sie eine benutzerdefinierte Laufzeit und laden Sie alle erforderlichen Python-Pakete als Teil dieser Laufzeit herunter
-
Erstellen Sie ein Python-Skript mit den erforderlichen Datenmanipulationsaktionen
-
Konfigurieren des Dashboards mit dem zugehörigen Skript
Erste Schritte durch Erstellen eines transaktionsaktivierten Dashboards und führen Sie dann die nachstehenden Schritte aus.
Erstellen einer benutzerdefinierten Runtime
Das Privileg „Laufzeiten verwalten“ ist erforderlich. Benutzer mit dieser Berechtigung können Pakete von Drittanbietern herunterladen. Daher sollten nur geprüfte Analysten über diese Berechtigung verfügen.
Siehe Python-Laufzeitumgebungen erstellen und bearbeiten für weitere Informationen.
Benutzer mit der Berechtigung „Laufzeit verwalten“ können aktuell vorhandene Laufzeiten anzeigen und verwalten sowie neue erstellen. Alle Umgebungen haben eine Standardlaufzeit. Beim Erstellen einer Laufzeit können Benutzer deren Namen, Beschreibung, Adressen, mit denen eine Verbindung hergestellt werden kann, darauf installierte Pakete und eine Größe für die Skriptausführung ändern. Die Größe der Laufzeitinstanz bestimmt die Ressourcen (CPU und Speicher), die für jede mit dieser Laufzeit verknüpfte Skriptausführung verfügbar sind.
- Öffnen Sie Workstation und eine Verbindung zu einer Umgebung herstellen.
-
Klicken Sie im Navigationsbereich auf Monitore.
Alle Umgebungen haben den Standard-Laufzeitnamen (Standardeinstellung) MicroStrategy.
Zu den Standardlaufzeiten gehören die neuesten Versionen der Python- und mstrio-Pakete sowie eine Standardinstanzgröße und eine Standardkonfiguration für den Netzwerkzugriff. Benutzer können das mstrio-Paket verwenden, um unter Verwendung der Standardlaufzeitumgebung auf MicroStrategy-Daten zuzugreifen.
Benutzer können die Konfiguration der Standardlaufzeit nicht ändern. Wenn ein Benutzer die Instanzgröße, den Netzwerkzugriff oder die Paketkonfiguration anpassen möchte, muss er eine neue Laufzeit erstellen.
-
Klicken Sie im linken Bereich auf neben Laufzeitumgebung.
-
Geben Sie a ein Laufzeitname und Beschreibung. Neu erstellte Laufzeitumgebungen verwenden die neueste Python-Version. Für vorhandene Laufzeiten können Sie auf die neueste Python-Version aktualisieren. Der Standard Instanzgröße der Laufzeitumgebung ist 0,2 vCPU 0,5 GB Speicher.
-
In Netzwerkzugriff, geben Sie das Netzwerk mit zulässigem Zugriff über die Python-Laufzeit ein. Das Format muss folgen Klassenloses Inter-Domänen-Routing (CIDR) im Format 141.193.213.21/32.
-
Klicken Sie auf unten links, um ein neues Paket hinzuzufügen, das in der Python-Laufzeitumgebung installiert werden soll. Wenn die Paketversion nicht angegeben ist, wird die neueste Version installiert. Verwenden Sie das Format: [Paketname][Leerzeichen][Paketversion].
Beispiele:
-
Anfragen 2.28.1
-
Anfragen
-
-
Klicken Sie auf Hinzufügen.
-
Pakete unterstützen in der Regel die Konnektivität zur Datenquelle, um Datenänderungen zurückzuschreiben, Manipulationen mit MicroStrategy-APIs zu unterstützen oder eine Verbindung mit anderen Anwendungen wie Microsoft Teams herzustellen. Klicken Sie auf den Pypi-Link, um den genauen Paketnamen und die Version zum Herunterladen zu finden.
-
Klicken Sie auf Hinzufügen, um die Laufzeitumgebung zu speichern und auf den Abschluss der Installation zu warten. Aktualisieren Sie die Seite, um den Status zu überprüfen.
Einige hilfreiche Tipps:
-
Drücken Sie nach dem Füllen der einzelnen Felder (Netzwerkzugriff, Paketname und Version) die Eingabetaste, bevor Sie auf klicken Hinzufügen oder OK, um die Änderung zu bestätigen.
-
Sie können einer Laufzeit mehr als ein Paket hinzufügen.
-
Fügen Sie nach der Objektmigration von einer Umgebung in eine andere Pakete in den neuen Umgebungen erneut hinzu, um die Laufzeit vorzubereiten. Ohne diesen zusätzlichen Schritt funktioniert die Laufzeit nicht.
-
Standardmäßig ist Jeder hat a Anzeigen ACL für eine Laufzeitumgebung.
Erstellen eines benutzerdefinierten Python-Skripts
Richten Sie Benutzer mit den folgenden Berechtigungen ein:
-
Verwenden Sie Skripte Python
-
Python-Skripts zertifizieren
-
Die folgenden ACLs werden empfohlen:
-
Zum Lesen von Skripten ist eine Lese-ACL für Skripte erforderlich.
-
Für Aktualisierungsskripte ist eine Schreib-ACL für Skripte erforderlich.
-
Zum Ausführen von Skripts ist eine Ausführungs-ACL für Skripts und eine Ausführungs-ACL für Laufzeiten erforderlich.
-
- Öffnen Sie Workstation und eine Verbindung zu einer Umgebung herstellen.
-
Klicken Sie im Navigationsbereich auf neben Skripts.
-
Öffnen Sie die Skripteinstellungen, um den Skripttyp in zu ändern Transaktion und wählen Sie die entsprechende Python-Laufzeitumgebung aus.
-
Beginnen Sie mit der Erstellung eines Skripts, indem Sie eine Vorlage aus der Galerie auswählen und ändern oder von vorne beginnen.
-
Variablen in einem Skript werden normalerweise Spalten im Dashboard-Raster zugeordnet. Bei der Definition von Variablen gilt Spalte -Parameter ist standardmäßig aktiviert. Deaktivieren Sie diese Option für nicht transaktionale Variablen, z. B. wenn die Variable für den internen Gebrauch bestimmt ist, etwa zum Herstellen einer Verbindung mit einer Datenquelle.
-
Wählen Sie als Kennwort für die Datenquellenverbindung die nicht transaktionale Typvariable aus: Geheimnis.
-
Erwägen Sie die Einbindung einer Systemaufforderungsvariable, um die Anmeldungen der Benutzer aufzuzeichnen und zu sehen, wer Änderungen an den Daten vornimmt.
-
Die Standardaktionstypen sind „Auswählen“, „Einfügen“ und „Aktualisieren“. Um zusätzlich zu diesen neue Aktionstypen zu erstellen, z. B. die Kombination von Select und Update, wählen Sie aus Transaktionstyp in Variablentyp. In einem einzelnen Python-Transaktionsskript kann nur eine Variable als festgelegt werden Transaktionstyp.
-
Bei einer Variablen, die dem Primärschlüssel einer Tabelle in einer Writeback-Datenquelle zugeordnet ist, möchten Sie nicht, dass der Verbraucher den Primärschlüssel ändert. In dieser Situation sollten Sie deaktivieren Bearbeitbar Parameter.
-
Markieren Sie für Spalten in der Datenquelle, die keine NULL-Werte zulassen, diese Variable als erforderlich, indem Sie aktivieren Erforderlich Parameter.
-
Wenn eine Variable nicht Erforderlich können Autoren entscheiden, ob eine Spalte leer gelassen werden kann oder nicht, je nachdem, was die Datenbank zulässt.
-
Aktivieren Sie für Spalten, die von Benutzern bearbeitet werden sollen, die Bearbeitbar Parameter.
-
Für die Transaktionsvorgänge können nur zertifizierte Python-Transaktionsskripte verwendet werden. Sie sollten das Skript daher zertifizieren, sobald es für den Produktionseinsatz bereit ist. Die Benutzergruppe, die Python-Transaktionsraster verwendet, sollte über die Ansichts-ACL für dieses Skript verfügen.
Empfohlene Vorgehensweise
-
Lernen Sie anhand einer Beispielcodevorlage.
-
Wählen Sie für Datenquellen, die atomare Transaktionen unterstützen, beim Vorbereiten der Laufzeit das Paket aus, das die atomare Transaktion unterstützt. Fügen Sie im Python-Skript Abschnitte hinzu, um atomare Transaktionen zu verarbeiten.
-
Verwenden Sie ggf. parametrisierte Abfragen. Auf diese Weise ausgeführte Abfragen sind nicht anfällig für Injektionsangriffe, da die Abfrage und die Parameter separat zur Ausführung gesendet werden.
-
Da der Ersteller des Python-Transaktionsskripts und der Autor des Transaktions-Dashboards nicht unbedingt dieselbe Person sind, stellen Sie die Parität zwischen dem Skript und dem Dashboard sicher. Hierzu gehört die Definition der Datenquellentabelle zum Zurückschreiben, das Zuordnen von Beziehungen zwischen den im Python-Skript definierten Variablen und dem Transaktionsrasterobjekt des Dashboards, welches Objekt bearbeitet werden kann usw.
-
Das Skript sollte detaillierte Beschreibungen dessen enthalten, was das Python-Skript unterstützt (Daten aktualisieren, neue Daten einfügen, Zeilen zum Löschen oder Einfügen in eine andere Tabelle auswählen, Microsoft Teams-Nachrichten senden, E-Mails senden usw.). Der Dashboard-Autor kann die Beschreibung des Python-Skripts aus dem Dashboard-Editor abrufen. Nur eine Person mit den entsprechenden Berechtigungen und ACLs kann Python scr öffnen
Konfigurieren des Dashboards mit dem zugehörigen Python-Skript
Erforderliche Berechtigungen
So konfigurieren Sie Transaktionen auf einem Dashboard:
-
Webkonfigurationstransaktion
-
Verwenden Sie Skripte Python
-
ACL für das zugehörige Skript anzeigen
So richten Sie Benutzer für die Nutzung des Dashboards und das Übermitteln von Änderungen ein:
-
Transaktion ausführen
-
ACL für das Skript anzeigen
Weitere grundsätzlich erforderliche Library-Web-Privilegien:
-
Library Web verwenden
-
Web-Dashboard erstellen
-
Dashboard für Webbearbeitung
-
Web-Speicher-Dashboard
-
Webbasiertes Dashboard
-
Erstellen von Anwendungsobjekten
-
Python-basierte Transaktionen sind für die Verwendung mit modernen Grids konzipiert. Wählen Sie eine Tabelle aus, öffnen Sie den Abschnitt „Format“ und klicken Sie auf Transaktionsoptionen .
-
Klicken Sie auf Python verwenden.
-
Wählen Sie Aktionstypen aus und geben Sie einen benutzerdefinierten Aktionsnamen, Schaltflächennamen usw. ein.
-
Aktionstypen sind die Aktionen, die der Verbraucher auf diesem Dashboard ausführen darf. Es muss mindestens ein Aktionstyp ausgewählt werden.
-
Geben Sie der Aktion einen aussagekräftigen Namen, beschreiben Sie, was die Aktion tun kann, und geben Sie der Schaltfläche einen Namen.
Beispiel:
-
Name der Aktion Kundenalter aktualisieren
-
Beschreibung Bitte aktualisieren Sie das Alter des Kunden in der Spalte „Kundenalter“.
-
Name der Schaltfläche Übermitteln
-
-
Sie können Aktionen kombinieren. Sie können beispielsweise vorhandene Daten ändern und gleichzeitig zusätzliche Datenzeilen hinzufügen. Wählen Sie Aktionsnamen, die dieses Verhalten entsprechend widerspiegeln.
-
-
Klicken Sie auf Wählen Sie Python-Skript aus um alle Transaktions-Python-Skripts aus dem Projekt abzurufen, in dem sich das Dashboard befindet. Standardmäßig werden nur zertifizierte Skripts angezeigt. Verwenden Sie den Filter, um durch die Liste zu navigieren und das Zielskript zu finden.
-
Nach Auswahl eines Skripts wird der Mapping-Bereich angezeigt. Der ausgewählte Skriptname wird mit einem Informationssymbol angezeigt, um die Skriptbeschreibung anzuzeigen. Oben rechts in diesem Abschnitt befindet sich ein Symbol zum Ersetzen des ausgewählten Skripts und ein Symbol zum Aktualisieren der Skriptliste aus den Metadaten. Variablen, die Daten erfordern, sind mit einem Sternchen (*) gekennzeichnet. In diesen Fällen muss zum Speichern der Konfiguration eine Zuordnung bereitgestellt werden.
Aktionstypen
-
Ändern von Daten in der Tabelle zulassen Die Bearbeitbar Option ist aktiviert. Autoren können die Variable auswählen, die Verbraucher ändern können sollen.
-
Daten zur Tabelle werden hinzugefügt Die Neuer Dateneintrag Die Option ist ausgewählt und Sie können die Variablen auswählen, die von Benutzern eingefügt werden sollen.
-
Aktion für ausgewählte Zeilen ausführen Die Bearbeitbar und Neuer Dateneintrag -Optionen sind beide deaktiviert. In diesen Fällen wird die Zeilennummer an das Skript übergeben. Das Skript legt fest, welche Aktion für diese Zeile ausgeführt wird. Mit dieser Aktion können Sie beispielsweise eine Zeile aus dem Raster löschen.
-
-
Informationen zum Konfigurieren der Eingabesteuerelemente finden Sie unter Transaktionen in Tabellen.
-
Klicken Sie auf um weitere Aktionen hinzuzufügen und die Nachricht zu konfigurieren, die nach der Übermittlung angezeigt werden soll.
-
Klicken Sie auf Fertig um Ihre Transaktion abzuschließen und Speichern im Dashboard angezeigt.
Empfohlene Vorgehensweise
-
Abhängig von der Datenquelle ist zum Rückschreiben von Datenänderungen normalerweise die SQL-basierte die erste Wahl. Wenn die Datenquelle Webdienste sind, ist Python die bevorzugte Option.
-
Verwenden Sie Python-Skripte für komplexere Workflows, die Datenänderungen mit Aktionen wie dem Senden von E-Mails, Aktualisieren von Slack usw. kombinieren.
-
Wir empfehlen eine 1:1-Zuordnungsbeziehung zwischen der Skriptvariable und den Rasterobjekten, um die Konfiguration der Eingabesteuerung zu vereinfachen und festzulegen, ob das Rasterobjekt bearbeitet werden kann oder nicht.
Verwenden Sie Python-Transaktionen für Datenoperationen
-
Die Inline-Bearbeitung wird für Python-basierte Transaktionen nicht unterstützt, daher werden alle Datenänderungen im Massenmodus durchgeführt. Klicken Sie auf um mit dem Ändern von Daten zu beginnen.
-
Sowohl Auswahl als auch Datenänderung werden für eine einzelne Aktion unterstützt.
-
Für Aktionen, die Auswahl, Änderung oder Dateneinfügung unterstützen, klicken Sie auf Fügen Sie Daten hinzu, um neue Daten bereitzustellen. Klicken Sie abschließend auf Hinzufügen.
-
Klicken Sie auf Übermitteln.
Empfehlungen zur Systemkonfiguration
Containerisierte Umgebungen ermöglichen die direkte Ausführung von Skripts in einer MicroStrategy-Umgebung, ohne dass ein Computer ausgeführt werden muss. Sie können Ihre Skripte in diesen Umgebungen speichern und überall innerhalb der Workstation darauf zugreifen sowie anderen Administratoren Zugriff gewähren. Derzeit ist die Unterstützung der serverseitigen Skriptausführung nur für Containerumgebungen aktiviert.
Sie können die Leistung von Python-Transaktionsanforderungen auf folgende Weise verbessern:
Passen Sie die Größe der Runtime-Instanz an
-
Klicken Sie im Navigationsbereich auf Monitore.
-
Klicken Sie im linken Bereich auf Laufzeitumgebung.
-
Klicken Sie in der Tabelle mit der rechten Maustaste auf die -Laufzeitumgebung, und wählen Sie aus Bearbeiten.
-
Passen Sie an Instanzgröße der Laufzeitumgebung.
Warum sollte ich die Laufzeitgröße ändern?
Die Standardlaufzeitgröße reicht möglicherweise nicht für den Speicherbedarf Ihres Skripts aus. Durch Erhöhen der Laufzeitgröße können Sie sicherstellen, dass Ihr Skript über genügend Speicher verfügt, um ohne Fehler oder Abstürze ausgeführt zu werden. Wenn Sie beispielsweise ein Skript zum Erstellen einer Datenquelle verwenden, sollten Sie größere Laufzeiten verwenden, da ein zum Erstellen von Tabellen verwendetes Skript diese in den Speicher laden könnte.
Welche Risiken sind mit der Verwendung einer großen Umgebung verbunden?
Eine große Containerumgebung kann auch viel Speicher verbrauchen, was zu Leistungsproblemen auf dem Hostcomputer und möglicherweise zum Absturz des Containers führen kann. MicroStrategy-Container verfügen über einen begrenzten Speicher für Python-Laufzeitumgebungen. Dies ist derzeit für containerisierte Umgebungen auf 6 vCPU und 20 GB Arbeitsspeicher beschränkt. Es ist wichtig, die Größe und Komplexität Ihrer Containerumgebung regelmäßig zu bewerten und sicherzustellen, dass sie Ihren Leistungs-, Sicherheits- und Wartungsanforderungen entspricht. Um die Ressourcennutzung zu reduzieren, ist es am besten, Verwaltungsskripts mit kleineren Laufzeiten auszuführen.
Laufzeiteinstellungen anpassen
-
Klicken Sie im Navigationsbereich auf Monitore.
-
Klicken Sie im linken Bereich auf Laufzeitumgebung.
-
Klicken Sie in der Tabelle mit der rechten Maustaste auf die -Laufzeitumgebung, und wählen Sie aus Informationen abrufen.
-
Klicken Sie im linken Bereich auf Alle Einstellungen.
-
Passen Sie die Laufzeiteinstellungen an.
Skript-Zeitüberschreitung (Sek.) Zeitüberschreitungseinstellung für Python-Skriptausführung. Die Standardeinstellung beträgt 600 Sekunden.
Standardmäßige Pod-Instanz-Nummer Die Standardanzahl einer zwischengespeicherten Python-Ausführungsinstanz.
Python-Ausführungsinstanz Wenn ein Python-Skript auf Basis einer Python-Laufzeitumgebung ausgeführt wird, wird eine Python-Ausführungsinstanz erstellt, die entsprechend zwischengespeichert werden kann Standardmäßige Pod-Instanz-Nummer und Maximale Pod-Instanz-Nummer (Begrenzungen für insgesamt ausgeführte Skripte) Einstellungen vornehmen.
Maximale Pod-Instanz-Nummer (Begrenzungen für insgesamt ausgeführte Skripte) Die maximale Anzahl von Python-Ausführungsinstanzen, die basierend auf der Laufzeitumgebung erstellt werden können.
Laufzeit Standard-Pod-Instanznummer | Maximale Anzahl von Pod-Instanzen zur Laufzeit (Gesamtlimits für ausgeführte Skripte) | Empfehlung |
---|---|---|
1 | 1 | Für Gelegenheitsbenutzer mit geringer Nutzung und geringer Parallelität, für die die Reaktionszeit wichtig ist. Da der Python-Executor-Pod immer aktiv ist, kann die Aufwärmzeit des Pods reduziert werden, die Gesamtkosten sind jedoch höher. Eine Kapsel ist immer eingeschaltet. |
1 | N>1 | Für Gelegenheitsbenutzer mit geringer Nutzung und etwas Parallelität, die jedoch nicht sehr empfindlich auf die Reaktionszeit reagieren. Da immer ein Python-Executor-Pod aktiv ist und auf Anforderung bis zu N-1 Pods aktiv sein können, kann diese Konfiguration mehr Parallelitätsfälle unterstützen. Bei manchen Benutzern ist die Reaktionszeit gut, bei anderen kann es zu einer Aufwärmzeit des Pods kommen. Ein Pod ist immer aktiv und bis zu N-1 Pods können zu einem bestimmten Zeitpunkt gestartet und aktiviert werden. Anschließend können sie nach einer Leerlaufzeit von mehr als zwei Minuten gestoppt werden. |
X>0 | = Standard-Pod-Instanznummer | Für ernsthafte Benutzer mit mehr gleichzeitiger Nutzung, für die die Reaktionszeit wichtig ist. Der Preis ist höher, da ständig X-Runtime-Pods aktiv sein werden. |
Bekannte Einschränkungen
Leistung
Die aktuelle Logik für die Remote-Ausführung von Python lautet:
-
Die benutzerdefinierte Paketinstallation für eine bestimmte Laufzeit erfolgt auf den persistenten Datenträgern, wenn der Executor-Pod erstellt und der persistente Datenträger im Container des Python-Executors bereitgestellt wird.
-
Der Hauptprozess des Python-Dienstes ist für die Anfrage- und Antwortverarbeitung zuständig. Die eigentliche Skriptausführung wird durch den Unterprozess gestartet. Daher versucht der Python-Interpreter bei jeder Ausführung der Python-Skripte, das verwendete Paket in den Speicher des Unterprozesses zu laden.
Da es immer noch zu Verzögerungen kommt, wenn der Container die Daten in das persistente Volumen importiert, entsteht für den Unterprozess zum Ausführen der Skripte ein zusätzlicher Zeitaufwand, auch wenn der Pod bereits aufgewärmt ist.
Datenquellenverbindungen
Wenn bei privaten lokalen Datenquellen keine Netzwerkverbindung zwischen dem Python-Executor-Pod-Container und der privaten Datenquelle besteht, werden Python-Transaktionen nicht unterstützt. Grundsätzlich können Datenquellen mit öffentlichen Endpunkten genutzt werden.
In Verbindung stehende Artikel