A partire dalla versione 2020.2, gli amministratori Tableau Server possono attivare la data acceleration per alcuni workbook specifici.

Pietro Gentini, responsabile della divisione BIEPM di Ecoh Media, dedicata alla Business Intelligence, ha provato la funzionalità e ha raccontato la sua esperienza in un intervento su Medium, al quale rimandiamo per una lettura integrale.

In questo articolo, riportiamo i passi preliminari del test svolto da Pietro.

La Data Acceleration dei workbook

Un workbook accelerato carica più velocemente, perché Tableau Server esegue un pre-computo dei dati nel workbook in un processo in background.

I workbook non sono abilitati di default per l’accelerazione. Il modo più semplice per accelerare è usare lo script Pythonaccelerate_workbooks.py”. Altra soluzione, più complicata, è quella di configurare la data acceleration usando le REST API di Tableau Server.

La Data Acceleration supporta:

  • Workbook con data sources pubblicate e live, entrambe con credenziali embedded;
  • Workbook con estratti embedded.

I Workbook con le data sources pubblicate o live devono essere schedulati per la Data Acceleration perché Tableau Server deve eseguire periodicamente il pre-computo in background. I Workbook con gli estratti embedded non devono essere schedulati: l’accelerazione si aggiornerà quando saranno pubblicati o quando gli estratti vengono aggiornati.

La Data Acceleration non supporta:

  • Workbook con estratti crittografati;
  • Workbook che includono funzioni user-based, now() e today();
  • Data Sources federate;
  • Data Blending (supportato solo parzialmente per la data source primaria).

Per ulteriori informazioni sulla Data Acceleration, su ciò che è supportato e ciò che non lo è e per gli aspetti relativi alla configurazione, si rimanda alla documentazione di Tableau Server sulla Data Acceleration.

Prerequisiti

Prima di utilizzare lo script Client di Python per la Data Acceleration, c’è bisogno di quanto segue:

  • Tableau Server 2020.2 o superiore;
  • Un account da Tableau Server Administrator o un ruolo di Site Administrator;
  • Aumentare le dimensioni dell’external cache di Tableau Server portandola ad almeno 2 GB (opzionale, ma fortemente raccomandato).
    E’ possibile verificare la dimensione della cache esterna con il comando:
    tsm configuration get -k redis.max_memory_in_mb
    e impostarla a 2 GB con il comando:
    tsm configuration set -k redis.max_memory_in_mb -v 2048
    tsm pending-changes apply

Scarica qui il codice sorgente (necessario Python 3.5 o superiore) e usa lo scritp setup.py per verificare e installare i package dipendenti:

  • python-dateutil
  • PTable
  • tableauserverclient

Se hai già installato il Client Python per Tableau Server (tableauserverclient) puoi anche installare manualmente i package usando pip

  • pip install python-dateutil 
  • pip install PTable

Come cambiare il metodo di autenticazione

Sfortunatamente, la versione attuale di Tableau Server Data Acceleration Client (v0.1) supporta solo l’autenticazione con username e password.  Per questioni di sicurezza, invece, è raccomandabile utilizzare un Personale Access Token (PAT), evitando di condividere le credenziali e di inserire username e password nel codice Python.

Come risolvere il problema?

Il metodo di sign delle Rest API di Tableau ha un request body molto simile, sia in caso di autenticazione con username e password che con un PAT. Pertanto possiamo cambiare facilmente il metodo di autenticazione nello script  accelerate_workbooks.py, sostituendo una sola riga di codice.

Cerca il metodo sign_in_to_server e cambia il codice Python come segue:

#credentials_element = ET.SubElement(xml_request, ‘credentials’, name=username, password=password)
credentials_element = ET.SubElement(xml_request, ‘credentials’, personalAccessTokenName=username, personalAccessTokenSecret=password)

Ora, creiamo su Tableau Server un PAT con Name = ACCELERATE

e proviamo ad accedere utilizzando questo Token Name e Secret al posto di username e password
python accelerate_workbooks.py –server “https://myserver” –site “DemoSite” –username “ACCELERATE” –password “vWsr0S75QVSSQ8LDHdxiTA==:YCP70XthyAPjnpuPzm3AmtNDLkQW5yPr

path to ssl certificate (hit enter to ignore):

Signed in to https://myserver successfully

Funziona (premi invio per ignorare il certificato SSL)!

Conseguentemente per effettuare il logout utilizziamo il comando:

python accelerate_workbooks.py –logout

Nell’articolo integrale su Medium, Pietro Gentini mostra l’intero procedimento che ha utilizzato per velocizzare un workbook con una connessione live a una data source lenta, per verificare i benefici realmente apportati da questa novità.

Ti suggeriamo di leggerlo per intero su https://medium.com/tableau-server-insights-blog/testing-tableau-server-data-acceleration-5db1bf0fc89b