Esta publicación trata sobre la automatización de procesos ETL repetitivos directamente desde tu escritorio. Sin código, sin servidor.<\/STRONG><\/P><\/P>Nota:<\/STRONG> Esta publicación originalmente discutía solo una forma de programar el procesamiento ETL, pero con el lanzamiento de ArcGIS Pro 2.5<\/STRONG>, que saldrá pronto, ¡la programación de trabajos llegará al geoprocesamiento de Desktop directamente desde el botón Ejecutar de cualquier herramienta! Dejaré los detalles del enfoque 'heredado' en la publicación, pero lee hasta el enfoque 'nuevo' una vez que puedas desplegar Pro 2.5.<\/EM><\/P><\/P>El enfoque heredado:<\/STRONG><\/P>Estamos viendo a muchas personas usar Data Interoperability para sincronizar periódicamente conjuntos de datos entre sistemas de registro. Normalmente, el 'disparador' para actualizar los datos fuente está basado en un horario y no en algún evento aleatorio, y la frecuencia de las actualizaciones se basa en múltiplos de un día laboral. Si estás en este tipo de rutina, ¡esta publicación es para ti!<\/P><\/P>Puede que hayas oído hablar de este tipo de automatización en el contexto del Programador de tareas de Windows con un script Python como tarea y el script llamando a una herramienta o modelo de geoprocesamiento.<\/A><\/P>Nosotros también vamos por la ruta de programación de tareas, pero sin necesidad de Python.<\/P><\/P>En la era moderna hay mucho énfasis en la arquitectura orientada a servicios y la pila ArcGIS tiene capacidades completas de publicación y sincronización entre aplicaciones, pero estás leyendo esto porque trabajas fuera de la pila, al menos en un extremo de tu flujo de trabajo de sincronización. Has usado la aplicación Workbench de Data Interoperability para manejar servicios, bases de datos, archivos y demás para lograr tu propio 'servicio' por lotes privado. No tienes que ser el servidor y hacer clic en 'Ejecutar' también. Tu amigo es este tipo:<\/P><\/P>C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe<\/STRONG><\/P><\/P>Así es, un ejecutable grande y robusto. Este es el que hace todo el trabajo cuando se ejecuta una herramienta ETL. Puede que nunca lo hayas notado, pero cuando ejecutas una herramienta ETL mientras editas en Workbench, la primera línea que aparece en la ventana del registro es: Línea de comando para ejecutar este espacio de trabajo: <\/STRONG><\/SPAN> seguida por la ruta a nuestro nuevo amigo arriba y la ruta al archivo .fmw abierto en Workbench, y cualquier argumento que el espacio de trabajo necesite. Está todo ahí, así que vamos a conectarlo.<\/SPAN><\/P><\/P>Primero dejemos algunas cuestiones legales claras. Con ArcGIS Pro, Enterprise y OnLine vives en un mundo con licencias por usuario nombrado. Tu herramienta ETL puede incluir estas credenciales. Siempre que la tarea programada que crees automatice la herramienta ETL en la máquina que usarías para ejecutarla interactivamente no debería haber problemas con las licencias. Si alguien más necesita ejecutarla debe reemplazar primero las credenciales del usuario nombrado.<\/SPAN><\/P><\/P>Para mi ejemplo voy a reutilizar un ejemplo de herramienta ETL de una publicación anterior<\/A>. Lo uso para mantener un servicio alojado de entidades usando datos obtenidos desde una instancia Geoserver vía una API WFS extendida. Tiene una tasa oficial de actualización semanal, cada sábado hora local; ejecuto la herramienta ETL cuando me acuerdo los lunes por la mañana (oye, es solo una demo). Vamos a automatizar eso. Los lunes se están volviendo problemáticos para mí, puedo olvidarlo.<\/SPAN><\/P><\/P>La herramienta ETL del ejemplo reporta que la línea de comando que debo usar para ejecutar el espacio de trabajo es:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw --API_Key "im_not_telling_you_my_api_key" --LDS_Unique_ID "address_id"<\/SPAN><\/P><\/P>Como las herramientas ETL almacenan sus valores parámetros no es necesario suministrar esos argumentos si no cambian, así que esto también funciona:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw<\/STRONG><\/SPAN><\/P><\/P>Ahora creamos la tarea programada. Abre el Programador de tareas y completa los diálogos para una Tarea básica:<\/SPAN><\/P><\/P> Ajusta las configuraciones según necesites: Consejo: if configuras la tarea exactamente como arriba aparecerá una ventana de comandos como esta abajo, si no quieres esto usa la configuración 'Ejecutar si el usuario ha iniciado sesión o no'. Mientras recuerdo, si te interesan más formas para procesar ETL por lotes consulta esta publicación< /A >.
Nosotros también vamos por la ruta de programación de tareas, pero sin necesidad de Python.<\/P>
<\/P>
En la era moderna hay mucho énfasis en la arquitectura orientada a servicios y la pila ArcGIS tiene capacidades completas de publicación y sincronización entre aplicaciones, pero estás leyendo esto porque trabajas fuera de la pila, al menos en un extremo de tu flujo de trabajo de sincronización. Has usado la aplicación Workbench de Data Interoperability para manejar servicios, bases de datos, archivos y demás para lograr tu propio 'servicio' por lotes privado. No tienes que ser el servidor y hacer clic en 'Ejecutar' también. Tu amigo es este tipo:<\/P>
C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe<\/STRONG><\/P><\/P>Así es, un ejecutable grande y robusto. Este es el que hace todo el trabajo cuando se ejecuta una herramienta ETL. Puede que nunca lo hayas notado, pero cuando ejecutas una herramienta ETL mientras editas en Workbench, la primera línea que aparece en la ventana del registro es: Línea de comando para ejecutar este espacio de trabajo: <\/STRONG><\/SPAN> seguida por la ruta a nuestro nuevo amigo arriba y la ruta al archivo .fmw abierto en Workbench, y cualquier argumento que el espacio de trabajo necesite. Está todo ahí, así que vamos a conectarlo.<\/SPAN><\/P><\/P>Primero dejemos algunas cuestiones legales claras. Con ArcGIS Pro, Enterprise y OnLine vives en un mundo con licencias por usuario nombrado. Tu herramienta ETL puede incluir estas credenciales. Siempre que la tarea programada que crees automatice la herramienta ETL en la máquina que usarías para ejecutarla interactivamente no debería haber problemas con las licencias. Si alguien más necesita ejecutarla debe reemplazar primero las credenciales del usuario nombrado.<\/SPAN><\/P><\/P>Para mi ejemplo voy a reutilizar un
La herramienta ETL del ejemplo reporta que la línea de comando que debo usar para ejecutar el espacio de trabajo es:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw --API_Key "im_not_telling_you_my_api_key" --LDS_Unique_ID "address_id"<\/SPAN><\/P><\/P>Como las herramientas ETL almacenan sus valores parámetros no es necesario suministrar esos argumentos si no cambian, así que esto también funciona:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw<\/STRONG><\/SPAN><\/P><\/P>Ahora creamos la tarea programada. Abre el Programador de tareas y completa los diálogos para una Tarea básica:<\/SPAN><\/P><\/P>
Ajusta las configuraciones según necesites:
Consejo: if configuras la tarea exactamente como arriba aparecerá una ventana de comandos como esta abajo, si no quieres esto usa la configuración 'Ejecutar si el usuario ha iniciado sesión o no'.
Mientras recuerdo, si te interesan más formas para procesar ETL por lotes
Hi,
I'm looking to carry out the above but we have concurrent licensing & you mention at the end 'if you are using concurrent licensing and scheduling a Python script tool that calls any extensions (Data Interoperability for example) then your code will need a CheckOutExtension() call.'
Would you add this to the task when you setting it up or do you have an example of where you would write the code/implement it. I'm trying to run a FME workflow from a client as a scheduled task so will need to add in the check out then check in license for the data interop ext.
Sorry I wasn't clear in the post, CheckoutExtension is an ArcPy function you would include in a Python script if you were using this approach and Windows Task Scheduler and a tool that uses a Data Interoperability ETL tool.
https://pro.arcgis.com/en/pro-app/latest/help/analysis/geoprocessing/basics/schedule-geoprocessing-tools.htm
If you're using the FME product CheckoutExtension would not be needed, it has its own license technology.
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.