Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Base de conocimiento

Este artículo es parte de la serie Dominio de Herramientas, una compilación de contribuciones a la Base de Conocimiento para introducir diferentes ejemplos prácticos de las herramientas de Alteryx Designer. Vamos a profundizar en los usos de la herramienta Tabulación Cruzada en nuestro camino hacia el dominio de Alteryx Designer:
Ver artículo completo
Este artículo es parte de la serie de Dominio de Herramientas, una compilación de contribuciones a la Base de Conocimiento para introducir diferentes ejemplos prácticos de herramientas de Designer. Aquí profundizaremos en los usos de la herramienta Fórmula de filas múltiples con el objetivo de dominar Alteryx Designer:  
Ver artículo completo
Este artículo es parte de la serie Dominio de Herramientas, una compilación de contribuciones a la Base de Conocimiento para introducir diferentes ejemplos prácticos de las herramientas de Alteryx Designer. Vamos a profundizar en los usos de la herramienta RegEx en nuestro camino hacia el dominio de Alteryx Designer:
Ver artículo completo
Este artículo es parte de la serie Dominio de Herramientas, una compilación de contribuciones a la Base de Conocimiento para introducir diferentes ejemplos prácticos de herramientas de Designer. Aquí profundizaremos en los usos de la herramienta Unir Múltiple con el objetivo de dominar Alteryx Designer:
Ver artículo completo
Aunque la herramienta Unir es fácilmente una de las herramientas más utilizadas en Alteryx, puede ser también una de las más incomprendidas. Esto es más cierto si los usuarios nuevos no han utilizado uniones anteriormente en ningún otra plataforma de manipulación de datos o si están uniendo tablas grandes donde no están rastreando los registros dentro de los campos que están uniendo.   Por lo tanto, repasaré tres casos diferentes de unión de dos tablas en un campo común que puedes encontrar y qué esperar en tus resultados. El flujo que repasaré (adjunto en este artículo) es un flujo que creé en 10.5 y contiene algunas imágenes que están a continuación.   Caso #1: Unir campos que tienen registros únicos   Este caso es el más simple y el más sencillo de comprender. En este caso, estamos uniendo los campos llamados “Fruit” en ambas entradas. La unión alineará los registros de ambas tablas si los registros de los campos “Fruit” coinciden.   Así que, la tabla unida esperada (Salida J) debería verse así:   Bastante sencillo   Caso #2: Unir campos donde solo uno tiene registros únicos   Para este caso, tenemos dos registros de “Banana” en nuestra entrada Izquierda (L). Esto significa que el registro con “Banana” en la entrada Derecha coincidirá dos veces y se anexará a ambos registros de la entrada Izquierda. Nuestra Salida debería verse así:     Caso #3: Unir campos que tienen registros no únicos Este puede ser el más difícil de comprender pero, con suerte, luego de observarlo visual y matemáticamente, entenderás por qué tiene sentido y qué puedes hacer para evitar registros no deseados.   En este caso, tenemos dos registros en “Fruit” que tienen “Banana” en ambas tablas. Aquí pasa lo mismo que en el caso anterior, excepto que ahora pasa dos veces porque tenemos dos registros de la entrada Derecha que coinciden con dos registros de la entrada Izquierda. Por lo tanto, nuestra salida tendrá un total de 4 registros que tienen la palabra “Banana” en ellos.  La salida debería verse así:     Para verlo de manera matemática para el Caso #3 y el Caso #2, sabrás cuántos registros obtendrás por cada instancia de registro multiplicando la cantidad de registros que aparecen en ambas tablas. En el ejemplo anterior, ya que estamos uniendo “Fruit” y vemos el registro banana dos veces en ambas tablas, puedes pensarlo como 2 bananas x 2 bananas=4 bananas.   Si agregáramos otra fila en nuestra entrada Derecha, como esta:   Ahora tenemos 3 x 2, así que deberíamos esperar 6 combinaciones de registros con “Banana” en el campo “Fruit”         Si has unido dos tablas y estás obteniendo más registros de lo que esperabas, entonces estó es probablemente la causa de tu problema. Si no entiendes los casos presentados anteriormente, eso podría eloqucer a cualquiera. En cuanto a mejores prácticas, yo seguiría estos dos pasos antes de unir cualquier tabla:   1 ro : Revisa tus tablas por registros duplicados. Para el caso anterior, como tenemos tres duplicados de nuestra entrada derecha, podemos usar la herramienta Único y deshacernos de esos duplicados. La salida será la misma que la del Caso #2 ya que habrá solo un registro de “Banana” luego de usar la herramienta Único.   2 do : Determina si Unir múltiples campos es la opción más apropiada. Ejemplo: tenemos la Tabla 1 con dos registros que contienen ‘Banana’ en “Fruit” y dos registros que contienen ‘X’ en “Store ID” con “Fruit ID” que corresponde con “Fruit”.  La Tabla 2 tiene los dos mismos campos “Fruit” e “Store ID”, excepto que ahora tenemos un campo “Store employees” que se acopla con “Store ID”.                                                                     Tabla 1 Tabla 2   Queremos tener todos los datos juntos para que se acoplen bien.  Idealmente deberíamos solo tener cuatro registros como resultado de nuestra unión ya que queremos obtener los campos “Store Employees” y “FruitID” en una tabla. Sin embargo, si quisiéramos solo unir un campo común, ya sea “Store ID” o “Fruit”, obtendríamos combinaciones y los datos no estarían alineados de manera correcta. Consultar a continuación.   Unir “Fruit”   En este caso, obtenemos dos registros en los que los registros de "Store ID" no coinciden.   Unir “StoreID”   En este caso, obtenemos dos registros en los que los registros de "Fruit" no coinciden. Para corregirlo, configuraremos nuestra unión para hacer coincidir los campos de "Fruit" y de "Store ID".     Luego de ejecutarlo, la tabla unida debería verse así:   Al unir campos múltiples, nos aseguramos que los registros de ambos campos coinciden antes de unir. Una manera fácil de entenderlo es imaginar que “Fruit” y "Store ID” se están fusionando. Ahora tendremos registros únicos porque tendríamos Banana X y Banana Y como dos entidades únicas y nuestra unión se convertirá en una unión de 1 registro x 1 registro.      
Ver artículo completo
La ‘Guía práctica’ de la herramienta Publicar en servidor de Tableau   La sociedad entre Alteryx y Tableau se está volviendo cada vez más fuerte y la integración se ha facilitado a través de la herramienta Publicar en servidor de Tableau.   Puedes descargar la herramienta desde Alteryx Analytics Gallery. Una vez que hayas descargado la herramienta deberías poder encontrarla en la categoría de herramientas Conectores.        Ahora, una vez que hayas descargado la macro, estás listo para configurar la herramienta y publicar en Tableau.   Paso 1: Acceso   Debes acceder a una instancia de Tableau Server (9.0.1 y superior) o Tableau Online para utilizar esta herramienta y publicar un flujo de datos en Tableau. Salvo que se señale lo contrario, Tableau Server y Tableau Online son intercambiables en todo este documento y en toda la configuración de la herramienta. Por el bien de ser breve, “Tableau Server” se referirá a Tableau Server y Tableau Online durante el resto de este documento.   Paso 2: Opción de conexión   Esta macro te da la opción de conectarte directamente con Tableau Server a través del navegador web o a través de la URL del servidor.   ‘Conectarse con la URL completa de la página’ Cuando inicies sesión en Tableau Server, navega a la página del workbook en que desees escribir. Esta es la opción recomendada. Luego, puedes copiar toda la URL en el cuadro de texto proporcionado en la interfaz.   Ejemplo de URL: https://10ay.online.tableau.com/#/site/mycompanyssite/workbooks   ‘Conectarse con el servidor y el sitio’ Con esta opción seleccionada, debes ingresar el nombre de dominio de la URL del servidor (p. ej., https://10ay.online.tableau.com si usamos el ejemplo anterior).   Tableau Server esta diseñado para que múltiples "sitios" puedan alojarse en la misma instancia de servidor. Utiliza la información a continuación para determinar tu nombre de sitio cuando inicias sesión en Tableau Server desde un navegador web.   Con Tableau Server, inmediatamente después de ingresar nombre de usuario y contraseña, pasará una de estas dos cosas:   1) Se le solicita al usuario que seleccione un sitio. Si sucede esto, el sitio seleccionado aquí puede ingresarse en el campo “Ingresar nombre del sitio”. 2) El usuario ingresa directamente a Tableau Server, sin tener que seleccionar un sitio. Si este es el caso, entonces el usuario debe seleccionar la opción “Utilizar sitio predeterminado”.   Con Tableau Online no hay sitio predeterminado y siempre deberás ingresar manualmente el nombre del sitio con esta opción (una de las razones por las que “Conectarse con la URL completa de la página” es el método preferido, especialmente cuando te conectas a Tableau Online). Una vez que inicies sesión, la URL debería ser algo así: https://10ay.online.tableau.com/#/site/mycompanyssite/workbooks. El nombre del sitio será la cadena contenida entre las barras diagonales después de "#/site/". En este ejemplo, el nombre del sitio sería mycompanyssite.   Una vez que hayas elegido tu conexión, puedes elegir ‘guardar historial de conexión’ que guardará tus credenciales y conexión en el botón de opción ‘seleccionar conexión ya existente’. Esto rellenará un menú desplegable con todas tus conexiones exitosas anteriores.    Paso 3: Ingresa tu nombre de usuario y contraseña   En este momento, ingresa tu nombre de usuario y contraseña de Tableau Server, lo mismo que cuando inicies sesión a través de un navegador web.    *Consulta errores comunes si recibes un mensaje ‘Error 400000 Bad Request’   Paso 4: Seguimos con la pestaña de Salida   Por defecto, estará seleccionado ‘Publicar la fuente de datos’. En este momento, deberás escribir la fuente de datos recientemente creada en Tableau Server. El nombre de la fuente de datos distingue entre mayúsculas y minúsculas y debe ser preciso.   Puedes escribir manualmente el nombre o elegir ‘seleccionar nombre de proyecto’ que solamente se rellenará si has marcado ‘Actualizar lista de nombres de proyectos…’ y has ejecutado el módulo una vez. Si la opción ‘Actualizar lista de nombres de proyectos’ está tildada, no se publicarán datos en Tableau Server; ¡este es simplemente un paso de configuración para que la lista de proyectos disponibles aparezca en el menú desplegable!     Paso 5: Opciones de salida   Una vez que tengas la fuente de datos y el nombre de proyecto correctos, puedes elegir tu método de salida. “Crear fuente de datos” generará un nuevo archivo en la carpeta de proyecto especificada, sin embargo si ya existe un archivo con el mismo nombre de fuente de datos, el archivo no se actualizará y dará error.   La segunda opción es “sobrescribir fuente de datos”. Se cargará el archivo sin importar si existe o no en la carpeta de proyectos especificada. Si ya existe un archivo con el mismo nombre, será sobrescrito.     Paso 6: Opcional   Si eliges seleccionar la opción “solicitar token de autenticación”, la macro proporcionará un token de autenticación en el campo X-Tableau-Auth. Este puede utilizarse para hacer llamadas subsiguientes a la API REST de Tableau Server con la herramienta Descargar y otras herramientas, como curl. La fuente de datos no será publicada.   Sugerencias y trucos   ¡Asegúrate de que la herramienta esté actualizada!   Visita la página de Gallery de la herramienta Publicar en servidor de Tableau, dirígete a gallery.alteryx.com y navega al Distrito de macros o dirígete directamente a este enlace.         Luego, verifica la versión de la herramienta haciendo clic con el botón derecho, y haz clic en “Abrir macro: Publicar en servidor de Tableau.yxmc”. Luego, en la ventana de configuración del flujo de trabajo, haz clic en la pestaña Metainformación.         [Nota: la versión 1.02 y anteriores no muestran la versión de la herramienta, en cuyo caso ¡debes actualizar a la más nueva descargándola de la página en Gallery!]   ¡Estudia! ¡Inicia sesión en Tableau Server o en línea y extrae el nombre de la URL de conexión! Solo necesitas la URL hasta el libro de trabajo que estás escribiendo.   ¡Verifica la letra chica! Si eliges ‘seleccionar nombre de proyecto’, asegúrate de marcar ‘actualizar lista de nombres de proyectos’ y ejecutar el módulo una vez para rellenar el menú desplegable. (Y, de nuevo, cuando se ejecuta la herramienta con la opción marcada, no se publican datos)   Cómo ‘actualizar’ la fuente de datos Si usas la nueva herramienta Publicar en servidor de Tableau, incluso si tienes éxito, la fuente de datos no se “actualizará” de manera automática. Esto significa que deberás hacerlo desde el lado de Tableau. En Tableau, puedes configurar intervalos de actualizaciones que actualizarán el lado de Tableau periódicamente. Sin embargo, también puedes actualizar de manera manual.         Errores comunes   “Carga es un XML malformado o está incompleto”     Solución Esta es una limitación en la API de Tableau Server, que hemos comunicado a Tableau, pero estamos esperando respuesta o arreglo por lo que está fuera de nuestro control. Si tu contraseña contiene cualquier carácter que requiera escape de xml: comillas dobles o simples, mayor que, menor a, signo et, o signo de porcentaje, (“ ‘ < > %) la solicitud de inicio de sesión fracasará. Esto es especialmente cierto si tu contraseña tiene dos caracteres especiales. La herramienta Publicar en Tableau mas reciente ha sido creada para manejar la mayoría de estos caracteres especiales, sin embargo, si sigues recibiendo este mensaje de error, la solución alternativa actual es cambiar tu contraseña para evitar caracteres especiales o incluir solo uno de los caracteres anteriores.     “Se alcanzó el límite de 100 iteraciones de la herramienta #200”     Solución Este error fue resuelto en la última versión de la herramienta. Descárgala aquí.    “Tableau Data Engine Error: 4: SimpleDatabase: electMetadataName: expected found=1, actual found=0 (fk= name="Extract" nameTable="TEST") La tabla "[Extract].[Extract]" no existe. No se puede conectar con el archivo "C/Desktop…". Verifica que el archivo exista y que tengas suficientes privilegios de acceso para él”. Este error fue resuelto en la última versión de la herramienta. Descárgala aquí.     Si sigues teniendo problemas con la herramienta Publicar en Tableau, comunícate con Soporte.   Saludos,   Jordan Barker Ingeniero de Servicios de Soporte al Cliente
Ver artículo completo
He enfrentado algunas situaciones últimamente que resultaron en la pérdida de datos debido a que no estaba disponible la copia de respaldo de Alteryx Server. No puedo dejar de enfatizar la importancia de hacer copias de seguridad regulares de tu servidor. Este artículo, el primero de una serie de dos partes, cubrirá algunas opciones y prácticas recomendadas para asegurar que tengas las copias de seguridad disponibles en el caso de necesitarlas. La Parte II se concentrará en la instancia MongoDB incrustada que se proporciona con la instalación de Alteryx Server. Si estás utilizando una instancia MongoDB administrada por usuarios, consulta los documentos de MongoDB para conocer sobre procedimientos de copia de respaldo y recuperación en https://docs.mongodb.org/manual/administration/backup/.   Repasemos algunas prácticas recomendadas aceptadas para hacer copias de respaldo de servidores y bases de datos:   Programar copias de respaldo regulares: hacer copias de respaldo de manera consistente y regular es clave para asegurarte de minimizar la pérdida de datos y el tiempo de inactividad. Yo recomiendo hacer copias de respaldo nocturnas, durante horas no pico, para minimizar el impacto potencial en los usuarios y la pérdida de la mínima cantidad de datos en caso de un bloqueo u otra falla. Si no es posible realizar copias de respaldo nocturnas, programar copias de respaldo semanales también es una opción. Lo importante es establecer un cronograma regular.   Mantener copias de respaldos históricos durante un periodo definido: algunas veces pasa lo inesperado y la copia de respaldo falla, se corrompe, se pierde/borra o el problema no es advertido de inmediato (lo que causa que el problema esté presente en las copias de respaldo). Tener copias de respaldo históricas ayuda a asegurarte que tienes una copia de respaldo disponible y te permite elegir una que fue creada antes de que comenzara el problema.   Almacenar las copias de respaldo en la red o un almacenamiento SAN: almacenar tus copias de respaldo en el mismo servidor donde se encuentran los datos corre el riesgo de tener disponibles esas copias de respaldo durante un evento de falla. Consideremos qué pasa cuanto tu servidor sufre una falla de disco. Si las copias de respaldo se almacenan localmente es ese disco, también desaparecieron, lo que hace imposible recuperarlas.  Sin embargo, si almacenas tus copias de respaldo en la red, no se verían impactadas por un evento de falla en el servidor.   Mantén una copia externa de la copia de respaldo: esto va de la mano de lo mencionado anteriormente. Si las únicas copias de respaldo están en un servidor de archivos en el mismo centro de datos que Alteryx Server, y ese centro de datos sufre un desastre, perderás tu servidor y tus copias de respaldo. Si tienes una copia externa adicional, podrás traer de vuelta al servidor en la Nube o en otro centro de datos, si lo necesitas.   Valida tus archivos de copia de respaldo: debes verificar periódicamente y asegurarte de que tus copias de respaldo se están realizando con éxito y confirmar que las copias de respaldo son válidas y pueden usarse. No hay nada peor que establecer un proceso de copias de respaldo y, luego, descubrir, luego de una falla, que las copias de respaldo dejaron de funcionar hace 6 meses o que ninguna puede usarse.    Practicar los procedimientos de recuperación con regularidad: los simulacros de recuperación te permiten familiarizarte con el proceso de restitución y con la cantidad de tiempo necesario para volver a un estado totalmente funcional en caso de desastre. También se ha probado que la práctica reduce la aparición de errores y puede ahorrar tiempo valioso. Yo recomiendo realizar un simulacro de recuperación trimestralmente o cada seis meses.   Ten en cuenta que, en la mayoría de los casos, no es necesario hacer copias de respaldo de todo el servidor, incluyendo el SO y todos los datos. De hecho, en realidad puede aumentar significativamente el tiempo promedio de restitución. En lugar de eso, recomendaría hacer copias de respaldo de los datos críticos y los archivos de configuración del servidor. Esto es debido a que es significativamente más rápido realizar una instalación limpia del servidor y el software necesario y, luego, restituir los datos o la configuración copiada que restituir todo el servidor. Esto es especialmente cierto en el caso de servidores virtuales, ya que implementar un nuevo servidor virtual lleva minutos en la mayoría de los casos. Estas copias de respaldo limitadas pueden reducir el tiempo que insume realizar y validar las copias de respaldo y reduce las necesidades o costos de almacenamiento que implican tener esas copias de respaldo.   Parte 2 Copia de respaldo y recuperación de Alteryx Server, Parte 2: Procedimientos    
Ver artículo completo
Este es el segundo artículo de una serie sobre las copias de respaldo y recuperación de Alteryx Server. Puedes encontrar la Parte 1 en:   Copia de respaldo y recuperación de Alteryx Server, Parte 1: Prácticas recomendadas   Siempre que haya disponible una copia de respaldo de la base de datos Mongo, puedes recuperar y hacer funcionar Alteryx Server. Por suerte, hacer copias de respaldo de la MongoDB incrustada es muy simple y puede hacerse con unos pocos comandos de consola. Yo recomendaría crear un archivo en lote o script para realizar el proceso. Si lo haces, te permitirá programar la copia de respaldo mediante el uso de Windows Task Scheduler. Los pasos para realizar una copia de respaldo de MongoDB se cubren en la ayuda en línea debajo de la sección de configuración del servidor o en este enlace directo. También resumiré los pasos a continuación para que sea más completo.   Para crear una copia de respaldo de MongoDB:   Detén AlteryxService. Ejecuta el siguiente comando para guardar una copia de respaldo de la base de datos en la carpeta especificada:   alteryxservice emongodump= Reinicia AlteryxService   Puedes crear un script de esto en un archivo de lote con unos cuantos comandos simples. Ten en cuenta que es posible que las rutas cambien en tu servidor, pero debería verse algo así:   Ejemplo:     "C:/Program Files/Alteryx/bin/AlteryxService.exe" stop "C:/Program Files/Alteryx/bin/AlteryxService.exe" emongodump=Z:/Path/MongoBackup "C:/Program Files/Alteryx/bin/AlteryxService.exe" start     Puedes agregar funciones adicionales, como inicio de sesión y marcas de fecha y hora, a las copias de respaldo.  Como ejemplo de las funciones útiles adicionales que puedes incluir con tus copias de respaldo, he incluido el código de un script de lote que creé y que agrega la siguiente información: inicio de sesión con marcas de fecha y hora, una copia de respaldo que también tiene marcas de fecha y hora, archivo automatizado de la copia de respaldo, copia del archivo a una ubicación de la red y una limpieza de los archivos temporales.   Una vez que tengas el archivo de lote u otro script para realizar tus copias de respaldo, debes probar el script para asegurarte de que funcione correctamente. Una vez que termines la prueba, el próximo paso es programar la copia de respaldo. La manera más fácil de hacerlo es usar Windows Task Scheduler. Para crear una tarea programada en Windows 2012 Server, sigue estos pasos:   Crear una tarea programada:   Abre Programador de tareas y haz clic en "Crear tarea"   En la pestaña General, ingresa “Nombre”, “Descripción”, selecciona “Ejecutar tanto si el usuario inició sesión como si o no" y selecciona "Ejecutar con los privilegios más altos"   En la pestaña Desencadenadores, haz clic en “Nuevo”   Aparecerá un cuadro de diálogo. Define el cronograma (diariamente, semanalmente, etc...) sobre el que quieres ejecutar y haz clic en “Aceptar”   En la pestaña Acciones, haz clic en “Nueva”   En la ventana de diálogo, asegúrate de que esté seleccionado “Iniciar un programa” y haz clic en “Examinar”. Selecciona el archivo en lote que creaste y haz clic en “Abrir”. Luego, haz clic en “Aceptar”.   Haz clic en “Aceptar” en la ventana Crear tarea para finalizar la creación de la tarea de copia de respaldo.   Ahora que has implementado procedimientos de copia de respaldo y programado una tarea para automatizar copias de respaldo con éxito, es momento de discutir sobre la restitución de una base de datos desde una copia de respaldo. Lo bueno es que restituir la base de datos es tan simple como hacer copias de respaldo de ella. Asumiendo que 1) el servidor está funcionando, 2) Alteryx Server está instalado y 3) tienes una copia de respaldo válida disponible, puedes seguir estos simples pasos explicados a continuación.   Para restituir una copia de respaldo de MongoDB:   Detén AlteryxService. Ejecuta el siguiente comando para restituir la copia de respaldo:   alteryxservice emongorestore=,   Reinicia AlteryxService.   Esta simplicidad de instrucciones de línea de comandos quiere decir que podemos también recuperar script. Sin embargo, como las acciones de recuperación son mucho menos frecuentes, probablemente no sea necesario. En lugar de eso, podrías solo conectarte al servidor, abrir una solicitud de comando y, siguiendo nuestro ejemplo de copia de respaldo anterior, ejecutar los siguientes comandos:   Ejemplo:     "C:/Program Files/Alteryx/bin/AlteryxService.exe" stop "C:/Program Files/Alteryx/bin/AlteryxService.exe" emongorestore=Z:/Path/MongoBackup,C:/ProgramData/Alteryx/Service/Persistence/MongoDB "C:/Program Files/Alteryx/bin/AlteryxService.exe" start     Para Alteryx Server, también recomendamos hacer copias de respaldo del token controlador y de algunos archivos de configuración. Aunque el servidor puede recuperarse sin esos archivos, tener una copia de respaldo de ellos puede acelerar el proceso de recuperación, y también te asegurarán que podrás desencriptar cualquier dato sensible en la base de datos. Recomendamos hacer copia de respaldo de los siguientes archivos de configuración:   C:/ProgramData/Alteryx/RuntimeSettings.xml C:/ProgramData/Alteryx/Engine/SystemAlias.xml C:/ProgramData/Alteryx/Engine/SystemConnections.xml   De nuevo, ten en cuenta que las rutas exactas pueden cambiar dependiendo de la configuración del servidor y de dónde esté ubicada la copia de respaldo. Este ejemplo también asume que la copia de respaldo no está comprimida o archivada. Si estás usando un script de copia de respaldo que archive la copia de respaldo y la copia al almacenamiento de red, deberás copiar el archivo de copia de respaldo en el servidor y descomprimir el archivo antes de ejecutar los comandos de recuperación anteriormente mencionados.     A continuación te presento mi código de muestra de script de lote:   ::----------------------------------------------------------------------------- :: :: Script de copia de respaldo de AlteryxServer v.2.0.2 - 01/04/19 :: Creado por: Kevin Powney :: :: Verificaciones de comienzo y detención adaptadas desde el código del ejemplo por Eric Falsken :: ::----------------------------------------------------------------------------- @echo off ::----------------------------------------------------------------------------- :: Configura las variables de Registro, Temporal, Red y Rutas de aplicación :: :: Actualiza estos valores según corresponda para tu entorno. Nota :: los espacios deben evitarse en las rutas de Directorio de registro, Directorio de temporal y Directorio de red. :: La barra al final también es obligatoria para estas rutas. ::----------------------------------------------------------------------------- SET LogDir=C:/ProgramData/Alteryx/BackupLog/ SET TempDir=C:/Temp/ SET NetworkDir=//ServerName/SharePath/ SET AlteryxService="C:/Program Files/Alteryx/bin/AlteryxService.exe" SET ZipUtil="C:/Program Files/7-Zip/7z.exe" :: Set the maximium time to wait for the service to start or stop in whole seconds. Default value is 2 hours. SET MaxServiceWait=7200 ::----------------------------------------------------------------------------- :: Set Date/Time to a usable format and create log ::----------------------------------------------------------------------------- FOR /f %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a SET DateTime=%DTS:~0,4%%DTS:~4,2%%DTS:~6,2%_%DTS:~8,2%%DTS:~10,2%%DTS:~12,2% SET /a tztemp=%DTS:~21%/60 SET tzone=UTC%tztemp% echo %date% %time% %tzone%: Starting backup process... > %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Detén Alteryx Service ::----------------------------------------------------------------------------- echo %date% %time% %tzone%: Stopping Alteryx Service... >> %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log SET COUNT=0 :StopInitState SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO StopService SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO StopedService SC query AlteryxService | FIND "STATE" | FIND "PAUSED" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO SystemError echo %date% %time% %tzone%: Estado de servicio está cambiando, esperando a que el servicio resuelva su estado antes de realizar cambios >> %LogDir%BackupLog%datetime%.log SC query AlteryxService | Find "STATE" timeout /t 1 /nobreak >NUL SET /A COUNT=%COUNT%+1 IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError GOTO StopInitState :StopService SET COUNT=0 SC stop AlteryxService >> %LogDir%BackupLog%datetime%.log GOTO StoppingService :StopServiceDelay echo %date% %time% %tzone%: Esperando a que AlteryService se detenga >> %LogDir%BackupLog%datetime%.log timeout /t 1 /nobreak >NUL SET /A COUNT=%COUNT%+1 IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError :StoppingService SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log IF errorlevel 1 GOTO StopServiceDelay :StopedService echo %date% %time% %tzone%: AlteryService se detuvo >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Hacer copia de respaldo de MongoDB en directorio temporal local. ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Iniciando copia de respaldo de MongoDB... >> %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log %AlteryxService% emongodump=%TempDir%ServerBackup_%datetime%/Mongo >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Hacer copia de respaldo de archivos de configuración en directorio temporal local. ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Haciendo copias de respaldo de configuraciones, conexiones y alias... >> %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log copy %ProgramData%/Alteryx/RuntimeSettings.xml %TempDir%ServerBackup_%datetime%/RuntimeSettings.xml >> %LogDir%BackupLog%datetime%.log copy %ProgramData%/Alteryx/Engine/SystemAlias.xml %TempDir%ServerBackup_%datetime%/SystemAlias.xml copy %ProgramData%/Alteryx/Engine/SystemConnections.xml %TempDir%ServerBackup_%datetime%/SystemConnections.xml %AlteryxService% getserversecret > %TempDir%ServerBackup_%datetime%/ControllerToken.txt ::----------------------------------------------------------------------------- :: Reinicia Alteryx Service ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Reiniciando Alteryx Service... >> %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log SET COUNT=0 :StartInitState SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO StartService SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO StartedService SC query AlteryxService | FIND "STATE" | FIND "PAUSED" >> %LogDir%BackupLog%datetime%.log IF errorlevel 0 IF NOT errorlevel 1 GOTO SystemError echo %date% %time% %tzone%: Estado de servicio está cambiando, esperando que el servicio resuelva su estado antes de hacer cambios >> %LogDir%BackupLog%datetime%.log SC query AlteryxService | Find "STATE" timeout /t 1 /nobreak >NUL SET /A COUNT=%COUNT%+1 IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError GOTO StartInitState :StartService SET COUNT=0 SC start AlteryxService >> %LogDir%BackupLog%datetime%.log GOTO StartingService :StartServiceDelay echo %date% %time% %tzone%: Esperando que AlteryxService se inicie >> %LogDir%BackupLog%datetime%.log timeout /t 1 /nobreak >NUL SET /A COUNT=%COUNT%+1 IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError :StartingService SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log IF errorlevel 1 GOTO StartServiceDelay :StartedService echo %date% %time% %tzone%: AlteryxService se inició >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Esta sección comprime la copia de respaldo en un solo archivo comprimido :: :: Ten en cuenta que el comando a continuación requiere instalar 7-Zip en el servidor. :: Puedes descargar 7-Zip desde http://www.7-zip.org/ o cambiar el comando a :: utiliza la utilidad de compresión que elijas como se define en la variable anterior. ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Archivando la copia de respaldo... >> %LogDir%BackupLog%datetime%.log %ZipUtil% a %TempDir%ServerBackup_%datetime%.7z %TempDir%ServerBackup_%datetime% >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Mover archivo comprimido a la ubicación de almacenamiento de red y limpiar archivos locales ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Moviendo archivo a almacenamiento de red >> %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log copy %TempDir%ServerBackup_%datetime%.7z %NetworkDir%ServerBackup_%datetime%.7z >> %LogDir%BackupLog%datetime%.log del %TempDir%ServerBackup_%datetime%.7z >> %LogDir%BackupLog%datetime%.log rmdir /S /Q %TempDir%ServerBackup_%datetime% >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Listo ::----------------------------------------------------------------------------- echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Se completó el proceso de copia de respaldo >> %LogDir%BackupLog%datetime%.log GOTO :EOF :SystemError echo. >> %LogDir%BackupLog%datetime%.log echo %date% %time% %tzone%: Error al iniciar o detener el servicio. No se puede acceder al servicio, está fuera de línea o no respondió a la solicitud de inicio o detención en el periodo de tiempo designado. >> %LogDir%BackupLog%datetime%.log
Ver artículo completo