Usare gli script R (Rserve) nel flusso

Dichiarazione di non responsabilità: questa sezione include informazioni su un prodotto di terze parti. Tieni presente che, sebbene sia in atto ogni sforzo per mantenere accurati i riferimenti a contenuti di terze parti, le informazioni qui fornite potrebbero subire variazioni senza preavviso in quanto R e Rserve sono soggetti a modifiche. Per le informazioni più aggiornate, consulta la documentazione e l’assistenza di R e Rserve.

R è un linguaggio di programmazione software open source e un ambiente software per l’elaborazione statistica e grafica. Per estendere le funzionalità di Tableau Prep Builder, in R è possibile creare script da utilizzare nel flusso che vengono eseguiti tramite un server Rserve per produrre output con cui è possibile lavorare ulteriormente nel flusso.

Utilizzando uno script in R è possibile ad esempio aggiungere dati statistici di modellazione o dati previsionali ai dati già presenti nel flusso, quindi utilizzare la potenza di Tableau Prep Builder per pulire l’insieme di dati risultante per l’analisi.

Per includere script R nel flusso, è necessario configurare una connessione tra Tableau Prep Builder e un server Rserve. A questo punto è possibile utilizzare gli script R per applicare le funzioni supportate ai dati del flusso tramite espressioni R. Dopo aver inserito i dettagli di configurazione e puntato Tableau Prep Builder al file e alla funzione che desideri utilizzare, i dati vengono passati in modo sicuro al server Rserve, le espressioni vengono applicate e i risultati vengono restituiti sotto forma di tabella (R data.frame) che è possibile pulire o generare come output in base alle tue esigenze.

Puoi eseguire flussi che includono passaggi di script in Tableau Server purché sia stata configurata una connessione al server Rserve. L’esecuzione di flussi con passaggi di script in Tableau Cloud non è attualmente supportata. Per configurare Tableau Server, consulta Configurare il server Rserve per Tableau Server.

Prerequisiti

Per includere delle fasi di script R nel flusso, installa R e configura una connessione a un server Rserve.

Risorse

Configurare il server Rserve per Tableau Server

Utilizza le istruzioni seguenti per configurare una connessione tra il server Rserve e Tableau Server.

  • Versione 2019.3 e successive: puoi eseguire flussi pubblicati che includono passaggi di script in Tableau Server.
  • Versione 2020.4.1 e successive: puoi creare, modificare ed eseguire flussi che includono passaggi di script in Tableau Server.
  • Tableau Cloud: la creazione o l’esecuzione di flussi con passaggi di script non è attualmente supportata.
  1. Apri la riga di comando TSM.
  2. Immetti i seguenti comandi per impostare l’indirizzo host, i valori delle porte e il timeout di connessione:

    tsm security maestro-rserve-ssl enable --connection-type {maestro-rserve-secure/maestro-rserve} --rserve-host <Rserve IP address or host name> --rserve-port <Rserve port> --rserve-username <Rserve username> --rserve-password <Rserve password> --rserve-connect-timeout-ms <RServe connect timeout>

    • Seleziona {maestro-rserve-secure} per abilitare una connessione protetta o {maestro-rserve} per abilitare una connessione non protetta.
    • Se selezioni {maestro-rserve-secure}, specifica il file del certificato -cf<certificate file path> nella riga di comando.
    • Specifica --rserve-connect-timeout-ms <RServe connect timeout> in millisecondi. Ad esempio, --rserve-connect-timeout-ms 900000.
  3. Per disabilitare la connessione a Rserve, immetti il seguente comando:

    tsm security maestro-rserve-ssl disable

Configurazione di Rserve aggiuntiva (opzionale)

È possibile creare un file denominato Rserv.cfg per impostare i valori di configurazione predefiniti per personalizzare Rserve e posizionarlo nel percorso di installazione /etc/Rserve.conf. Per migliorare la stabilità con il server Rserve e Tableau Prep Builder, è possibile aggiungere ulteriori valori alla configurazione di Rserve. Quando avvii Rserve puoi fare riferimento a questo file per applicare le tue opzioni di configurazione. Ad esempio:

  • Windows: Rserve(args="--RS-conf C:\\folder\\Rserv.cfg")
  • macOS e Linux: Rserve(args=" --no-save --RS-conf ~/Documents/Rserv.cfg")

L’esempio seguente mostra alcune opzioni aggiuntive che puoi includere nel file di configurazione Rserve.conf :

# If your data includes characters other than ASCII, make it explicit that data should be UTF8 encoded.
encoding utf8 
# Disable interactive behavior for Rserve or Tableau Prep Builder will stall when trying to run the script as it waits for an input response.
interactive no

