Använd R-skript (Rserve) i ditt flöde

Ansvarsfriskrivning: Det här avsnittet innehåller information om en produkt från tredje part. Observera att även om vi gör allt vi kan för att hålla referenserna till innehåll från tredje part korrekta, kan den information vi tillhandahåller här komma att ändras utan föregående meddelande när R och Rserve ändras. För den senaste informationen kan du hänvisa till dokumentation och support för R och Rserve.

R är ett programmeringsspråk med öppen källkod och en programvarumiljö för statistisk databehandling och grafik. För att utöka funktionerna i Tableau Prep Builder kan du skapa skript i R som du kan använda i ditt flöde som körs genom en Rserve-server för att producera utdata som du kan arbeta vidare med i ditt flöde.

Du kanske till exempel vill lägga till statistiska modelleringsdata eller prognosdata till de data du redan har i ditt flöde med hjälp av ett skript i R och sedan använda kraften i Tableau Prep Builder för att rensa den resulterande datauppsättningen för analys.

För att inkludera R-skript i ditt flöde måste du konfigurera en anslutning mellan Tableau Prep Builder och en Rserve-server. Sedan kan du använda R-skript för att använda funktioner som stöds på data från ditt flöde med hjälp av R-uttryck. När du har angett konfigurationsuppgifterna och pekat Tableau Prep Builder på den fil och funktion du vill använda skickas data säkert till Rserve-servern, uttrycken tillämpas och resultaten returneras som en tabell (R data.frame) som du kan rensa eller mata ut efter behov.

Du kan köra flöden som innehåller skriptsteg i Tableau Server om du har konfigurerat en anslutning till din Rserve-server. Det finns för närvarande inget stöd för att köra flöden med skriptsteg i Tableau Cloud. Information om att konfigurera Tableau Server finns i Konfigurera Rserve-server för Tableau Server.

Förutsättningar

För att inkludera R-skriptsteg i ditt flöde, installera R och konfigurera en anslutning till en Rserve-server.

Resurser

Konfigurera Rserve-server för Tableau Server

Använd följande instruktioner för att konfigurera en anslutning mellan din Rserve-server och Tableau Server.

  • Version 2019.3 och senare: Du kan köra publicerade flöden som inkluderar skriptsteg i Tableau Server.
  • Version 2020.4.1 och senare: Du kan skapa, redigera och köra publicerade flöden som inkluderar skriptsteg i Tableau Server.
  • Tableau Cloud: Det finns för närvarande inget stöd för att skapa och köra flöden med skriptsteg.
  1. Öppna TSM-kommandoraden.
  2. Ange följande kommandon för att konfigurera värdadress, portvärden och tidsgräns för anslutning:

    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>

    • Välj {maestro-rserve-secure} för att upprätta en säker anslutning eller {maestro-rserve} för att upprätta en oskyddad anslutning.
    • Om du väljer {maestro-rserve-secure} måste du specificera certifikatfilen -cf<certificate file path> på kommandoraden.
    • Specificera --rserve-connect-timeout-ms <RServe connect timeout> i millisekunder. Till exempel --rserve-connect-timeout-ms 900000.
  3. För att inaktivera Rserve-anslutningen anger du följande kommando

    tsm security maestro-rserve-ssl disable

Ytterligare Rserve-konfiguration (valfritt)

Du kan skapa en fil med namnet Rserv.cfg för att ställa in standardkonfigurationsvärden för att anpassa Rserve och placera den i /etc/Rserve.conf installationsplatsen. Om du vill förbättra stabiliteten med Rserve-servern och Tableau Prep Builder kan du lägga till ytterligare värden till din Rserve-konfiguration. När du startar Rserve kan du hänvisa till den här filen för att tillämpa dina konfigurationsalternativ. Till exempel:

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

Följande exempel visar några ytterligare alternativ som du kan inkludera i din konfigurationsfil för 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

Mer information om hur du konfigurerar en Rserve.conf-fil finns i avsnittet Avancerad Rserve-konfiguration i Anteckningar om R-implementering(Länken öppnas i ett nytt fönster) community-inlägg).

