Se você está compartilhando serviços de feição hospedados, opcionalmente com serviços filhos como Map Tile, WFS e OGC, e seus dados de origem mudam regularmente, você vai querer automatizar a atualização dos dados do serviço sem quebrar o identificador do item ou elementos de metadados para que os mapas e aplicativos dos seus clientes continuem funcionando. Este blog mostra como - usando ArcGIS Data Interoperability.<\/P>
Primeiro, o mapa obrigatório da nossa área de estudo e dados, endereços de rua na Noruega<\/A>:<\/P>Endereços em Oslo<\/span><\/span><\/P>Só para ficar claro, vou reafirmar o cenário.<\/P>Você está compartilhando um serviço de feição hospedado que pode ser grande<\/LI>Você pode estar compartilhando serviços publicados a partir do serviço de feição hospedado<\/LI>Os dados de origem podem não ser gerenciados no ArcGIS<\/LI>Os dados de origem mudam regularmente e você quer aplicar as mudanças ao(s) serviço(s)<\/LI>Você não quer que os identificadores de item do Portal ou Online mudem quando atualizar os dados<\/LI>Você quer automatizar essa manutenção com tempo mínimo de inatividade<\/LI>Você não quer escrever nenhum código<\/LI><\/UL>É bem compreendido que o Data Interoperability pode detectar mudanças no conjunto de dados e aplicá-las a uma cópia publicada dos dados. Isso funciona bem e permite zero tempo de inatividade se você escrever as mudanças incrementalmente para um serviço de feição. No entanto, quando você está lidando com milhões de feições isso pode ser demorado, tanto para ler os conjuntos de dados original e revisado quanto para escrever as transações de mudança. Também há risco de encontrar problemas de rede durante transações muito longas.<\/P>Precisamos de uma opção que apenas substitua os dados do serviço de forma eficiente e rápida. Isso pode ser feito mantendo uma cópia em file geodatabase dos dados de origem no seu Portal ou Online e substituindo os dados do serviço usando um fluxo de trabalho truncate<\/A> e append <\/A>.<\/P>Aqui está a ferramenta Data Interoperability que mostra o padrão.<\/P>Workbench<\/span><\/span><\/P>A marcação azul é qualquer ETL que você precise para deixar seus dados na forma final, no meu caso estou baixando alguns dados, fazendo alguma deduplicação e fazendo alguns ajustes nos campos.<\/P>A marcação verde clara é onde eu escrevo os dados para um file geodatabase compactado e sobrescrevo um item file geodatabase no Online. A marcação bege é onde eu trunco minha camada de feição alvo.<\/P>A marcação verde mais brilhante é o passo final onde eu chamo a função append que lê do item file geodatabase e escreve na camada de feição alvo.<\/P>Tudo muito simples, não é!<\/P>Para aproximadamente 2,7M feições de endereços de rua e da minha rede doméstica o trabalho todo, incluindo esperar a operação append assíncrona completar, leva cerca de uma hora.<\/P>Mas espere, tem mais! Eu publiquei serviços Map Tile, WFS e OGC a partir do meu serviço de feição alvo, aqui está tudo na minha pasta do projeto Online:<\/P>Serviços<\/span><\/span><\/P> <\/P>Os caches para cada serviço filho levam alguns minutos extras para atualizar mas o processo é automático (serviços Vector Tile precisam de reconstrução manual do cache na página de configurações do item).<\/P>Se eu estivesse fazendo isso para um ambiente de produção eu moveria o processamento para um servidor Enterprise como este blog anterior<\/A> descreve e agendaria a tarefa para rodar durante a noite em um intervalo apropriado.<\/P>Aí está, atualização em massa automatizada e eficiente dos serviços de feição hospedados e seus produtos derivados. A ferramenta que estou descrevendo está no download do blog, divirta-se!<\/P>Nota para usuários Enterprise:<\/STRONG> Atualmente ArcGIS Enterprise não suporta file geodatabase (filegdb) como formato append, você deve usar shapefile (ou Excel ou CSV se estiver trabalhando com tabelas). Para anexar shapefiles provavelmente será necessário especificar um dicionário fieldMappings no parâmetro layerMappings para mapear os nomes dos campos no seu shapefile para o serviço de feição alvo.<\/P>
Endereços em Oslo<\/span><\/span><\/P>Só para ficar claro, vou reafirmar o cenário.<\/P>Você está compartilhando um serviço de feição hospedado que pode ser grande<\/LI>Você pode estar compartilhando serviços publicados a partir do serviço de feição hospedado<\/LI>Os dados de origem podem não ser gerenciados no ArcGIS<\/LI>Os dados de origem mudam regularmente e você quer aplicar as mudanças ao(s) serviço(s)<\/LI>Você não quer que os identificadores de item do Portal ou Online mudem quando atualizar os dados<\/LI>Você quer automatizar essa manutenção com tempo mínimo de inatividade<\/LI>Você não quer escrever nenhum código<\/LI><\/UL>É bem compreendido que o Data Interoperability pode detectar mudanças no conjunto de dados e aplicá-las a uma cópia publicada dos dados. Isso funciona bem e permite zero tempo de inatividade se você escrever as mudanças incrementalmente para um serviço de feição. No entanto, quando você está lidando com milhões de feições isso pode ser demorado, tanto para ler os conjuntos de dados original e revisado quanto para escrever as transações de mudança. Também há risco de encontrar problemas de rede durante transações muito longas.<\/P>Precisamos de uma opção que apenas substitua os dados do serviço de forma eficiente e rápida. Isso pode ser feito mantendo uma cópia em file geodatabase dos dados de origem no seu Portal ou Online e substituindo os dados do serviço usando um fluxo de trabalho
Aqui está a ferramenta Data Interoperability que mostra o padrão.<\/P>
Workbench<\/span><\/span><\/P>A marcação azul é qualquer ETL que você precise para deixar seus dados na forma final, no meu caso estou baixando alguns dados, fazendo alguma deduplicação e fazendo alguns ajustes nos campos.<\/P>A marcação verde clara é onde eu escrevo os dados para um file geodatabase compactado e sobrescrevo um item file geodatabase no Online. A marcação bege é onde eu trunco minha camada de feição alvo.<\/P>A marcação verde mais brilhante é o passo final onde eu chamo a função append que lê do item file geodatabase e escreve na camada de feição alvo.<\/P>Tudo muito simples, não é!<\/P>Para aproximadamente 2,7M feições de endereços de rua e da minha rede doméstica o trabalho todo, incluindo esperar a operação append assíncrona completar, leva cerca de uma hora.<\/P>Mas espere, tem mais! Eu publiquei serviços Map Tile, WFS e OGC a partir do meu serviço de feição alvo, aqui está tudo na minha pasta do projeto Online:<\/P>Serviços<\/span><\/span><\/P> <\/P>Os caches para cada serviço filho levam alguns minutos extras para atualizar mas o processo é automático (serviços Vector Tile precisam de reconstrução manual do cache na página de configurações do item).<\/P>Se eu estivesse fazendo isso para um ambiente de produção eu moveria o processamento para um servidor Enterprise como
Aí está, atualização em massa automatizada e eficiente dos serviços de feição hospedados e seus produtos derivados. A ferramenta que estou descrevendo está no download do blog, divirta-se!<\/P>
Nota para usuários Enterprise:<\/STRONG> Atualmente ArcGIS Enterprise não suporta file geodatabase (filegdb) como formato append, você deve usar shapefile (ou Excel ou CSV se estiver trabalhando com tabelas). Para anexar shapefiles provavelmente será necessário especificar um dicionário fieldMappings no parâmetro layerMappings para mapear os nomes dos campos no seu shapefile para o serviço de feição alvo.<\/P>
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.