Utilice scripts R (Rserve) en su flujo

Exención de responsabilidad: Este tema incluye información sobre un producto de terceros. Tenga en cuenta que aunque hacemos todo lo posible para mantener las referencias al contenido de terceros exactas, la información que proporcionamos aquí podría cambiar sin previo aviso a medida que R y Rserve también lo hagan. Para obtener información más actualizada, consulte la documentación y el soporte técnico de R y Rserve.

R es un lenguaje de programación de software de código abierto y un entorno de software para la computación estadística y los gráficos. Para ampliar la funcionalidad de Tableau Prep Builder, puede crear scripts en R para usar en su flujo que se ejecuten a través de un servidor de Rserve para producir resultados con los que pueda seguir trabajando en su flujo.

Por ejemplo, es posible que desee agregar datos de modelado estadístico o pronóstico a los que ya tiene en su flujo usando un script en R, y luego usar Tableau Prep Builder para limpiar el conjunto de datos resultante para su análisis.

Para incluir scripts R en su flujo, debe configurar una conexión entre Tableau Prep Builder y un servidor Rserve. Luego puede usar scripts R para aplicar funciones compatibles a los datos de su flujo usando expresiones R. Después de introducir los detalles de configuración e indicar a Tableau Prep Builder el archivo y a la función que desea utilizar, los datos se pasan de forma segura al servidor de Rserve, las expresiones se aplican y los resultados se devuelven como una tabla (R data.frame) que puede limpiar o imprimir según sea necesario.

Puede ejecutar flujos que incluyan pasos de script en Tableau Server siempre que haya configurado una conexión con el servidor Rserve. La ejecución de flujos con pasos de script en Tableau Online no es compatible en la actualidad. Para configurar Tableau Server, consulte Configurar Rserve Server para Tableau Server.

Requisitos previos

Para incluir pasos de script R en su flujo, instale R y configure una conexión a un servidor Rserve.

Recursos

Configurar Rserve Server para Tableau Server

Utilice las siguientes instrucciones para configurar una conexión entre el servidor de Rserve y Tableau Server.

  • Versión 2019.3 y posteriores: puede ejecutar flujos publicados que incluyan pasos de script en Tableau Server.
  • Versión 2020.4.1 y posteriores: puede crear, editar y ejecutar flujos que incluyan pasos de script en Tableau Server.
  • Tableau Online: actualmente no se admite la creación ni ejecución de flujos con pasos de script.
  1. Abra la línea de comandos de TSM.
  2. Introduzca los siguientes comandos para establecer la dirección de host, los valores de puerto y el tiempo de espera de la conexión:

    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>

    • Seleccione {maestro-rserve-secure} para habilitar una conexión segura o {maestro-rserve} para habilitar una conexión no segura.
    • Si selecciona {maestro-rserve-secure}, especifique el archivo de certificado -cf<certificate file path> en la línea de comandos.
    • Especifique el --rserve-connect-timeout-ms <RServe connect timeout> en milisegundos. Por ejemplo: --rserve-connect-timeout-ms 900000.
  3. Para deshabilitar la conexión Rserve, introduzca el siguiente comando

    tsm security maestro-rserve-ssl disable

Configuración adicional de Rserve (opcional)

Puede crear un archivo llamado Rserv.cfg para establecer valores de configuración predeterminados, personalizar Rserve y colocarlo en la ubicación de instalación /etc/Rserve.conf . Para mejorar la estabilidad con el servidor Rserve y Tableau Prep Builder, puede agregar valores adicionales a su configuración de Rserve. Cuando inicia Rserve, puede utilizar este archivo para aplicar sus opciones de configuración. Por ejemplo:

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

El siguiente ejemplo muestra algunas opciones adicionales que puede incluir en su archivo de configuración 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

Para obtener información sobre cómo configurar un archivo Rserve.conf, consulte la sección Configuración avanzada de Rserve en las Notas de implementación de R(Link opens in a new window) (publicación de la comunidad).

Cree su script R

