<\/HEAD>
Esta postagem é sobre automatizar processos repetitivos de ETL diretamente do seu desktop. Sem código, sem servidor.<\/STRONG><\/P><\/P>Nota:<\/STRONG> Esta postagem originalmente discutia apenas uma forma de agendar o processamento ETL, mas com o lançamento do ArcGIS Pro 2.5<\/STRONG>, que será lançado em breve, o agendamento de tarefas está chegando ao geoprocessamento Desktop diretamente do botão Executar de qualquer ferramenta! Vou deixar os detalhes da abordagem 'legada' na postagem, mas leia até a abordagem 'nova' assim que puder implantar o Pro 2.5.<\/EM><\/P><\/P>A abordagem legada:<\/STRONG><\/P>Estamos vendo muitas pessoas usando Data Interoperability para sincronizar periodicamente conjuntos de dados entre sistemas de registro. Normalmente, o 'gatilho' para atualização dos dados fonte é acionado por um cronograma e não por algum evento aleatório, e a frequência das atualizações é baseada em múltiplos de um dia útil. Se você está nesse tipo de rotina, esta postagem é para você!<\/P><\/P>Você pode ter ouvido falar desse tipo de automação no contexto do Windows Task Scheduler com um script Python como tarefa e o script chamando uma ferramenta ou modelo de geoprocessamento.<\/A><\/P>Também estamos seguindo o caminho do agendamento de tarefas, mas sem precisar de Python.<\/P>
<\/P>
Na era moderna há muita ênfase na arquitetura orientada a serviços e a pilha ArcGIS tem capacidades abrangentes de publicação e sincronização entre apps, mas você está lendo isso porque está trabalhando fora da pilha, pelo menos em uma extremidade do seu fluxo de trabalho de sincronização. Você usou o aplicativo Workbench do Data Interoperability para manipular serviços, bancos de dados, arquivos e assim por diante para alcançar seu próprio 'serviço' batch privado. Você não precisa ser o servidor e clicar em 'Executar' também. Seu amigo é este aqui:<\/P>
<\/P>
C:\\Program Files\\ArcGIS\\Data Interoperability for ArcGIS Pro\\fme.exe<\/STRONG><\/P><\/P>Isso mesmo, um executável grande e robusto. Este é o que faz todo o trabalho quando uma ferramenta ETL é executada. Você pode nunca ter notado, mas quando você executa uma ferramenta ETL enquanto está editando no Workbench, a primeira linha que aparece na janela de log é: Linha de comando para executar este workspace: <\/STRONG><\/SPAN> seguida pelo caminho para nosso novo amigo acima e o caminho para o arquivo .fmw aberto no workbench, e quaisquer argumentos que o workspace precise. Está tudo lá, então vamos conectar isso.
<\/SPAN><\/P><\/P>Vamos dispensar algumas formalidades legais primeiro. Com ArcGIS Pro, Enterprise e OnLine você vive em um mundo de licenciamento por usuário nomeado. Sua ferramenta ETL pode incorporar essas credenciais. Desde que a tarefa agendada que você criar automatize a ferramenta ETL na máquina que você usaria para executá-la interativamente, não deve haver problemas de licenciamento. Se outra pessoa precisar executá-la, ela deve substituir as credenciais do usuário nomeado primeiro.<\/SPAN><\/P><\/P>Para meu exemplo vou reciclar um
exemplo de ferramenta ETL de uma postagem anterior<\/A>. Eu a uso para manter um serviço hospedado de feição usando dados coletados de uma instância Geoserver via uma API WFS estendida. Tem uma taxa oficial de atualização semanalmente, todo sábado no horário local; eu executo a ferramenta ETL quando lembro nas manhãs de segunda-feira (ei, é só uma demonstração). Vamos automatizar isso. Segundas-feiras estão se tornando problemáticas para mim, posso esquecer.
<\/SPAN><\/P><\/P>
A ferramenta ETL exemplo informa que a linha de comando que devo usar para executar o workspace é:<\/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 as ferramentas ETL armazenam seus valores de parâmetro não é necessário fornecer esses argumentos se eles não mudam, então isto também funciona:<\/SPAN><\/P><\/P>"C:\\Program Files\\ArcGIS\\Data Interoperability for ArcGIS Pro\\fme.exe" C:\\Work\\Synchronize\\Synchronize.fmw<\/STRONG>
<\/SPAN><\/P><\/P>Agora criamos a tarefa agendada. Abra o Agendador de Tarefas e preencha os diálogos para uma Tarefa Básica:
<\/SPAN><\/P><\/P>





Ajuste as configurações conforme necessário:

Dica: if você configurar a tarefa exatamente como acima, uma janela de comando como abaixo aparecerá. Se não quiser isso use a configuração 'Executar quer o usuário esteja conectado ou não'.

Enquanto me lembro, se estiver interessado em mais formas de processar ETL em lote
confira esta postagem.
< p > </ p > < p >< span >Agora faça sua parte e chegue atrasado nas segundas-feiras!< / span >< / p > < p > </ p > < p >< span >< strong >Nota:< / strong >& nbsp ; Recebemos relatos do campo que o Windows Task Scheduler pode ser impedido de funcionar por algumas configurações de segurança do sistema.& nbsp ; Se você encontrar isso e não conseguir contornar com seu departamento de TI, registre uma chamada de suporte com Esri e peça ao analista para consultar < strong >Analyst Artigo de Conhecimento <\/STRONG>
000022373<\/STRONG> que tem uma referência a uma tecnologia alternativa de agendamento.<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>A nova abordagem:<\/SPAN><\/STRONG><\/SPAN><\/P>Por favor, leia o tópico de ajuda do Pro 2.5 'Schedule geoprocessing tools' para detalhes, aqui vou mostrar apenas a experiência da interface do usuário. Começando com a mesma ferramenta ETL 'Synchronize' como na abordagem legada descrita acima, eu crio uma ferramenta agendada a partir do botão Run, aqui está uma captura de tela:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>
<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Selecione 'Schedule' e você obterá um diálogo de configuração:<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>
<\/SPAN><\/SPAN><\/P><\/SPAN><\/SPAN><\/P>Configurei a recorrência semanal como no primeiro exemplo; para refinar o valor 'Begin On' o menu suspenso fornece um prático seletor de data e hora:<\/SPAN><\/SPAN><\/P><\/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 = "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 " > Terminei! Quão fácil é isso! Além da óbvia facilidade de configurar a automação, você deve notar que a ferramenta ETL é apenas uma ferramenta, não há considerações especiais em lidar com uma ferramenta ETL versus uma ferramenta principal de geoprocessamento (ou modelo). Aviso, se você estiver usando licenciamento concorrente e agendando uma ferramenta de script Python que chama quaisquer extensões (Data Interoperability por exemplo) então seu código precisará de uma chamada CheckOutExtension().
Um ponto importante, não esqueça de usar configurações apropriadas de gerenciamento de energia (desligamento do disco, suspensão, hibernação) para seu PC de agendamento, converse sobre isso com sua equipe de TI se tiver dúvidas, por exemplo, é possível que administradores de rede imponham regras para hibernação que substituem as configurações visíveis de energia.
Agora vá em frente e automatize as coisas!