Ejecutando flujos Tableau Prep desde Task Manager

Tableau nos ayuda en la preparación de datos con su herramienta Tableau Prep Builder, la cual es parte fundamental de todo el proceso de Inteligencia de Negocios.
En ese sentido, podemos empezar a usar Tableau Prep Builder, la cual permite la creación de un flujo de datos, que contiene la combinación, transformación, y limpieza de las diversas fuentes de datos existentes, y cuyo resultado será una estructura de datos que sirve como input en el desarrollo de dashboards desde Tableau Desktop o Tableau Online.
Una de las formas de ejecución automática de estos flujos de datos, consiste en la creación de un archivo tipo batch que ejecute el flujo de Tableau Prep Builder y sea programado desde el Windows Task Scheduler (Programador de Tareas de Windows), desde cualquier ordenador o servidor que tenga instalado Tableau Prep Builder.
Siempre existe la opción recomendada y promovida por Tableau, la cual consiste en el add-on Tableau Data Management, que incluye la ejecución automática de flujos de Tableau Prep y otras interesantes características y funcionalidades.

Consideraciones sobre un flujo de Tableau Prep Builder

  • Los flujos de Tableau Prep Builder son archivos con extensiones .tfl o .tflx.
  • Pueden contener como inputs, una o más fuentes de datos de distintos proveedores de servicios de datos. Por ejemplo, podría tener conexiones a SQL Server, AWS, Google Analytics y  archivos MS Excel.
  • Pueden tener como outputs archivos planos, como por ejemplo los .hyper, que tienen la tecnología de compresión de Tableau

Por qué programar la ejecución de un flujo de Tableau Prep Builder

En el proceso de Data Preparation, cuando tenemos un flujo de Tableau Prep Builder que se encuentra funcionando adecuadamente, surge la necesidad de que sea ejecutado automáticamente de acuerdo a una frecuencia determinada, que podría ser semanal, diaria, o en ciertas horas. En caso contrario, periódicamente se tendría que realizar esta ejecución de manera manual; es decir, abriendo el flujo desde Tableau Prep Builder y usando el botón Ejecutar.

Bajo esta necesidad, existen las opciones de ejecución automática:

  1. A través de Tableau Prep Conductor, que forma parte del add-on Tableau Data Management, se puede programar y monitorear tareas que ejecuten éste y otros flujos de Tableau Prep Builder. A tener en cuenta, que este add-on permite esta funcionalidad y otras como Tableau Catalog, las conexiones virtuales y las políticas de datos
  2. A través de una tarea programada desde Windows Task Manager que ejecute un archivo .bat que contenga la instrucción de ejecución de un flujo Tableau Prep Builder. Esta opción es la que se encuentra desarrollada en el presente artículo.

Algunas compañías utilizan las tareas automáticas de ejecución de flujos Tableau Prep desde Windows Task Manager, hasta que puedan adquirir el add-on Tableau Data Management.

Pre requisitos a tener en cuenta

Para la ejecución automática de un flujo de Tableau Prep desde Windows Task Manager:

  • La guía de este artículo sirve para las versiones de Tableau 2020.3.1 en adelante. Para versiones anteriores puede consultar la ayuda de Tableau
  • Se debe tener instalado Tableau Prep Builder, ya que este procedimiento utiliza un archivo que se encuentra en una carpeta instalada.
  • Se debe contar con privilegios de administración sobre el ordenador o servidor en el cual se programará la tarea.
  • Conocer las fuentes de datos y sus respectivas credenciales: nombre de servidor, puerto, usuario, contraseña y cualquier dato adicional.
  • Tener claridad de las credenciales de acceso a Tableau Server: Server URL, content URL, puerto, usuario, contraseña.
  • No está soportado para conectores en nube como Google Big Query, ni para autenticaciones single sign-on.

Qué pasos debo seguir

Paso 1: Confirmar la ruta del archivo de ejecución de Tableau Prep

Lo primero a realizar es verificar que se encuentre instalado Tableau Prep Builder. Podemos verificar que el archivo “tableau-prep-builder.bat” se encuentre dentro de la carpeta “C:\Program Files\Tableau\Tableau Prep Builder 2021.4\scripts”. Esta ruta varía dependiendo de la versión instalada de Tableau Prep.

Paso 2: Probar desde la terminal (cmd) la ejecución de un flujo Tableau Prep

Este paso es importante para asegurar que se tiene los permisos necesarios para ejecutar un flujo de tableau Prep (archivos .tfl, .tflx).

