Definire la granularità dei dati
La granularità dei dati corrisponde ai dettagli rappresentati nei dati, ovvero maggiore è la granularità dei dati, maggiore è il livello di dettaglio nei dati.
La granularità dei dati è un argomento importante per tutti gli analisti dei dati, indipendentemente dagli strumenti di Power BI usati. Definire la granularità corretta dei dati può avere un notevole impatto sulle prestazioni e sull'usabilità dei report e degli oggetti visivi di Power BI.
Granularità dei dati definita
Si consideri uno scenario in cui la società gestisce 1.000 autoarticolati refrigerati. Ogni veicolo usa un'applicazione Microsoft Azure IoT per registrare la temperatura corrente a intervalli di pochi minuti. Questa temperatura è importante per l'organizzazione perché, in caso di malfunzionamento della refrigerazione, si potrebbe rovinare l'intero carico, con danni di migliaia di euro. Con così tanti veicoli e così tanti sensori, viene generata una grande quantità di dati ogni giorno. Gli utenti dei report vogliono evitare di dover setacciare innumerevoli record per trovare quelli a cui sono particolarmente interessati.
Come è possibile modificare la granularità dei dati per rendere il modello semantico più utilizzabile?
In questo scenario, potrebbe essere utile importare i dati usando una media giornaliera per ogni veicolo. Questo approccio ridurrebbe i record del database a un solo record per ogni veicolo per ogni giorno. Se si decide che l'approccio è abbastanza accettabile per tenere traccia dei costi e degli errori, è possibile usare tale granularità dei dati. In alternativa, si potrebbe selezionare l'ultima temperatura registrata oppure importare solo i record con valori superiori o inferiori rispetto a un intervallo di temperature normale. Uno di questi metodi consentirà di ridurre il totale dei record importati, rendendo al tempo stesso disponibili dati completi e utili.
Per scenari diversi si potrebbe stabilire una granularità dei dati definita settimanalmente, mensilmente o trimestralmente. In genere, minore è il numero di record usati, più veloce sarà il funzionamento di report e oggetti visivi. Questo approccio si traduce in una frequenza di aggiornamento più veloce per l'intero modello semantico, che potrebbe significare che è possibile aggiornare più frequentemente.
Questo approccio ha tuttavia uno svantaggio. Se gli utenti vogliono eseguire il drill-down di ogni singola transazione, il riepilogo della granularità impedirà loro di farlo, con un potenziale impatto negativo sull'esperienza utente. È importante negoziare il livello di granularità dei dati con gli utenti dei report in modo che comprendano le implicazioni di queste scelte.
Modificare la granularità dei dati per creare una relazione tra due tabelle
La granularità dei dati può avere un impatto anche quando si creano relazioni tra tabelle in Power BI.
Si consideri, ad esempio, che si stanno creando report per il team Sales in Tailwind Traders. È stato chiesto di creare una matrice di vendite totali e budget nel tempo usando le tabelle Calendar, Sales e Budget. Si noti che il livello più basso di dettaglio in base al tempo disponibile per la tabella Sales è giornaliero, ad esempio 1/5/2020, 7/6/2020 e 18/6/2020. Per la tabella Budget sono disponibili solo dati a livello mensile, ad esempio 5/2020 e 6/2020. Queste tabelle hanno granularità diverse che devono essere riconciliate prima di poter creare una relazione tra tabelle.
Nella figura seguente viene illustrato il modello semantico corrente.
Come illustrato nella figura precedente, manca una relazione tra Budget e Calendar. Pertanto, è necessario creare questa relazione prima di poter creare l'oggetto visivo. Si noti che se si trasformano le colonne Year e Month nella tabella Calendar in una nuova colonna e si esegue la stessa trasformazione nella tabella Budget, è possibile applicare lo stesso formato della colonna Date nella tabella Calendar. È quindi possibile stabilire una relazione tra le due colonne. Per completare questa attività, si concatenano le colonne Year and Month e quindi si modifica il formato.
Selezionare Trasforma dati sulla barra multifunzione. In Passaggi applicati, nel riquadro destro, fare clic con il pulsante destro del mouse sull'ultimo passaggio e quindi scegliere Inserisci passaggio dopo.
In Aggiungi colonna nella scheda Home della barra multifunzione selezionare Colonna personalizzata. Immettere l'equazione seguente, che concatenerà le colonne Year e Month, quindi aggiungere un trattino tra i nomi delle colonne.
Column = Table.AddColumn(#"Renamed Columns", "Custom", each [Year] & "-" &[Month])
Modificare il tipo di dati in Data e quindi rinominare la colonna. La tabella Budget dovrebbe essere simile alla figura seguente.
A questo punto, è possibile creare una relazione tra le tabelle Budget e Calendar.
Creare una relazione tra tabelle
Power BI rileva automaticamente le relazioni, ma è anche possibile passare a Gestisci relazioni > New e creare la relazione nella colonna Date . La relazione dovrebbe essere simile alla figura seguente.
Completando questa attività, è stato garantito che la granularità sia uguale tra le diverse tabelle. A questo punto, è necessario creare misure DAX per calcolare Total Sales e BudgetAmount. Passare al riquadro Dati in Power BI Desktop, selezionare Nuova misura e quindi creare due misure con le equazioni seguenti:
TotalSales = SUM(Sales[Total Sales])
BudgetAmount = SUM (Budget[BudgetAmount])
Selezionare l'oggetto visivo Tabella nel riquadro Visualizzazioni e quindi immettere le misure e Date nel campo Valori. È ora stato raggiunto l'obiettivo di creare una matrice dei budget e delle vendite totali nel tempo.