PowerBI est pratique, n'est-ce pas?
Si vous le faites une fois, il est bon que l'analyse mensuelle soit effectuée automatiquement. Clarté qui vous permet d'organiser librement des graphiques et de comprendre les données souhaitées en un coup d'œil. Filtres et fonctions de conseil qui vous permettent d'approfondir votre analyse simplement en utilisant la souris. Relations entre les tables qui peuvent être connectées intuitivement. Coopération avec diverses sources de données. Après tout, je suis surpris que ce soit gratuit.
Je l'utilise également pour analyser des centaines de millions de données. C'est amusant d'utiliser la fonction d'indication pour montrer ce qui se passait à ce moment-là. Cependant, il y a un problème.
C'est ennuyeux de mettre à jour! !! Même si les données sont prétraitées, la lecture des données prend des dizaines de minutes. C'est stressant de vouloir l'éteindre rapidement. Le PC devient lourd. De plus, si vous essayez de mettre à jour sur un PC avec des spécifications faibles, il tombera en raison d'un manque de mémoire. Il semble que vous puissiez automatiquement mettre à jour avec Power BI sans marque au lieu de Power BI Desktop, mais cela sera facturé et la gestion des comptes est difficile.
Donc, cette fois, j'ai créé un programme en Python qui automatise PowerBI Desk Top.
J'utilise le planificateur de tâches de Windows 10 Pro pour exécuter régulièrement des programmes Python. J'utilise Pywinauto pour ouvrir le fichier pbix dans l'interface graphique, cliquez sur le bouton "Mettre à jour", puis enregistrez-le. À propos, la source de données est obtenue en se connectant à MySQL sur le serveur.
auto_pbi.py
import os
import sys
import time
from pywinauto import Desktop, Application, keyboard
def main(workbook):
exe = 'PBIDesktop.exe'
#Fichier ouvert
os.system('start "" "{0}"'.format(workbook))
app = Application(backend='uia').connect(path=exe)
time.sleep(60)
try:
#Spécifier la fenêtre
win = app.window(title_re = '.*Power BI Desktop')
win.set_focus()
#Cliquez sur Accueil> Mettre à jour
win.domicile.wait("visible")
win.domicile.click_input()
win.mise à jour.wait("visible")
win.mise à jour.click_input()
win.Annuler.wait_not("visible",timeout=6000)
#sauvegarder
keyboard.send_keys("^s")
time.sleep(120)
except Exception as e:
print(e)
finally:
app.kill()
if __name__ == '__main__':
try:
file_path = sys.argv[1]
except (IndexError):
print('Veuillez spécifier le fichier.')
sys.exit()
main(file_path)
Le code ci-dessus est spécifié dans auto_pbi.bat et exécuté dans le planificateur de tâches.
auto_pbi.bat
cd dossier spécifié
python.exe auto_pbi.rapport py.pbix
exit
Pour les fichiers Python, .py et pbix, il est recommandé de les écrire avec des chemins absolus. J'ai mis le rapport et le fichier py dans le dossier, j'ai donc déplacé le dossier sur la première ligne.
J'ai essayé d'exécuter ce programme sur un PC distant, mais cela n'a pas fonctionné. Si j'exécute moi-même le planificateur de tâches, cela fonctionne, mais si je déconnecte la connexion à distance et que j'essaie de l'exécuter avec un déclencheur, cela ne fonctionne pas. En effet, dans le cas d'un PC distant, l'écran du bureau est verrouillé lorsque le bureau distant est déconnecté. J'obtiens l'erreur suivante:
there is no active desktop required for moving mouse cursor!
Pour prendre cette mesure, vous devez configurer l'écran du bureau afin qu'il ne se verrouille pas lorsque le bureau distant est éteint. https://pywinauto.readthedocs.io/en/latest/remote_execution.html
J'ai pris la méthode d'utilisation de la commande suivante lors de la désactivation du bureau à distance. Veuillez changer l'endroit où se trouve \ # 80 en fonction de l'environnement. Ouvrez le Gestionnaire des tâches> Utilisateur sur le PC distant, cliquez avec le bouton droit sur la partie en-tête de chaque colonne et cochez "Session" pour afficher l'ID de session distante. Entrez la commande suivante à partir de l'invite de commande pour déconnecter la session de bureau à distance.
TSCON RDP-Tcp#80 /dest:console
Si je n'ai pas attendu un moment après le lancement de pbi, une erreur s'est produite car Windows ne s'est pas lancé. De plus, j'ai pensé que je devais faire attention de manière inattendue au processus de mise en veille après l'enregistrement avec Ctrl + S. Je pensais pouvoir terminer le processus de sauvegarde en 30 secondes environ, mais je ne pouvais pas. Je pense qu'il vaut mieux le garder plus longtemps que vous ne le pensez.
Si vous pouvez copier le fichier après la mise à jour et l'envoyer, ou si vous obtenez une erreur, envoyez un e-mail, etc., si vous pouvez le baser sur cela, vous pouvez enregistrer le traitement gênant tel que la mise à jour quotidienne du Big Data et envoyer une vie PowerBI confortable. Je pense que vous pouvez l'obtenir!
Recommended Posts