Frequentemente, ETL não é uma ação única, a recorrência é necessária para incorporar a mudança de dados ao longo do tempo. Até os lançamentos do ArcGIS Pro 3.4 e ArcGIS Enterprise 11.4, os padrões de automação suportados para isso incluíam ArcGIS Data Pipelines e Notebooks agendados ou ferramentas usando o agendador de tarefas da REST API, mas uma nova opção sem código, agendamento de ferramenta web, foi entregue no ArcGIS Pro 3.4 e ArcGIS Enterprise 11.4!
Você pode usar qualquer tipo de ferramenta de geoprocessamento para criar sua ferramenta web agendada - ferramenta do sistema principal, ferramenta ModelBuilder, ferramenta script Python ou ferramenta Spatial ETL. Para o tema do meu blog estou usando uma ferramenta Spatial ETL do ArcGIS Data Interoperability, porque ela pode consumir meus dados fonte, um feed RSS, especificamente um feed Common Alerting Protocol (CAP), conforme publicado por muitas agências mundialmente, incluindo a FEMA nos EUA. Meus dados CAP são alertas meteorológicos na Nova Zelândia, atualizados duas vezes ao dia. O feed não terá entradas se o tempo estiver bom 😉. CAP é baseado em XML, facilmente manipulado pelo ArcGIS Data Interoperability. Quero espelhar o status do feed CAP para uma camada de feição hospedada no ArcGIS Online.
Abaixo está um mapa de status de alerta exemplo no ArcGIS Pro, para 9 de outubro de 2024. O download do blog contém alguns documentos XML de alerta CAP, se você quiser ver alguns dados brutos.
Alertas Meteorológicos CAP
Como a rotulagem sugere, a feição amarela é um aviso de vento forte, as linhas azuis (ao aproximar, polígonos laranja) são avisos de neve para estradas através de alguns passes montanhosos. Se ampliarmos para a feição mais ao norte podemos inspecioná-la. É Lewis Pass, que tem dois resorts termais geotermais ao longo da rota, então se você for atrasado pela neve pode esperar com conforto!
Alerta de neve através do Lewis Pass
Alguns dias depois, há um aviso de chuva forte:
Aviso de chuva em Fiordland
Para a área, a chuva só vem em um tipo - forte - então não é surpresa que a previsão de um upgrade do alerta de aviso para alerta (laranja) tenha se tornado verdade na próxima atualização em 12 horas, além de alguns novos alertas terem chegado:
Chuva na Costa Oeste
E no dia seguinte - ainda mais tempo!
Ainda mais tempo!
Atualizações regulares como esta são um caso clássico para uma ferramenta web agendada, na verdade foi assim que os dados foram atualizados para mim durante a noite. Como é esse ETL?
Meu fluxo de dados mantém uma camada de feição hospedada no ArcGIS Online a partir do status atual do CAP. Minha ferramenta ETL é bastante simples, aqui está ela (também no download do blog, requer ArcGIS Data Interoperability para Pro 3.4 e ArcGIS Enterprise 11.4 se compartilhada como ferramenta web).
Ferramenta ETL de alerta CAP
Primeiro um token é gerado (usando um EsriOnlineTokengetter, para um portal local você usaria um EsriPortalTokenGetter), então o fluxo superior lê o feed RSS e escreve uma transação upsert na camada de feição alvo - quaisquer novos alertas tornam-se novas feições e quaisquer mudanças nos dados das feições existentes são aplicadas. O suporte a upsert requer que os dados tenham um campo único indexado e não nulo na camada, como discutido em um blog anterior. O fluxo inferior testa por alertas expirados e os exclui. Note que a ferramenta ETL não tem parâmetros, porque o feed RSS de entrada e a camada de feição de saída não mudam então podem ser configurados como não publicados na hora da autoria.
Estou mostrando aqui um novo, recomendado padrão ETL para manutenção de camadas de feição hospedadas, nomeadamente gerar um token portal dentro da ferramenta ETL ao invés de compartilhar conexões web com o servidor host, que é uma etapa complicada que podemos evitar. O serviço de feição alvo é lido e escrito usando o formato Esri ArcGIS Server Feature Service e um token fornecido, com a opção para verificar certificados SSL desmarcada. Se seus requisitos de segurança exigirem isso, você precisará fornecer um certificado confiável.
Tendo executado minha ferramenta ETL localmente no ArcGIS Pro posso compartilhar o resultado histórico como uma ferramenta web e agendá-la. Há algum cálculo mental a fazer ao agendar. O feed CAP é atualizado às 9h e 21h "hora local", que ao escrever está em NZDT, ou UTC+13. Minha máquina Pro está atualmente em PDT, que é UTC-7, então para iniciar meu agendamento na próxima janela disponível a cada 12 horas, 9h NZDT, calculo que isso seja 20h UTC ou 13h PDT.
Agendamento da ferramenta web
No mundo real, os escritórios meteorológicos permitem boletins mais frequentes do que meu agendamento acima, mas você entendeu a ideia. No link da ferramenta web agendada você pode pausar, excluir ou editar o agendamento.
O download do blog tem o arquivo fonte fmw da ferramenta, alguns arquivos XML CAP exemplo (que usei ao criar a ferramenta ETL para acertar o parsing XML), e um arquivo lyrx que mostra como usei renderização orientada por dados dos códigos hexadecimais nos dados. Não mostrado - criação inicial da classe de feição em file geodatabase usada para instanciar o serviço de feição alvo, mas você pode facilmente fazer isso a partir do workspace fornecido. Não esqueça as restrições do identificador do alerta necessárias para suporte ao upsert!
Então aí está, configurando uma ferramenta web agendada que irá execute indefinidamente e mantenha uma camada de recurso hospedada!<\/STRONG><\/P>\nAgora nada impede você de automatizar seu ETL!<\/STRONG><\/P>\n <\/P>