Geocodificação e processamento em larga escala no ESRI

9

Ok, acho que esse tipo de consulta / pesquisa informal sobre o tamanho dos conjuntos de dados que você está usando em seus mundos ESRI ...

Estou construindo e mantendo um conjunto de dados em todo o estado, onde tenho que processar até o nível da casa individual, não nível de pacote, mas vários endereços de correspondência por pacote para nossos sistemas. Em muitos lugares, estou usando endereços teóricos calculados a partir de redes de ruas ou dados USPS AMS / AIS. Portanto, minha lista de endereços é de aproximadamente 13,5 milhões de endereços e cresce mensalmente ou trimestralmente.

Há alguém por aí mantendo um sistema ativo de informações de endereço / pesquisa apropriadas que são grandes em um conjunto de dados contínuo?

Gostaria muito de colaborar ou falar mais sobre como outras pessoas estão lidando com um conjunto de dados tão grande. Estou vendo problemas em que o software ESRI parece estar explodindo quando tento executar tarefas como interseções ou junções espaciais. A ESRI diz que eles não veem esse tipo de problema, mas eu tenho esses problemas desde a versão 9.3.1, então não posso ser a primeira / única pessoa fazendo isso, pois posso recriá-lo em várias máquinas.

Minha plataforma agora é o ESRI ArcGIS 10 na área de trabalho, conversando com o ArcSDE 9.3.1-sp1 em um back-end SQL2008 usando o objeto espacial GEOMETRY. Então, eu não estou fazendo nada realmente exótico; mas ainda me parece que em algumas áreas talvez eu esteja empurrando o envelope.

[Mais distante]

O que eu estou interessado em saber é o que as outras pessoas estão fazendo para otimizar os processos para lidar com esses conjuntos de dados. Vou adicionar palavras-chave de um milhão de registros por mês daqui para frente e, embora a geocodificação etc. não seja um problema quando você começar a executar outros processos e vincular dados para análises adicionais, começará a lidar com junções complexas. Bem, você gera dados de Intersects / Overlays / Identities usando Only_FID e também obtém uma fina tabela intermediária; mas quando você começa a tentar dividir e conquistar a criação dessa tabela, começa a encontrar problemas em que precisa dividir os dados de origem em áreas de trabalho, mas depois repete o IDS que não pode ser recuperado; então você fica com blocos menores de dados que não podem ser facilmente inteiros novamente.

Pensando em opções que dividem os dados na escala Condado por Condado, usando visões espaciais para juntá-las, etc ... Apenas curioso para saber se outros usuários estão olhando para os mesmos tipos de problemas em uma escala tão grande, mas em pequenas pegadas.

D.E. direita
fonte
3
60 milhões de endereços geocodificados no Oracle Spatial (11g) ArcSDE e visualizados no ArcGIS e Web App (interno). Não é sobre o endereço geocodificado mas difusos (endereços mis-pareados), este é um bom guia scdhec.gov/gis/presentations/ESRI_Conference_08/tws/workshops/...
Mapperz
Eu concordo, o geocoding nunca foi o problema. Meu problema ocorre quando você tem um conjunto de dados tão grande que precisa ter um processo contínuo para que outros processos se tornem muito difíceis. Funções / tarefas como interseções, junções espaciais etc., em que é necessário ingressar em outros dados em um ambiente altamente normalizado para modelagem.
DEWright 27/05
Seus dados espaciais são indexados? De acordo com a documentação, o SQL Server usa índices B-Tree. Tente carregar os dados em um banco de dados PostGIS com índices GIST e compare o desempenho. Isso informará se é um problema do SQL Server.
27711 Sean
Não há problemas com esse tipo de coisa, mas o que eu vejo no geral é que, quando você está lidando com tantos pontos e executando funções profundas que duram tanto tempo, você procura maneiras de otimizá-las. E estou curioso para saber o que outros usuários de larga escala estão fazendo.
DEWright 27/05
Se a pergunta é aberta, ela deve reformular e criar um wiki da comunidade.
Sean

Respostas:

1

Como é uma pergunta aberta (antiga), darei uma resposta aberta: Usar o banco de dados corretamente pode economizar muito tempo. A maneira óbvia de fazer algo não é necessariamente a mais rápida, por exemplo, quando recentemente desejei excluir muitas linhas do Oracle, apenas o envio: delete from TABLE1 where ID = 123para cada recurso, era incrivelmente lento e há algumas coisas sofisticadas do Oracle que posso fazer para tornar as ordens de magnitude mais rápidas.

Então, basicamente, se você encontrar um problema específico que é um gargalo, faça uma pergunta específica relacionada a esse gargalo aos especialistas. Portanto, para o lado do ArcGIS que provavelmente estaria aqui (ou os fóruns da ESRI, ou o suporte da ESRI), mas para um problema do lado do banco de dados (e as coisas geralmente serão mais rápidas se você as fizer lá), você gostaria de perguntar em http : //www.stackoverflow.com

GIS-Jonathan
fonte
Nem tanto em aberto; mas procurando mais maneiras teóricas melhores para lidar com esse tópico. Meu caminho mais recente me levou a criar minha própria lógica de pesquisa difusa para conversar com meu próprio banco de dados SQL2008. Removendo a dependência do mecanismo ESRI para confiar em índices bem ajustados para tentar tornar isso mais rápido. Como não sabemos o suficiente sobre os componentes internos dos mecanismos do BING ou do Google, podemos apenas assumir que eles usariam sua própria lógica refinada.
DEWright
Você pode descobrir um pouco dos por trás das cenas do Google de seus trabalhos de pesquisa - research.google.com/pubs/papers.html
GIS-Jonathan