Databricks : on stream des données dans Power BI en PUSH
Aujourd’hui nous allons voir comment pousser des données en temps réel dans un Dashbord Power BI avec Databricks grâce à la technologie structure streaming de Spark. Le but sera bien sûr de réaliser de magnifiques Dashboard avec des données qui se mettent à jour en temps réel et c’est vraiment la classe à Dallas !
Il existe déjà des tuto sur différents sites qui parlent de streaming avec Databricks et Power BI. Généralement, ils vont soit utiliser un dataset en directquery connecté avec le driver Spark de Power BI, ce qui d’un point de vue perf n’est pas tiptop, soit ajouter d’autres composants comme Azure Stream Analytic en “passe plat” pour qu’il pousse les données dans Power BI. Avec la solution que je vous propose dans cet article, Databricks va directement pousser les données dans Power BI.
Voici comment faire…
Côté Power BI
On va d’abord créer un streaming dataset dans un workspace Power BI
Choisir le type “API”
Définir le nom et la structure de la table : un champ “timestamp” de type DateTime et un champ “value” de type Nombre. Activer aussi l’analyse de données d’historique.
Puis très important, récupérer l’url push que l’on utilisera plus tard
Créer un nouveau Dashboard
Puis ajouter des vignettes de type données en temps réel
Sélectionner le dataset streaming que vous venez de créer
Choisir par exemple le type carte avec le champ value qui permettra d’afficher la dernière valeur reçu dans le dataset streaming
Ajouter d’autres vignettes de la même façon dans votre Dashboard
Coté Databricks
Connectez vous à votre workspace Databricks puis créer un cluster en choisissant la version 2.11 de Scala
Ajouter la librairie “org.scalaj:scalaj-http_2.11:2.4.2” via Maven
Nous allons maintenant créer un nouveau notebook scala connecté à ce cluster, puis coller le code suivant en remplaçant <URL PUSH> par la vraie url du dataset streaming copiée lors de l’étape de création du dataset au début de l’article
import org.joda.time._
import org.joda.time.format._
import scalaj.http._
import org.apache.spark.sql.ForeachWriter
import org.apache.spark.sql._
var urlpbi = "<URL PUSH>"
var stream = spark.readStream.format("rate").load()
def json(timestamp: String, value:String): String = s"""{"timestamp" :"$timestamp","value" :"$value"}"""
val writer = new ForeachWriter[Row] {
override def open(partitionId: Long, version: Long) = true
override def process(row: Row) = {
//println(row)
val url = urlpbi
val result = Http(url).postData(json(row(0).toString, row(1).toString))
.header("Content-Type", "application/json")
.header("Charset", "UTF-8")
.option(HttpOptions.readTimeout(10000)).asString
}
override def close(errorOrNull: Throwable) = {}
}
val query =
stream.writeStream
.foreach(writer)
.start()
Et si tout ce passe bien lorsque l’on exécute le notebook cela donnera ça :
Cet exemple utilise une source streaming de démo qui affiche un compteur qui s’incrémente toutes les secondes.
Dans un cas réel, il faudra bien sûr se brancher à une source streaming comme Azure Event Hub ou Azure CosmosDB Changefeed avec de vraies données. Et il faudra aussi prévoir un stockage type Data Lake en parallèle car les Dataset Power BI ne sont pas vraiment persistants : rétention de 200 000 lignes max, puis suppression des lignes les plus anciennes en mode FIFO… Pour la partie code, on peut aussi aller plus loin et faire plus propre en utilisant les API Power BI avec une véritable authentification, au lieu des URL “guest” utilisée dans cet article… mais le principe reste le même
Plus d’infos :
FIN
Views:
2 134
https://xn--koupitidik-04a14cx5a.com/
https://xn--kbe-krekort-ggbe.com/
købe kørekort B
https://xn—–7kchclcsdcvgr8afcd9cqkh2f.com/
kupiti vozačku dozvolu B
https://www.fuhrerschein-bekommen.com/
Führerschein kaufen B
acheter un permis de conduire
acheter son permis de conduire
Acheter un permis de conduire français enregistré en préfecture
acheter permis de conduire en ligne
acheter un permis de conduire
acheter son permis de conduire
Acheter un permis de conduire français enregistré en préfecture
acheter permis de conduire en ligne
kop korkort
kop korkortsboken
köpa körkort utomlands
koupit ridicsky prukaz
Comprar carta de conducao
carta de condução b
comprar carta de conducao em portuhttps://cartadeconducaoportugal.com/comprar-carta-de-conducao-legal/gal
comprar carta de conducao legal
Koop een rijbewijs voor alle landen van de EU-zone
+447424204843
https://rijbewijscbrkopen.com rijbewijs kopen belgie
https://rijbewijscbrkopen.com rijbewijs b kopen
https://rijbewijscbrkopen.com rijbewijs a
https://rijbewijscbrkopen.com rijbewijs kopen strafbaar
https://rijbewijscbrkopen.com geregistreerd rijbewijs kopen
https://rijbewijscbrkopen.com rijbewijs kopen betrouwbaar
Köp ett körkort för alla EU-länder
+48509273496
https://kopakorkortonline.com/ kop korkort
https://kopakorkortonline.com/kop-korkortsboken/ kop korkortsboken
https://kopakorkortonline.com/kopa-korkort-utomlands/ köpa körkort utomlands
Kupte si řidičský průkaz pro všechny země zóny EU
+420721017171
https://koupit-ridicskyprukaz.com koupit ridicsky prukaz
https://koupit-ridicskyprukaz.com/
https://koupit-ridicskyprukaz.com/cena-ridicsky-prukaz/
Compre uma carteira de motorista para todos os países da zona da UE
+447424204843
https://cartadeconducaoportugal.com/ Comprar carta de conducao
https://cartadeconducaoportugal.com/carta-de-conducao-b comprar carta de condução b
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-em-portugal comprar carta de conducao em portugal
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-em-portugal comprar carta de conducao em portugal
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-legal comprar carta de conducao legal
acheter un permis de conduire
acheter son permis de conduire
Acheter un permis de conduire français enregistré en préfecture
acheter permis de conduire en ligne
acheter un permis de conduire
acheter son permis de conduire
Acheter un permis de conduire français enregistré en préfecture
acheter permis de conduire en ligne
kop korkort
kop korkortsboken
köpa körkort utomlands
koupit ridicsky prukaz
Comprar carta de conducao
carta de condução b
comprar carta de conducao em portuhttps://cartadeconducaoportugal.com/comprar-carta-de-conducao-legal/gal
comprar carta de conducao legal
Kupte si řidičský průkaz pro všechny země zóny EU
+420721017171
https://koupit-ridicskyprukaz.com koupit ridicsky prukaz
https://koupit-ridicskyprukaz.com/
https://koupit-ridicskyprukaz.com/cena-ridicsky-prukaz/
Koop een rijbewijs voor alle landen van de EU-zone
+447424204843
https://rijbewijscbrkopen.com rijbewijs kopen belgie
https://rijbewijscbrkopen.com rijbewijs b kopen
https://rijbewijscbrkopen.com rijbewijs a
https://rijbewijscbrkopen.com rijbewijs kopen strafbaar
https://rijbewijscbrkopen.com geregistreerd rijbewijs kopen
https://rijbewijscbrkopen.com rijbewijs kopen betrouwbaar
Acheter un permis de conduire pour tous les pays de la zone UE
+351914390907
https://permisdeconduire-enregistre.com
https://permisdeconduire-enregistre.com acheter son permis de conduire
https://permisdeconduire-enregistre.com acheter un permis de conduire francais enregistre en prefecture
Köp ett körkort för alla EU-länder
+48509273496
https://kopakorkortonline.com/ kop korkort
https://kopakorkortonline.com/kop-korkortsboken/ kop korkortsboken
https://kopakorkortonline.com/kopa-korkort-utomlands/ köpa körkort utomlands
Compre uma carteira de motorista para todos os países da zona da UE
+447424204843
https://cartadeconducaoportugal.com/ Comprar carta de conducao
https://cartadeconducaoportugal.com/carta-de-conducao-b comprar carta de condução b
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-em-portugal comprar carta de conducao em portugal
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-em-portugal comprar carta de conducao em portugal
https://cartadeconducaoportugal.com/comprar-carta-de-conducao-legal comprar carta de conducao legal