Aqui ejecutamos la línea de comandos o terminal con privilegios de administración:

  • Vamos a menú Inicio de Windows y digitamos “cmd”, aparecerá la opción de “Símbolo del sistema” o “Command Prompt”
  • En el sub menú elegir la opción “Ejecutar como administrador” o “Run as administrator”

Luego, en la terminal ingresamos las siguientes sentencias:

  • “cd\”
  • “cd\”Program Files\Tableau\Tableau Prep Builder 2021.4\scripts”\”. Esta ruta depende de la versión instalada de Tableau Prep

Finalmente, probamos la ejecución de algún flujo simple de Tableau Prep (archivos .tfl, .tflx):

  • Identificamos algún flujo con inputs y outputs que se encuentren dentro del mismo ordenador o servidor.
  • Si no tenemos un flujo simple, podemos crear uno de prueba, que tenga como input un archivo plano y como output un archivo .hyper. Todo funcionando dentro del mismo ordenador o servidor.
  • Ejecutamos en la terminal, la sentencia: “tableau-prep-cli.bat -t “C:\<Ruta de la carpeta>\Test.tflx”.
  • Esta sentencia permite la ejecución del flujo usando el paquete instalado de Tableau Prep y se espera el mensaje que confirma que el flujo fue ejecutado satisfactoriamente.

Los errores de ejecución más comunes que pueden surgir son:

  • Error por que alguna de las rutas no es correcta.
  • Error por que dentro de las rutas se referencia a una unidad de disco no reconocida por la terminal. Por ejemplo, si tenemos una unidad de disco o de red “T:” y referencia a una ruta de red, se deberá colocar la ruta completa.
  • Si la prueba se está realizando sobre un flujo que no es simple, sino que contiene fuentes de datos externas o a Tableau Server, entonces, el error puede deberse a que aún no hemos indicado las credenciales de acceso en la terminal. Por eso es recomendable hacer este paso con un flujo simple.

Paso 3: Identificar los inputs (fuentes de datos) y outputs (archivos planos)

En este paso, trabajamos con el flujo que pretendemos ejecutar automáticamente:

  • Identificamos las credenciales de cada input. Puede ser sólo uno o varios.
    • Se puede tener fuentes de datos alojadas en Tableau Server. En este caso se necesitará conocer los siguientes datos:
      • ServerURL: Nombre del servidor Tableau, por ejemplo “https://tableauserver.mycompany.com”
      • ContentURL: ID del sitio, el cual aparece después de “/site/” en la URL. Por ejemplo: en “https://tableauserver.mycompany.com/#/site/mysite”, sera “mysite”
      • Port: Número de puerto de comunicación de Tableau Server, por defecto es el 443
      • Username: Usuario de acceso a Tableau Server
      • Password: Contraseña de acceso a Tableau Server
    • Se puede tener fuentes de datos desde cualquier otra fuente de datos. En este caso, se necesitará conocer los siguientes datos:
      • Hostname: Nombre del host de la fuente de datos
      • Port: Número de puerto de comunicación con la fuente de datos
      • Username: Usuario de acceso a la fuente de datos
      • Password: Contraseña de acceso a la fuente de datos
    • Si estamos usando conectores ODBC o JDBC o fuentes desde nube como Google Big Query, no podremos realizar esta ejecución desde la terminal

  • Identificamos las credenciales de cada output. Puede ser sólo uno o varios.
    • Se puede tener salidas que se alojarán localmente, para lo cual no se requiere información adicional. Solo considerar que si se tienen dentro del flujo rutas con unidades de disco que referencian a otros ordenadores o servidores, entonces, tendrá que estar el nombre complero dentro del objeto Output del flujo
    • Se puede tener salidas que se alojarán en Tableau Server. En este caso se necesitará conocer los siguientes datos:
      • ServerURL: Nombre del servidor Tableau, por ejemplo “https://tableauserver.mycompany.com”
      • ContentURL: ID del sitio, el cual aparece después de “/site/” en la URL. Por ejemplo: en “https://tableauserver.mycompany.com/#/site/mysite”, sera “mysite”
      • Port: Número de puerto de comunicación de Tableau Server, por defecto es el 443
      • Username: Usuario de acceso a Tableau Server
      • Password: Contraseña de acceso a Tableau Server

Paso 4: Creación de un archivo .json que contenga las credenciales de acceso

