R-scripts (Rserve) in uw flow gebruiken

Vrijwaring: dit onderwerp bevat informatie over een product van derden. Hoewel we er alles aan doen om verwijzingen naar de inhoud van derden accuraat te houden, kan de informatie die we hier verstrekken zonder voorafgaande kennisgeving veranderen als R en Rserve veranderen. Raadpleeg voor de meest recente informatie de R- en Rserve-documentatie en -ondersteuning.

R is een opensource-softwareprogrammeertaal en een softwareomgeving voor statistische berekeningen en grafieken. Om de functionaliteit van Tableau Prep Builder uit te breiden, kunt u scripts in R maken voor gebruik in uw flow. Deze scripts worden uitgevoerd via een Rserve-server en produceren uitvoer waarmee u verder kunt werken in uw flow.

Misschien wilt u bijvoorbeeld statistische modelleringsdata of prognosedata met behulp van een script in R toevoegen aan de data die u al in uw flow hebt, en vervolgens Tableau Prep Builder gebruiken om de resulterende dataset op te schonen voor analyse.

Om R-scripts in uw flow op te nemen, moet u een verbinding configureren tussen Tableau Prep Builder en een Rserve-server. Vervolgens kunt u R-scripts gebruiken om ondersteunde functies toe te passen op data uit uw flow met behulp van R-expressies. Nadat u de configuratiegegevens hebt ingevoerd en Tableau Prep Builder hebt verwezen naar het bestand en de functie die u wilt gebruiken, worden de data veilig doorgegeven aan de Rserve-server, worden de expressies toegepast en worden de resultaten geretourneerd als een tabel (R data.frame) die u naar behoefte kunt opschonen of uitvoeren.

U kunt flows met scriptstappen uitvoeren in Tableau Server, zolang u een verbinding met uw Rserve-server hebt geconfigureerd. Het uitvoeren van flows met scriptstappen wordt momenteel niet ondersteund in Tableau Cloud. Zie Rserve-server voor Tableau Server configureren voor informatie over het configureren van Tableau Server.

Vereisten

Om R-scriptstappen in uw flow op te nemen, installeert u R en configureert u een verbinding met een Rserve-server.

Bronnen

Rserve-server voor Tableau Server configureren

Gebruik de volgende instructies om een verbinding tussen uw Rserve-server en Tableau Server te configureren.

  • Versie 2019.3 en later: u kunt gepubliceerde flows met scriptstappen uitvoeren in Tableau Server.
  • Versie 2020.4.1 en later: u kunt flows met scriptstappen maken, bewerken en uitvoeren in Tableau Server.
  • Tableau Cloud: het maken of uitvoeren van flows met scriptstappen wordt momenteel niet ondersteund.
  1. Open de TSM-opdrachtregel.
  2. Voer de volgende opdrachten in om het hostadres, de poortwaarden en de verbindingstime-out in te stellen:

    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>

    • Selecteer {maestro-rserve-secure} om een beveiligde verbinding in te schakelen of {maestro-rserve} om een onbeveiligde verbinding in te schakelen.
    • Als u {maestro-rserve-secure} selecteert, geeft u het certificaatbestand -cf<certificate file path> op in de opdrachtregel.
    • Geef het aantal milliseconden voor --rserve-connect-timeout-ms <RServe connect timeout> op. Bijvoorbeeld --rserve-connect-timeout-ms 900000.
  3. Om de Rserve-verbinding uit te schakelen, voert u de volgende opdracht in:

    tsm security maestro-rserve-ssl disable

Aanvullende Rserve-configuratie (optioneel)

U kunt een bestand met de naam Rserv.cfg maken om standaardconfiguratiewaarden in te stellen teneinde Rserve aan te passen, en het op de installatielocatie /etc/Rserve.conf plaatsen. Om de stabiliteit met de Rserve-server en Tableau Prep Builder te verbeteren, kunt u extra waarden toevoegen aan uw Rserve-configuratie. Wanneer u Rserve start, kunt u dit bestand raadplegen om uw configuratieopties toe te passen. Bijvoorbeeld:

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

Het volgende voorbeeld toont enkele extra opties die u in het configuratiebestand Rserve.conf kunt opnemen:

# 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

Zie het gedeelte over geavanceerde Rserve-configuratie in Opmerkingen over de implementatie van R(Link wordt in een nieuw venster geopend) (communitybericht, in het Engels) voor informatie over het instellen van het bestand Rserve.conf.

Uw R-script maken