Per informazioni sulla configurazione di un file Rserve.conf, consulta la sezione Configurazione avanzata di Rserve nelle Note sull’implementazione di R(Il collegamento viene aperto in una nuova finestra) (elemento pubblicato dalla Community).

Creare lo script R

Quando crei lo script, includi una funzione che specifichi un frame di dati come argomento della funzione. Quest’operazione consentirà di chiamare i dati da Tableau Prep Builder. Oltre a ciò, sarà necessario restituire i risultati in un frame di dati utilizzando i tipi di dati supportati.

Ad esempio:

postal_cluster <- function(df) {      
  out <- kmeans(cbind(df$Latitude, df$Longitude), 3, iter.max=10)
  return(data.frame(Latitude=df$Latitude, Longitude=df$Longitude, Cluster=out$cluster))
 }

Sono supportati i seguenti tipi di dati:

Tipo di dati in Tableau Prep BuilderTipo di dati in R
StringaStringa UTF-8 standard
DecimaleDoppio
IntIntero
BoolLogico
DataStringa in formato ISO_DATE "YYYY-MM-DD" con differenza fuso orario opzionale. Ad esempio, "2011-12-03+01:00" rappresenta una data valida.
Data e oraStringa in formato ISO_DATE_TIME "YYYY-MM-DDT:HH:mm:ss" con differenza fuso orario opzionale. Ad esempio, "2011-12-03T10:15:30+01:00" rappresenta una data valida.

Nota: i valori Data e Data e ora devono sempre essere restituiti come stringa valida. I tipi Data nativa (Data e ora) in R non sono supportati come valori restituiti, ma possono essere usati nello script.

Se desideri che vengano restituiti campi diversi da quelli inseriti, è necessario includere nello script una funzione getOutputSchema che definisca l’output e i tipi di dati. In caso contrario l’output utilizzerà i campi dei dati di input, acquisiti dal passaggio precedente alla fase di script nel flusso.

Quando specifichi i tipi di dati per i campi nella funzione getOutputSchema, utilizza la seguente sintassi:

Funzione in RTipo di dati risultante
prep_string ()Stringa
prep_decimal ()Decimale
prep_int ()Intero
prep_bool ()Booleano
prep_date ()Data
prep_datetime ()Data e ora

L’esempio seguente mostra la funzione getOutputSchema per lo script postal_cluster:

getOutputSchema <- function() {      
  return (data.frame (
    Latitude = prep_decimal (),
    Longitude = prep_decimal (),
    Cluster = prep_int ()));
}

Connettersi al server Rserve

Importante: a partire dalla versione 2020.3.3 di Tableau Prep Builder, puoi configurare la connessione al server una sola volta dal menu Guida superiore anziché impostare la connessione per ogni flusso nel passaggio di script facendo clic su Connettiti al server Rserve e immettendo i dettagli della connessione. Sarà necessario riconfigurare la connessione utilizzando questo nuovo menu per tutti i flussi creati in una versione precedente di Tableau Prep Builder aperti nella versione 2020.3.3.

  1. Seleziona Guida > Impostazioni e prestazioni > Gestisci connessione estensione di analisi.
  2. Nell’elenco a discesa Seleziona un’estensione di analisi seleziona Rserve.

  3. Inserisci le credenziali:
    • La porta 6311 è la porta predefinita per i server Rserve senza crittografia.
    • La porta 4912 è la porta predefinita per i server Rserve con crittografia SSL.
    • Se il server richiede delle credenziali, immetti un nome utente e una password.
    • Se il server utilizza la crittografia SSL, seleziona la casella di controllo Richiedi SSL, quindi fai clic sul collegamento al file di configurazione personalizzata per specificare un certificato per la connessione.

      Nota: Tableau Prep Builder non fornisce un metodo per eseguire test della connessione. In presenza di un problema con la connessione, viene visualizzato un messaggio quando si tenta di eseguire il flusso.

Aggiungere uno script al flusso

Avvia il server Rserve e completa le seguenti operazioni:

  1. Apri Tableau Builder e fai clic sul pulsante Aggiungi connessione .

    In Web authoring, nella pagina Home fai clic su Crea > Flusso oppure nella pagina Esplora fai clic su Nuovo > Flusso. Fai clic su Connetti ai dati.

  2. Dall’elenco dei connettori, seleziona il tipo di file o il server che ospita i tuoi dati. Se ti viene richiesto, inserisci le informazioni necessarie per accedere ai dati.

  3. Fai clic sull’icona del segno più e seleziona Aggiungi script dal menu di scelta rapida.

  4. Nel riquadro Script, in Tipo di connessione, seleziona Rserve.

  5. Nella sezione Nome file, fai clic su Sfoglia per selezionare il file di script.
  6. Immetti il Nome della funzione, quindi premi Invio per eseguire lo script.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!