Ahora se procede a insertar las credenciales de cada input y output dentro de un archivo .json:

  • Se necesita abrir un editor de texto que puede ser Notepad
  • Todo el código donde se especifica las credenciales debe ir dentro de llaves ” {   } “
  • Los bloques de credenciales se separan por una coma ” , “
  • Las credenciales para una conexión a Tableau Server sea un input o output se especifican de la siguiente manera:
    • “tableauServerConnections”:[
      {
      “serverUrl”:”https://tableauserver.mycompany.com”,
      “contentUrl”: “mysite”,
      “port”:443,
      “username”: “myuser”,
      “password”: “mypassword”
      }
      ]
  • Las credenciales para una conexión a otra fuente de datos se especifica de la siguiente manera:
    • “databaseConnections”:[
      {
      “hostname”:”myhostname”,
      “port”:”myport”,
      “username”:”myuser”,
      “password”:”mypassword”
      }
      ]
  • Si se tuviera más de una fuente de datos, se coloca dentro de la sección de “databaseConnections” y se separa usando una coma ” , “
  • Para guardar el archivo con extension “.json”
    • Se utiliza la opción “Archivo” y luego “Guardar como”
    • Se coloca el nombre del archivo “nombredearchivo.json”
    • En tipo de archivo, seleccionar la opción “*.json”. Si no existiera la opción, escoger “Todos los tipos de archivo (*.*)”
    • Proceder a guardar

Paso 5: Probar desde la línea de comandos (cmd) la ejecución del flujo Tableau Prep

En este paso es importante asegurar que el archivo .json está correctamente configurado y tiene las credenciales necesarias para ejecutar el flujo de tableau Prep (archivos .tfl, .tflx).

Si no nos hemos quedado con la terminal abierta después del paso 2, entonces nuevamente ejecutamos la línea de comandos o terminal con privilegios de administración:

  • Vamos a menú Inicio de Windows y digitamos “cmd”, aparecerá la opción de “Símbolo del sistema” o “Command Prompt”
  • En el sub menú elegir la opción “Ejecutar como administrador” o “Run as administrator”

Finalmente, probamos la ejecución del flujo de Tableau Prep (archivos .tfl, .tflx):

  • Ejecutamos en la terminal, la sentencia:
    • cd\
    • cd\”Program Files\Tableau\Tableau Prep Builder 2021.4\scripts”\
      tableau-prep-cli.bat -c “C:\<Ruta de la carpeta>\<NombreArchivoJson>.json” -t “C:\<Ruta de la carpeta>\<NombreFlujo>.tfl”
  • Esta sentencia permite la ejecución del flujo usando el paquete instalado de Tableau Prep y las credenciales del archivo .json y se espera el mensaje que confirma que el flujo fue ejecutado satisfactoriamente.

  • Si los mensajes no son satisfactorios sería importante revisar el contenido del error. De manera general, podría ser:
    • Error de escritura de las rutas tanto del .json como las rutas internas del flujo .tfl o .tflx
    • Credenciales incorrectas o insuficientes
    • Algún firewall o seguridad de la compañía que no esté bloqueando algún acceso

Paso 6: Creación de un archivo .bat que contenga la ejecución del flujo Tableau Prep

Ahora se procede a crear el archivo tipo batch donde se insertarán las líneas de comandos que se probaron en el paso anterior:

  • Se necesita abrir un editor de texto que puede ser Notepad
  • Las líneas de comando se agregan de la siguiente manera:
    • cd\
    • cd\”Program Files\Tableau\Tableau Prep Builder 2021.4\scripts”\tableau-prep-cli.bat -c “C:\<Ruta del archivo json>\ArchivoJson.json” -t “C:\<Ruta del flujo>\NombreFlujo.tfl”
  • Tener en cuenta que la ruta del archivo ejecutable de Tableau (“Program Files\Tableau\Tableau Prep Builder 2021.4\scripts”) varía dependiendo la versión, y corresponde a la verificación realizada en el Paso 2
  • Para guardar el archivo con extension “.bat”
    • Se utiliza la opción “Archivo” y luego “Guardar como”
    • Se coloca el nombre del archivo “nombredearchivo.json”
    • En tipo de archivo, seleccionar la opción “*.bat”. Si no existiera la opción, escoger “Todos los tipos de archivo (*.*)”
    • Proceder a guardar

  • Para probar que el archivo batch se ejecuta correctamente, se puede ubicar el  archivo desde el explorador de Windows y luego seleccionar la opción “Ejecutar como Administrador”.

Paso 7: Programar la tarea desde el Windows Task Scheduler para la ejecución del archivo .bat

Aquí llegamos a uno de los pasos finales, donde ya hemos asegurado que se puede realizar la ejecución del flujo Tableau Prep y ahora, crearemos una tarea desde el Programador de tareas de Windows con opciones de administración, estableciendo la frecuencia de ejecución requerida:

