Creare calcoli efficienti
Quando i dati non forniscono tutte le informazioni necessarie per rispondere alle tue domande, è possibile creare campi calcolati per agevolare l’analisi.
All’interno di un campo calcolato puoi definire una costante hardcoded (ad esempio, un’aliquota d’imposta), eseguire operazioni matematiche semplici come sottrazione o moltiplicazione (entrate meno costi), utilizzare formule matematiche più complesse, eseguire test logici (IF/THEN, CASE), effettuare conversioni tipo, inviare le espressioni a servizi esterni quali R, e molto altro ancora.
Esistono diversi tipi di calcolo in Tableau:
Calcoli di base e aggregati: questi tipi di calcolo vengono generati come parte della query all’origine dati sottostante e vengono calcolati nel database. In generale, i calcoli di base e aggregati sono facilmente scalabili e sono disponibili numerose tecniche di ottimizzazione del database per migliorare le prestazioni.
Calcoli tabella: questi calcoli vengono effettuati da Tableau sull’insieme dei risultati della query. Sebbene questo comporti più lavoro a carico di Tableau, i calcoli delle tabelle vengono in genere eseguiti su un insieme di record molto più piccolo rispetto a quello dell’origine dati iniziale. Se le prestazioni di calcolo delle tabelle sono un problema (probabilmente perché l’insieme di risultati restituito a Tableau è molto grande), ti consigliamo di spostare alcuni aspetti del calcolo al livello dell’origine dati. Un modo di riuscirci è quello di aggregare i dati e quindi eseguire il calcolo sui dati aggregati.
Espressioni Level of Detail (LOD): le espressioni LOD sono generate come parte della query all’origine dati sottostante e vengono calcolate nel database. Sono espresse come selezioni nidificate, pertanto dipendono dalle prestazioni del database. Un calcolo o un’unione di tabella può dare risultati migliori di un’espressione LOD o viceversa.
Se temi che le prestazioni siano lente a causa di un’espressione LOD, puoi provare a sostituirla con un calcolo tabella o con un’unione dei dati per verificare se le prestazioni migliorano. Per un esempio, consulta il secondo esempio in Ordine delle operazioni di Tableau.
Le espressioni LOD possono essere influenzate dalla selezione per join, quindi esamina la sezione Presupposizione dell’integrità referenziale per i join se le query vengono eseguite lentamente con le espressioni LOD.
Per maggiori informazioni, consulta il white paper di Tableau Understanding Level of Detail (LOD) Expressions.
Usare i parametri per i calcoli condizionali
Una tecnica comune in Tableau consiste nel mostrare un controllo parametro in modo che gli utenti possano selezionare un valore che determini il modo in cui viene eseguito un calcolo. In genere, per assegnare all’utente opzioni più chiare, è consigliabile creare il parametro come tipo di stringa. Tuttavia, i calcoli numerici sono molto più veloci dei calcoli delle stringhe, dunque puoi sfruttare la caratteristica Visualizza come dei parametri, ovvero mostrare etichette di testo ma utilizzare i valori interi sottostanti per la logica di calcolo. Per maggiori informazioni, consulta Creare parametri.
Convertire i campi data
Gli utenti spesso dispongono di dati relativi alla data che non sono archiviati nei formati di data nativi, ad esempio una data potrebbe essere una stringa o un timestamp numerico. È possibile utilizzare la funzione DATEPARSE se i dati la supportano: questa funzione è disponibile per le connessioni di Microsoft Excel non-legacy e per quelle dei file di testo, per le origini dati di estrazione dati MySQL, Oracle, PostgreSQL e Tableau. Altrimenti, analizza il campo in una stringa di data come "2012-01-01". Le stringhe ISO sono preferibili perché non sono specifiche delle impostazioni locali. Passa quindi il valore alla funzione DATE. Se i dati di origine sono un campo numerico, è davvero poco efficiente convertirli prima in una stringa e quindi in una data. È molto meglio mantenere i dati come valori numerici e utilizzare DATEADD e i valori letterali di data per eseguire il calcolo. I miglioramenti delle prestazioni possono essere significativi con insiemi di dati di grandi dimensioni. Per maggiori informazioni su queste funzioni, consulta Funzioni data.
Usare le istruzioni della logica CASE
Quando lavori con istruzioni della logica complesse, le istruzioni CASE possono essere più rapide delle istruzioni IF o ELSEIF.
Ricorda che ELSEIF è più rapido di ELSE IF, perché un IF nidificato calcola una seconda istruzione IF anziché essere calcolato come parte del primo.
Per ulteriori informazioni, consulta il white paper Progettazione di cartelle di lavoro efficienti.
Aggregare le misure
Se le viste create sono lente, verifica di lavorare con le misure aggregate. Con i dati disaggregati è possibile che tu stia cercando di visualizzare contemporaneamente molte righe di dati. È possibile ridurre il numero di righe effettuando l’aggregazione dei dati. Per eseguire questa operazione, seleziona Analisi > Aggrega misure.
Suggerimenti per il calcolo
Esistono molti fattori che è possibile eseguire per migliorare le prestazioni del calcolo.
I valori di conteggio distinti sono uno dei tipi di aggregazione più lenti in quasi tutte le origini dati. Utilizza l’aggregazione COUNTD con cautela.
L’utilizzo di parametri con un ambito esteso di impatto, ad esempio in un’istruzione SQL personalizzata, può incidere sulle prestazioni della cache.
Il filtraggio sui calcoli complessi può potenzialmente causare che gli indici vengano saltati nei dati sottostanti.
Le funzioni script come RAWSQL e SCRIPT_* per l’integrazione con i servizi esterni possono essere lente, specialmente se sono presenti molti valori che devono essere trasferiti avanti e indietro dal server DBMS/R.
Utilizza NOW solo se è necessario il level of detail time stamp. Usa TODAY per i calcoli a livello di data.
Tieni presente che tutti i calcoli di base vengono passati attraverso i dati sottostanti, persino calcoli letterali come stringhe di etichette. Se è necessario creare le etichette (ad esempio, per le intestazioni di colonna) e i dati sono molto estesi, crea un’origine dati di testo semplice/file di Excel con un solo record per conservarli, in modo da non aggiungere sovraccarico all’origine dati più grande.