Utiliser des scripts R (Rserve) dans votre flux

Décharge de responsabilité : cette rubrique inclut des informations sur un produit tiers. Remarque : bien que nous fassions tout notre possible pour que les références au contenu de tiers soient exactes, l’information fournie ici peut changer sans préavis à mesure que R et Rserve évoluent. Pour obtenir l’information la plus récente, veuillez consulter la documentation et le support R et Rserve.

R est un langage de programmation et un environnement logiciel open source pour les calculs statistiques et la représentation graphique. Pour étendre la fonctionnalité de Tableau Prep Builder, vous pouvez créer des scripts dans R à utiliser dans votre flux. Ils seront exécutés via un serveur Rserve pour produire des sorties que vous pouvez utiliser dans votre flux.

Par exemple, vous pouvez ajouter des données de modélisation statistique ou de prévision aux données que vous avez déjà dans votre flux à l’aide d’un script dans R, puis utiliser la puissance de Tableau Prep Builder pour nettoyer l’ensemble de données résultant à des fins d’analyse.

Pour inclure des scripts R dans votre flux, vous devez configurer une connexion entre Tableau Prep Builder et un serveur Rserve. Vous pouvez ensuite utiliser des scripts R pour appliquer les fonctions prises en charge aux données de votre flux à l’aide des expressions R. Après avoir saisi les détails de configuration et indiqué à Tableau Prep Builder le fichier et la fonction que vous voulez utiliser, les données sont transmises en toute sécurité au serveur Rserve, les expressions sont appliquées et les résultats sont renvoyés sous forme de table (R data.frame) que vous pouvez nettoyer ou générer si nécessaire.

Vous pouvez exécuter des flux incluant des étapes de script dans Tableau Server tant que vous avez configuré une connexion à votre serveur Rserve. L’exécution de flux avec des étapes de script dans Tableau Cloud n’est pas prise en charge actuellement. Pour configurer Tableau Server, consultez Configurer le serveur Rserve pour Tableau Server.

Conditions préalables

Pour inclure des étapes de script R dans votre flux, installez R et configurez une connexion à un serveur Rserve.

Ressources

Configurer le serveur Rserve pour Tableau Server

Utilisez les instructions suivantes pour configurer une connexion entre votre serveur Rserve et Tableau Server.

  • Version 2019.3 et ultérieure : vous pouvez exécuter des flux publiés incluant des étapes de script dans Tableau Server.
  • Version 2020.4.1 et ultérieure : vous pouvez créer, modifier et exécuter des flux incluant des étapes de script dans Tableau Server.
  • Tableau Cloud : la création ou l’exécution de flux avec des étapes de script n’est pas prise en charge actuellement.
  1. Ouvrez la ligne de commande TSM.
  2. Entrez les commandes suivantes pour définir l’adresse de l’hôte, les valeurs de port et le délai d’expiration de la connexion :

    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>

    • Sélectionnez {maestro-rserve-secure} pour activer une connexion sécurisée ou {maestro-rserve} pour activer une connexion non sécurisée.
    • Si vous sélectionnez {maestro-rserve-secure}, spécifiez le fichier de certificat -cf<certificate file path> dans la ligne de commande.
    • Spécifiez le paramètre --rserve-connect-timeout-ms <RServe connect timeout> en millisecondes. Par exemple --rserve-connect-timeout-ms 900000.
  3. Pour désactiver la connexion Rserve, entrez la commande suivante

    tsm security maestro-rserve-ssl disable

Configuration Rserve supplémentaire (en option)

Vous pouvez créer un fichier nommé Rserv.cfg pour définir les valeurs de configuration par défaut afin de personnaliser Rserve et de le placer à l’emplacement d’installation /etc/Rserve.conf. Pour améliorer la stabilité avec le serveur Rserve et Tableau Prep Builder, vous pouvez ajouter des valeurs supplémentaires à votre configuration Rserve. Lorsque vous lancez Rserve, vous pouvez vous référer à ce fichier pour appliquer vos options de configuration. Par exemple :

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

L’exemple suivant montre quelques options supplémentaires que vous pouvez inclure dans votre fichier de configuration 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

Pour plus d’informations sur la configuration d’un fichier Rserve.conf, reportez-vous à la section Configuration avancée de Rserve dans les Notes de mise en œuvre de R(Le lien s’ouvre dans une nouvelle fenêtre) (poste de la communauté).