Se necesita abrir el Programador de Tareas de Windows (Task Scheduler), con permisos de administración:

  • Desde la opción de Inicio de Windows y luego buscamos la opción “Programador de Tareas” o “Task Scheduler”.
  • Al igual que al iniciar la terminal, se debe elegir la opción del sub menú “Ejecutar como administrador” o “Run as administrator”.

Luego crearemos una nueva tarea:

  • Dentro del menú izquierdo del programador de tareas, seleccionar la opción “Biblioteca del programador de tareas” para ver todas las tareas programadas actualmente.
  • En la sección derecha, existe un conjunto de opciones, desde donde seleccionaremos “Crear tarea”. Se abrirá un asistente con varías pestañas de configuración.
  • En la pestaña “General”, ingresar un nombre de la tarea.

  • Luego, en la pestaña  “Desencadenadores”, agregar un “Nuevo” desencadenador para luego completar la programación de acuerdo a nuestras preferencias
  • Mantenemos la opción “Según una programación”.
  • Se puede escoger la frecuencia, que puede ser: “Una vez”, “Diariamente”, “Semanalmente”, “Mensualmente”. Para realizar una prueba podemos escoger la opción “Una vez”, con un horario que suceda en los siguientes 5 o 10 minutos aproximadamente. 
  • Marcar la opción “Expiración”; debido a que en algunos casos es necesario para la ejecución. Se recomienda siempre marcarlo.

  • En la pestaña “Acciones”, creamos una “Nueva” acción, que permita la ejecución del flujo Tableau Prep.
  • Mantenemos la opción “Iniciar un programa”.
  • Seleccionamos el archivo “.bat” probado en el paso anterior.
  • Finalmente hacemos click en la opción “Aceptar” de la ventana de creación de tareas. La nueva tarea debe aparecer dentro de la “Biblioteca del programador de tareas”.
  • Dependiendo del tipo de seguridad integrada que tengan, es posible que luego de Aceptar, aparezca una pantalla para agregar su usuario y contraseña con permisos de administración. Esto tendrán que realizarlo cada vez que se edite la tarea. Asimismo, si la contraseña de sus respectivos usuarios cambiara, se debe tener en cuenta que también se debe actualizar la contraseña en la configuración de la tarea. En caso contrario, podría obtenerse un error por el cambio de contraseña.

 

Paso 8: Verificar la ejecución automática de la tarea y del flujo de Tableau Prep

Siguiendo con el paso anterior, es importante esperar al tiempo de ejecución de la prueba, para asegurar que con los permisos de administración es posible que se pueda ejecutar el flujo de acuerdo a la frecuencia configurada:

  • Sabemos que se ha ejecutado automáticamente la tarea cuando se abre la terminal con una secuencia de comandos tal cual sucedió en la prueba del Paso 5.
  • Asimismo, aparecerá en la “Biblioteca del programador de tareas” la fecha de última ejecución y el mensaje “La operación se completó correctamente”. Si no aparece, se deberá actualizar la vista de la “Biblioteca del programador de tareas”.
  • Si no funcionara la ejecución; intentar reiniciando el ordenador o servidor. En algunos casos, puede necesitar este paso.
  • Finalmente, cuando se haya ejecutado satisfactoriamente, deberán modificar la opción de “Desencadenadores” de la tarea.

De esta manera, se queda configurada la tarea automática para ejecutar flujos Tableau Prep (.tfl, .tflx); de tal manera que ya no es necesario que esta actividad se realice manualmente.

Como se mencionó en la sección “Por qué programar la ejecución de un flujo de Tableau Prep Builder”, esta opción es útil para la ejecución automática de los flujos de Tableau Prep y muchas veces las compañías ´hasta que puedan adquirir el add-on Tableau Data Management.

Consideraciones finales

  • En el presente artículo no se está especificando las credenciales a conexiones con RServer o Tableau Python.
  • Este procedimiento no se puede implementar si existe algún tipo de bloqueo por parte del firewall o se usa la seguridad con autenticación externa.
  • Este procedimiento no se puede implementar si interfiere con alguna de las políticas de seguridad de su compañía.
  • Si necesita ayuda en la programación automática de los flujos de Tableau Prep Builder o quisiera conocer con mayor detalle las funcionalidades del add-on Tableau Data Management, contacte con nosotros.
Autores
Comparte
Share on facebook
Share on whatsapp
Share on linkedin
Share on twitter