Skapa ditt R-skript

När du skapar ditt skript inkluderar du en funktion som anger en dataram som ett argument för funktionen. Detta anropar data från Tableau Prep Builder. Du måste även returnera resultaten i en dataram med hjälp av datatyper som stöds.

Till exempel:

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

Följande datatyper stöds:

Datatyp i Tableau Prep BuilderDatatyp i R
SträngUTF-8-standardsträng
DecimalDubbel
IntHeltal
BoolLogiskt
DatumSträng i ISO_DATE-formatet ”ÅÅÅÅ-MM-DD” med valfri zonförskjutning. Exempelvis är ”2011-12-03+01:00” ett giltigt datum.
DateTimeSträng i ISO_DATE_TIME-formatet ”ÅÅÅÅ-MM-DDT:HH:mm:ss” med valfri zonförskjutning. Exempelvis är ”2011-12-03T10:15:30+01:00” ett giltigt datum.

Obs! Date och DateTime måste alltid returneras som en giltig sträng. Inbyggda datumtyper (DateTime) i R stöds inte som returnerade värden men kan användas i skriptet.

Om du vill returnera andra fält än vad du anger i indata måste du inkludera en getOutputSchema-funktion i skriptet som definierar utdata och datatyper. I annat fall använder utdata fälten från indata, vilka hämtas från steget före skriptsteget i flödet.

Använd följande syntax när du anger datatyperna för dina fält i getOutputSchema:

Funktion i RResulterande datatyp
prep_string ()Sträng
prep_decimal ()Decimal
prep_int ()Heltal
prep_bool ()Booleskt
prep_date ()Datum
prep_datetime ()DateTime

Följande exempel visar funktionen getOutputSchema för skriptet postal_cluster:

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

Anslut till din Rserve-server

Viktigt: Från och med Tableau Prep Builder version 2020.3.3 kan du konfigurera din serveranslutning en gång från den övre hjälpmenyn istället för att konfigurera anslutningen per flöde i skriptsteget genom att klicka på Anslut till Rserve-server och ange din anslutningsinformation. Du måste konfigurera om anslutningen med hjälp av den här nya menyn för alla de flöden som har skapats i en äldre version av Tableau Prep Builder som du öppnar i version 2020.3.3.

  1. Välj Hjälp > Inställningar och prestanda > Hantera anslutningen till analystillägg.
  2. I listrutan Välj ett analystillägg, välj Rserve.

  3. Ange dina inloggningsuppgifter:
    • Port 6311 är standardporten för Rserve-servrar med klartext.
    • Port 4912 är standardporten för SSL-krypterade Rserve-servrar.
    • Om servern kräver inloggningsuppgifter anger du ett användarnamn och lösenord.
    • Om servern använder SSL-kryptering markerar du kryssrutan Kräv SSL och klickar sedan på länken Anpassad konfigurationsfil för att ange ett certifikat för anslutningen.

      Obs! Tableau Prep Builder tillhandahåller inte något sätt att testa anslutningen på. Om det uppstår problem med anslutningen visas ett felmeddelande när du försöker köra flödet.

Lägg till ett skript i flödet

Starta din Rserve-server och följ stegen nedan:

  1. Öppna Tableau Prep Builder och klicka på knappen Lägg till anslutning .

    Klicka på Skapa > Flöde på sidan Start vid webbredigering, eller klicka på Nytt > Flöde på sidan Utforska. Klicka sedan på Anslut till data.

  2. Välj den filtyp eller server som är värd för dina data i listan med kopplingar. Ange den information som behövs för att logga in och få åtkomst till dina data om du uppmanas till detta.

  3. Klicka på plusikonen och välj Lägg till skript på kontextmenyn.

  4. I rutan Skript under Anslutningstyp väljer du Rserve.

  5. Välj skriptfil genom att klicka på Bläddra i avsnittet Filnamn.
  6. Ange Funktionsnamn och kör skriptet genom att trycka på Retur.

Tack för din feedback!Din feedback har skickats in. Tack!