Créer votre script R

Lorsque vous créez votre script, incluez une fonction qui spécifie un dataframe comme argument de la fonction. Vos données seront alors appelées à partir de Tableau Prep Builder. Vous devrez également retourner les résultats dans un dataframe à l’aide des types de données pris en charge.

Par exemple :

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))
 }

Les types de données suivants sont pris en charge :

Type de données dans Tableau Prep BuilderType de données dans R
ChaîneChaîne UTF-8 standard
DécimaleDouble
IntEntier
BoolLogique
DateChaîne au format ISO_DATE « AAAA-MM-JJ » avec décalage de zone optionnel. Par exemple, « 2011-12-03+01 :00 » est une date valide.
DateTimeChaîne au format ISO_DATE_TIME « YYYYY-MM-DDT :HH :mm :ss » avec décalage de zone en option. Par exemple, « 2011-12-03T10 :15 :30+01 :00 » est une date vslid.

Remarque : Date et DateTime doivent toujours être renvoyés sous la forme d’une chaîne valide. Les types Native Date (DateTime) dans R ne sont pas pris en charge comme valeurs retournées mais peuvent être utilisés dans le script.

Pour retourner des champs différents de ceux que vous entrez, vous devrez inclure une fonction getOutputSchema dans votre script qui définit les types de sortie et de données. Sinon, la sortie utilisera les champs des données d’entrée qui proviennent de l’étape précédant l’étape de script dans le flux.

Utilisez la syntaxe suivante lorsque vous spécifiez les types de données pour vos champs dans getOutputSchema :

Fonction en RType de données résultant
prep_string ()Chaîne
prep_decimal ()Décimale
prep_int ()Entier
prep_bool ()Booléen
prep_date ()Date
prep_datetime ()DateTime

L’exemple suivant montre la fonction getOutputSchema pour le script postal_cluster :

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

Connexion à votre serveur Rserve

Important : depuis Tableau Prep Builder version 2020.3.3, vous pouvez configurez votre connexion serveur une seule fois depuis le menu du haut Aide au lieu de configurer votre connexion par flux dans l’étape Script en cliquant sur Connexion au serveur Rserve et en entrant vos détails de connexion. Vous devrez reconfigurer votre connexion à l’aide de ce nouveau menu pour tous les flux qui ont été créés dans une version antérieure de Tableau Prep Builder que vous ouvrez dans la version 2020.3.3.

  1. Sélectionnez Aide > Paramètres et performances > Gérer la connexion à une extension d’analytique.
  2. Dans la liste déroulante Sélectionner une extension d’analytique, sélectionnez Rserve.

  3. Entrez vos identifiants :
    • Le port 6311 est le port par défaut pour les serveurs Rserve en texte clair.
    • Le port 4912 est le port par défaut pour les serveurs Rserve chiffrés SSL.
    • Si le serveur exige des identifiants, entrez un nom d’utilisateur et un mot de passe.
    • Si le serveur utilise le chiffrement SSL, cochez la case Exiger SSL, puis cliquez sur le lien Fichier de configuration personnalisé pour spécifier un certificat pour la connexion.

      Remarque : Tableau Prep Builder ne permet pas de tester la connexion. En cas de problème avec la connexion, un message d’erreur s’affiche lorsque vous essayez d’exécuter le flux.

Ajouter un script à votre flux

Démarrez votre serveur Rserve puis effectuez les étapes suivantes :

  1. Ouvrez Tableau Prep Builder et cliquez sur le bouton Ajouter une connexion .

    Dans la création Web, depuis la page d’accueil, cliquez sur Créer > Flux, ou depuis la page Explorer, cliquez sur Nouveau > Flux. Cliquez ensuite sur Se connecter aux données.

  2. Dans la liste des connecteurs, sélectionnez le type de fichier ou le serveur hébergeant vos données. Si vous y êtes invité, entrez les identifiants de connexion et accédez à vos données.

  3. Cliquez sur l’icône plus et sélectionnez Ajouter un script dans le menu contextuel.

  4. Dans le volet Script, sous Type de connexion , sélectionnez Rserve.

  5. Dans la section Nom de fichier, cliquez sur Parcourir pour sélectionner votre fichier script.
  6. Entrez le Nom de la fonction puis appuyez sur Entrée pour exécuter votre script.

Merci de vos commentaires!