Power BI: connettere un database noSQL

Microsoft Power BI è la piattaforma di analisi che può trasformare dati semplici in report intelligenti e immagini ricche. Questo permette di analizzare e visualizzare i dati grezzi che ci aiutano a prendere le giuste decisioni che portano alla crescita della nostra azienda.

Per connettere Power BI con DB noSQL useremo API REST per eseguire le query. La maggior parte dei DB noSQL offrono questa funzionalità (ad esempio MongoDB, Couchbase, NosDB, ecc). Le API REST utilizzano lo strumento JSON per recuperare direttamente questa API. Lo strumento scelto per questo articolo è Postman (disponibile anche sul marketplace di Chrome). L’API REST combinata con Postman dà la piena visibilità delle connessioni e dei dati. Nell’esempio pratico utilizzeremo COUCHBASE e il suo linguaggio N1QL.

Preparare la Query

Attraverso il workbench di couchbase (https://docs.couchbase.com/server/6.0/tools/query-workbench.html) si possono preparare le query ad hoc, in alternativa è possibile utilizzare anche gli indici preconfigurati. Esporre la query tramite l’URL:http://server.couchbase:8093/query/service?statement=<query here>

Esempio:

http://server.couchbase:8093/query/service?statement= SELECT a.name, r.destinationairport, count(a.name) as total_flights FROM `travel-sample limit 10

Test

Con Postman (https://www.getpostman.com/) si può testare l’API.

Autenticazione

Se richiesta, l’autenticazione deve essere passata nell’header della chiamata

[Headers =[#”Authorization”=”Basic username:pasword”]]

Utente e password devono essere codificati usando la codifica base64. Per la codifica è possibile usare il link https://www.base64encode.org/

Power BI Desktop

Infine, è necessario attivare la versione desktop di Power BI. La versione desktop è gratuita ed è disponibile qui https://powerbi.microsoft.com/.

Recuperare i Dati

Andare al menu Get Data” e scegliere “Web” come metodo. Inserire l’URL preparato prima e selezionare Avanzate.

Nei parametri dell’intestazione della richiesta HTTP selezionare “Authorization” e inserire l’autenticazione Basic in formato base64 come in figura.

Fare clic su OK e attendere il risultato della chiamata. Se è andato a buon fine lo status è success.

Trasformare i Dati

Ora passeremo attraverso una serie di trasformazioni per preparare i nostri dati per la visualizzazione. Dopo aver trasmesso i risultati in Power BI, verranno visualizzati gli attributi JSON restituiti da N1QL. Esegui il drill in “results” facendo clic sul link “list” nella schermata.

Useremo la trasformazione in tabella per modellare il nostro JSON. Fare clic sul menu “To Table” in alto e non specificare un delimitatore. Basta fare clic su “OK”.

Successivamente, fare clic sulla piccola icona “split” nella parte superiore della colonna, nella cella della singola colonna per dividere gli attributi JSON in colonne separate nella tabella.

Ripetere lo “split” per ulteriori dettagli sulle colonne. Dove viene indicato “Record” è possibile dividere i dati in diverse colonne di dettagli; dove si trova “List” è possibile creare nuove righe della tabella. Si può anche selezionare quali campi estrarre e se mantenere il prefisso della colonna originaria.

Dopo aver fatto clic su OK, questo è come dovrebbe apparire la trasformazione dei dati completata. Semplicemente clic su “Close & Apply” nell’angolo in alto a sinistra.

Ora tutti i dati sono disponibili in Power BI

Una volta importate tutte le tabelle è possibile gestire le loro relazioni, trasformando così un DB non relazionale in un DB relazionale!

Esempi di Report

Nell’esempio sono stati utilizzati i dati di una startup di innovazione IOT (www.optimon.it), in particolare la lettura di sensori su attrezzature pubbliche di diversi comuni italiani.

Conclusioni

Una volta creato l’ambiente relazionale in Power BI il grosso del lavoro è fatto, da li poi si sono utilizzate varie funzioni DAX per la manipolazione dei dati e la creazione di report puntuali come ad esempio quello sul calcolo delle km percorsi tra due coordinate, ma questa è una altra storia…