Voeg bij het maken van uw script een functie toe die een dataframe specificeert als argument van de functie. Hierdoor worden uw data opgeroepen uit Tableau Prep Builder. U moet de resultaten ook retourneren in een dataframe met behulp van ondersteunde datatypen.

Bijvoorbeeld:

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

De volgende datatypen worden ondersteund:

Datatype in Tableau Prep BuilderDatatype in R
TekenreeksStandaard UTF-8-tekenreeks
DecimaalDubbel
Geh.getalGeheel getal
BooleaansLogisch
DatumTekenreeks in ISO_DATE-notatie 'JJJJ-MM-DD' met optionele zone-offset. Bijvoorbeeld: '2011-12-03 01:00' is een geldige datum.
DatumTijdTekenreeks in ISO_DATE_TIME-notatie 'JJJJ-MM-DDT:UU:mm:ss' met optionele zone-offset. Bijvoorbeeld: '2011-12-03T10:15:30+01:00' is een geldige datum.

Opmerking: Datum en DatumTijd moeten altijd als een geldige tekenreeks worden geretourneerd. Systeemeigen Datum- (DatumTijd-)typen in R worden niet ondersteund als geretourneerde waarden, maar kunnen wel in het script worden gebruikt.

Als u andere velden wilt retourneren dan de velden die u invoert, moet u een getOutputSchema-functie in uw script opnemen, die de uitvoer en de datatypen definieert. Anders worden in de uitvoer de velden uit de invoerdata gebruikt. Deze zijn afkomstig uit de stap die voorafgaat aan de scriptstap in de flow.

Gebruik de volgende syntaxis bij het opgeven van de datatypen voor uw velden in getOutputSchema:

Functie in RResulterend datatype
prep_string ()Tekenreeks
prep_decimal ()Decimaal
prep_int ()Geheel getal
prep_bool ()Booleaanse waarde
prep_date ()Datum
prep_datetime ()DatumTijd

Het volgende voorbeeld toont de getOutputSchema-functie voor het postal_cluster-script:

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

Verbinding maken met uw Rserve-server

Belangrijk: met ingang van Tableau Prep Builder versie 2020.3.3 kunt u uw serververbinding eenmaal configureren vanuit het bovenste Help-menu in plaats van uw verbinding per flow in te stellen in de Script-stap door op Verbinding maken met Rserve-server te klikken en uw verbindingsgegevens in te voeren. U moet uw verbinding met dit nieuwe menu opnieuw configureren voor alle flows die zijn gemaakt in een oudere versie van Tableau Prep Builder, wanneer u ze opent in versie 2020.3.3.

  1. Selecteer Help > Instellingen en prestaties > Verbindingen van analyse-uitbreiding beheren.
  2. Selecteer Rserve in de vervolgkeuzelijst Selecteer een Analytics-extensie.

  3. Voer uw referenties in:
    • Poort 6311 is de standaardpoort voor plattetekst-Rserve-servers.
    • Poort 4912 is de standaardpoort voor SSL-gecodeerde Rserve-servers.
    • Als de server om referenties vraagt, voer dan een gebruikersnaam en wachtwoord in.
    • Als de server SSL-versleuteling gebruikt, schakelt u het selectievakje SSL vereisen in en klikt u vervolgens op de link Aangepast configuratiebestand om een certificaat voor de verbinding op te geven.

      Opmerking: Tableau Prep Builder biedt geen mogelijkheid om de verbinding te testen. Als er een probleem is met de verbinding, verschijnt er een foutmelding wanneer u de flow probeert uit te voeren.

Een script toevoegen aan uw flow

Start uw Rserve-server en voer de volgende stappen uit:

  1. Open Tableau Prep Builder en klik op de knop Verbinding toevoegen .

    Ga in webauthoring naar de Startpagina en klik op Maken > Flow, of ga naar de pagina Verkennen en klik op Nieuw > Flow. Klik vervolgens op Verbinding maken met data.

  2. Selecteer in de lijst met connectoren het bestandstype of de server waarop uw data worden gehost. Voer indien gevraagd de gegevens in die nodig zijn om u aan te melden en toegang te krijgen tot uw data.

  3. Klik op het pluspictogram en selecteer Script toevoegen in het contextmenu.

  4. Ga naar het deelvenster Script en selecteer Rserve onder Verbindingstype.

  5. Klik in de sectie Bestandsnaam op Bladeren om uw scriptbestand te selecteren.
  6. Voer de Functienaam in en druk op Enter om uw script uit te voeren.

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.