Dit bericht gaat over het automatiseren van repetitieve ETL-processen direct vanaf je desktop. Geen code, geen server.<\/STRONG><\/P><\/P>Opmerking:<\/STRONG> Dit bericht besprak oorspronkelijk slechts één manier om ETL-verwerking te plannen, maar met de ArcGIS Pro 2.5<\/STRONG> release, die binnenkort uitkomt, komt taakplanning naar Desktop geoprocessing direct vanaf de Run-knop van elk gereedschap! Ik laat de details van de 'legacy' aanpak in het bericht staan, maar lees zeker door naar de 'nieuwe' aanpak zodra je Pro 2.5 kunt inzetten.<\/EM><\/P><\/P>De legacy aanpak:<\/STRONG><\/P>We zien veel mensen Data Interoperability gebruiken om periodiek datasets tussen systemen van registratie te synchroniseren. Typisch wordt de trigger voor het vernieuwen van brondata gestuurd door een schema en niet door een willekeurige gebeurtenis, en de frequentie van updates is gebaseerd op veelvouden van een werkdag. Als je op zo'n loopband zit, is dit bericht voor jou!<\/P><\/P>Je hebt misschien gehoord van dit soort automatisering in de context van Windows Taakplanner met een Python-script als taak en het script dat een geoprocessing tool of model aanroept.<\/A><\/P>We gaan ook de weg van taakplanning op, maar zonder Python nodig te hebben.<\/P><\/P>In het moderne tijdperk ligt er veel nadruk op servicegerichte architectuur en heeft de ArcGIS stack uitgebreide publicatie- en synchronisatiemogelijkheden tussen apps, maar je leest dit omdat je buiten de stack werkt, tenminste aan één kant van je synchronisatieworkflow. Je hebt Data Interoperability's Workbench-app gebruikt om services, databases, bestanden enzovoort te beheren om je eigen privé batch 'service' te realiseren. Je hoeft niet de server te zijn en ook niet op 'Run' te klikken. Je vriend is deze kerel:<\/P><\/P>C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe<\/STRONG><\/P><\/P>Dat klopt, een grote dikke uitvoerbare file. Dit is degene die al het werk doet wanneer een ETL-tool draait. Je hebt het misschien nooit gemerkt, maar wanneer je een ETL-tool uitvoert terwijl je in Workbench aan het bewerken bent, is de allereerste regel die verschijnt in het logvenster: Command-line om deze workspace uit te voeren: <\/STRONG><\/SPAN> gevolgd door het pad naar onze nieuwe vriend hierboven en het pad naar het geopende workbench .fmw-bestand, en eventuele argumenten die de workspace nodig heeft. Het staat er allemaal, dus laten we het samenvoegen.<\/SPAN><\/P><\/P>Laten we eerst wat juridische zaken afhandelen. Met ArcGIS Pro, Enterprise en OnLine leef je in een wereld van named user-licenties. Je ETL-tool kan deze referenties insluiten. Mits de geplande taak die je bouwt de ETL-tool automatiseert op de machine die je zou gebruiken om deze interactief uit te voeren, zouden er geen licentieproblemen moeten zijn. Als iemand anders het moet uitvoeren, moet die eerst de named user-referenties vervangen.<\/SPAN><\/P><\/P>Voor mijn voorbeeld ga ik een ETL-toolvoorbeeld uit een eerder bericht hergebruiken<\/A>. Ik gebruik het om een hosted feature service te onderhouden met data verzameld uit een Geoserver-instantie via een uitgebreide WFS API. Het heeft een officiële verversingssnelheid van eenmaal per week, elke zaterdag lokale tijd; ik voer de ETL-tool uit wanneer ik eraan denk op maandagochtenden (hé, het is maar een demo). Laten we dat automatiseren. Maandagen worden problematisch voor mij, ik kan het vergeten.<\/SPAN><\/P><\/P>De voorbeeld ETL-tool meldt dat de opdrachtregel die ik moet gebruiken om de workspace uit te voeren is:<\/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>Omdat ETL-tools hun parameterwaarden opslaan is het niet nodig om die argumenten mee te geven als ze niet veranderen, dus dit werkt ook:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw<\/STRONG><\/SPAN><\/P><\/P>Nu maken we de geplande taak aan. Open Taakplanner en vul de dialoogvensters in voor een Basis Taak:<\/SPAN><\/P><\/P>' ' ' ' ' 'Pas de instellingen aan zoals je nodig hebt: ' 'Tip: If you configure the task exactly as above a command window like below will pop up, if you don't want this use the setting '000022373<\/STRONG> dat een verwijzing bevat naar een alternatieve planningstechnologie.<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>De nieuwe aanpak:<\/SPAN><\/STRONG><\/SPAN><\/P>Lees alstublieft het Pro 2.5 helponderwerp 'Schedule geoprocessing tools' voor details, ik zal hier alleen de gebruikersinterface-ervaring tonen. Beginnend met dezelfde 'Synchronize' ETL-tool als in de hierboven beschreven legacy-aanpak, maak ik een geplande tool aan via de Run-knop, hier is een schermafbeelding:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Selecteer 'Schedule' en je krijgt een configuratiedialoog:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Ik stel wekelijkse herhaling in zoals in het eerste voorbeeld; om de waarde van 'Begin On' te verfijnen, biedt het keuzemenu een handige datum-tijdkiezer:<\/SPAN><\/SPAN><\/P> < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > < IMG __jive_id = "478068 "class = " image -12 j-img-centered jive-image "src = "https : \/ \/ us.v-cdn.net \/6038851 \/uploads \/legacyfs \/online \/478068_pastedImage_16.png "style = " display : block ; margin-left : auto ; margin-right : auto ; " \/ > < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > < IMG __jive_id = "478067 "class = " image -11 j-img-centered jive-image "src = "https : \/ \/ us.v-cdn.net \/6038851 \/uploads \/legacyfs \/online \/478067_pastedImage_14.png "style = " display : block ; margin-left : auto ; margin-right : auto ; " \/ > < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > Ik ben klaar! Hoe makkelijk is dat! Afgezien van het voor de hand liggende gemak van het instellen van de automatisering, moet u opmerken dat de ETL-tool slechts een tool is, er zijn geen speciale overwegingen bij het omgaan met een ETL-tool versus een kern geoprocessing tool (of model). Waarschuwing, als u gelijktijdige licenties gebruikt en een Python script tool plant die extensies aanroept (bijvoorbeeld Data Interoperability), dan heeft uw code een CheckOutExtension() oproep nodig.Een fijn punt, vergeet niet om geschikte energiebeheerinstellingen te gebruiken (schijf uitschakelen, slaapstand, sluimerstand) voor uw plannings-pc, bespreek dit met uw IT-mensen als u twijfels heeft, bijvoorbeeld het is mogelijk dat netwerkbeheerders regels afdwingen voor sluimerstand die de zichtbare energie-instellingen overschrijven. <\ / SPAN> <\ / SPAN> <\ / P> < P style=\"-qt-block-indent:
We gaan ook de weg van taakplanning op, maar zonder Python nodig te hebben.<\/P>
<\/P>
In het moderne tijdperk ligt er veel nadruk op servicegerichte architectuur en heeft de ArcGIS stack uitgebreide publicatie- en synchronisatiemogelijkheden tussen apps, maar je leest dit omdat je buiten de stack werkt, tenminste aan één kant van je synchronisatieworkflow. Je hebt Data Interoperability's Workbench-app gebruikt om services, databases, bestanden enzovoort te beheren om je eigen privé batch 'service' te realiseren. Je hoeft niet de server te zijn en ook niet op 'Run' te klikken. Je vriend is deze kerel:<\/P>
C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe<\/STRONG><\/P><\/P>Dat klopt, een grote dikke uitvoerbare file. Dit is degene die al het werk doet wanneer een ETL-tool draait. Je hebt het misschien nooit gemerkt, maar wanneer je een ETL-tool uitvoert terwijl je in Workbench aan het bewerken bent, is de allereerste regel die verschijnt in het logvenster: Command-line om deze workspace uit te voeren: <\/STRONG><\/SPAN> gevolgd door het pad naar onze nieuwe vriend hierboven en het pad naar het geopende workbench .fmw-bestand, en eventuele argumenten die de workspace nodig heeft. Het staat er allemaal, dus laten we het samenvoegen.<\/SPAN><\/P><\/P>Laten we eerst wat juridische zaken afhandelen. Met ArcGIS Pro, Enterprise en OnLine leef je in een wereld van named user-licenties. Je ETL-tool kan deze referenties insluiten. Mits de geplande taak die je bouwt de ETL-tool automatiseert op de machine die je zou gebruiken om deze interactief uit te voeren, zouden er geen licentieproblemen moeten zijn. Als iemand anders het moet uitvoeren, moet die eerst de named user-referenties vervangen.<\/SPAN><\/P><\/P>Voor mijn voorbeeld ga ik een
De voorbeeld ETL-tool meldt dat de opdrachtregel die ik moet gebruiken om de workspace uit te voeren is:<\/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>Omdat ETL-tools hun parameterwaarden opslaan is het niet nodig om die argumenten mee te geven als ze niet veranderen, dus dit werkt ook:<\/SPAN><\/P><\/P>"C:\Program Files\ArcGIS\Data Interoperability for ArcGIS Pro\fme.exe" C:\Work\Synchronize\Synchronize.fmw<\/STRONG><\/SPAN><\/P><\/P>Nu maken we de geplande taak aan. Open Taakplanner en vul de dialoogvensters in voor een Basis Taak:<\/SPAN><\/P><\/P>
'
'Pas de instellingen aan zoals je nodig hebt:
'Tip: If you configure the task exactly as above a command window like below will pop up, if you don't want this use the setting '000022373<\/STRONG> dat een verwijzing bevat naar een alternatieve planningstechnologie.<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>De nieuwe aanpak:<\/SPAN><\/STRONG><\/SPAN><\/P>Lees alstublieft het Pro 2.5 helponderwerp 'Schedule geoprocessing tools' voor details, ik zal hier alleen de gebruikersinterface-ervaring tonen. Beginnend met dezelfde 'Synchronize' ETL-tool als in de hierboven beschreven legacy-aanpak, maak ik een geplande tool aan via de Run-knop, hier is een schermafbeelding:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Selecteer 'Schedule' en je krijgt een configuratiedialoog:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Ik stel wekelijkse herhaling in zoals in het eerste voorbeeld; om de waarde van 'Begin On' te verfijnen, biedt het keuzemenu een handige datum-tijdkiezer:<\/SPAN><\/SPAN><\/P> < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > < IMG __jive_id = "478068 "class = " image -12 j-img-centered jive-image "src = "https : \/ \/ us.v-cdn.net \/6038851 \/uploads \/legacyfs \/online \/478068_pastedImage_16.png "style = " display : block ; margin-left : auto ; margin-right : auto ; " \/ > < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > < IMG __jive_id = "478067 "class = " image -11 j-img-centered jive-image "src = "https : \/ \/ us.v-cdn.net \/6038851 \/uploads \/legacyfs \/online \/478067_pastedImage_14.png "style = " display : block ; margin-left : auto ; margin-right : auto ; " \/ > < \/ SPAN > < \/ SPAN > < \/ P > < P style = " - qt - block - indent : 0 ; text - indent : 0 px ; margin : 0 px ; " > < SPAN style = " color :#000000;background-color:#ffffff ; " > < SPAN class = " "data - aura - class = " uiOutputText "data - aura - rendered - by = "10988 : 0 " > Ik ben klaar! Hoe makkelijk is dat! Afgezien van het voor de hand liggende gemak van het instellen van de automatisering, moet u opmerken dat de ETL-tool slechts een tool is, er zijn geen speciale overwegingen bij het omgaan met een ETL-tool versus een kern geoprocessing tool (of model). Waarschuwing, als u gelijktijdige licenties gebruikt en een Python script tool plant die extensies aanroept (bijvoorbeeld Data Interoperability), dan heeft uw code een CheckOutExtension() oproep nodig.Een fijn punt, vergeet niet om geschikte energiebeheerinstellingen te gebruiken (schijf uitschakelen, slaapstand, sluimerstand) voor uw plannings-pc, bespreek dit met uw IT-mensen als u twijfels heeft, bijvoorbeeld het is mogelijk dat netwerkbeheerders regels afdwingen voor sluimerstand die de zichtbare energie-instellingen overschrijven. <\ / SPAN> <\ / SPAN> <\ / P> < P style=\"-qt-block-indent:
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.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.