Cuando cree su script, incluya una función que especifique un marco de datos como argumento de la función. Esto invocará sus datos desde Tableau Prep Builder. También deberá devolver los resultados en un marco de datos utilizando los tipos de datos compatibles.

Por ejemplo:

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

Se admiten los tipos de datos siguientes:

Tipo de datos en Tableau Prep Builder Tipo de datos en R
String Standard UTF-8 string
Decimal Double
Int Integer
Bool Lógica
Date Cadena en formato ISO_DATE “YYYY-MM-DD” con huso horario opcional. Por ejemplo, “2011-12-03+01:00” es una fecha válida.
DateTime Cadena en formato ISO_DATE “YYYY-MM-DDT:HH:mm:ss” con huso horario opcional. Por ejemplo, “2011-12-03T10:15:30+01:00” es una fecha válida.

Nota: Date y DateTime siempre deben devolverse como una cadena válida. Los tipos de fecha nativa (DateTime) en R no son compatibles como valores devueltos, pero se pueden utilizar en el script.

Si desea devolver campos diferentes de los que ha introducido, deberá incluir una función getOutputSchema en su script que defina la salida y los tipos de datos. De lo contrario, la salida utilizará los campos de los datos de entrada, que se toman del paso anterior al paso del script en el flujo.

Utilice la siguiente sintaxis cuando especifique los tipos de datos para sus campos en el getOutputSchema:

Función en R Tipo de datos resultante
prep_string () String
prep_decimal () Decimal
prep_int () Integer
prep_bool () Boolean
prep_date () Date
prep_datetime () DateTime

El siguiente ejemplo muestra la función getOutputSchema para el script postal_cluster:

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

Conectarse a su servidor Rserve

Importante: a partir de la versión 2020.3.3 de Tableau Prep Builder, podrá configurar la conexión del servidor una vez desde el menú Ayuda de la parte superior en lugar de configurar la conexión por flujo en el paso Script haciendo clic en Conectarse a Rserve Server e introduciendo los detalles de la conexión. Deberá volver a configurar la conexión con este nuevo menú para los flujos que se crearon en una versión anterior de Tableau Prep Builder, que vaya a abrir en la versión 2020.3.3.

  1. Seleccione Ayuda > Configuración y rendimiento > Administrar conexión de extensión de análisis.
  2. En la lista desplegable Seleccionar una extensión de análisis, seleccione Rserve.

  3. Introduzca sus credenciales:
    • El puerto 6311 es el predeterminado para los servidores Rserve de texto plano.
    • El puerto 4912 es el predeterminado para los servidores SSL-encrypted Rserve.
    • Si el servidor requiere credenciales, introduzca un nombre de usuario y una contraseña.
    • Si el servidor utiliza cifrado SSL, active la casilla Requerir SSL y, a continuación, haga clic en el enlace Archivo de configuración personalizado para especificar un certificado de la conexión.

      Nota: Tableau Prep Builder no proporciona una forma de probar la conexión. Si hay un problema con la conexión, aparecerá un mensaje de error cuando intente ejecutar el flujo.

Añadir un script a su flujo

Inicie su servidor Rserve y luego complete los siguientes pasos:

  1. Abra Tableau Prep Builder y haga clic en el botón Añadir conexión.

    En la creación web, en la página de inicio, haga clic en Crear > Flujo o en la página Explorar, haga clic en Nuevo > Flujo. Después, haga clic en Conectar a datos.

  2. En la lista de conectores, seleccione el tipo de archivo o servidor que aloje sus datos. Si se le solicita, escriba la información necesaria para iniciar sesión y acceder a sus datos.

  3. Haga clic en el icono del signo más y seleccione Añadir script en el menú contextual.

  4. En el panel Script, en Tipo de conexión , seleccione Rserve.

  5. En la sección Nombre de archivo , haga clic en Examinar para seleccionar el archivo de script.
  6. Introduzca el nombre de la función y pulse Enter para ejecutar el script.

¡Gracias por sus comentarios!