Geokodowanie i przetwarzanie na dużą skalę w ESRI

9

Ok, więc myślę, że tego rodzaju nieformalne zapytanie / ankieta na temat tego, jak duży zestaw danych używasz w swoich światach ESRI ...

Buduję i utrzymuję zestaw danych w całym stanie, w którym muszę przetwarzać dane na poziomie poszczególnych domów, a nie poziom paczki, ale wiele adresów pocztowych na paczkę dla naszych systemów. W wielu miejscach używam adresów teoretycznych obliczonych z sieci ulicznej lub danych USPS AMS / AIS. Tak więc moja lista adresów ma około 13,5 miliona adresów i rośnie miesięcznie lub kwartalnie.

Czy ktoś obecnie utrzymuje żywy system informacji o adresie / wyszukiwaniu, który jest tak duży w ciągłym zbiorze danych?

Bardzo chciałbym współpracować lub mówić więcej o tym, jak inni obsługują tak duży zestaw danych. Widzę problemy, gdy oprogramowanie ESRI wydaje się wysadzać, gdy próbuję wykonywać zadania, takie jak przecięcia lub łączenia przestrzenne. ESRI mówi, że nie widzą tego rodzaju problemów, ale miałem takie problemy od czasu powrotu do 9.3.1, więc nie mogę być pierwszą / jedyną osobą, która to robi, ponieważ mogę odtworzyć je na wielu komputerach.

Moja platforma to teraz ESRI ArcGIS 10 na pulpicie, rozmawiający z ArcSDE 9.3.1-sp1 na backendie SQL2008 za pomocą obiektu przestrzennego GEOMETRIA. Więc nie robię nic naprawdę egzotycznego; ale nadal wydaje mi się, że w niektórych obszarach może przesuwam kopertę.

[Dalej]

Interesuje mnie to, co robią inni ludzie, aby zoptymalizować tam procesy radzenia sobie z tymi zestawami danych. Zamierzam dodawać słowa miliona rekordów miesięcznie w przyszłości, a chociaż Geokodowanie itp. Nie stanowi problemu, gdy zaczynasz uruchamiać inne procesy i łączyć dane w celu dalszej analizy, zaczynasz radzić sobie ze złożonymi złączeniami. Cóż, wyprowadzasz dane z przecięć / nakładek / tożsamości za pomocą Only_FID i dostajesz cienką środkową tabelę do przyłączenia; ale kiedy zaczynasz próbować dzielić i podbijać tworzenie tej tabeli, zaczynasz napotykać problemy, w których musisz podzielić dane źródłowe na obszary robocze, ale potem powtarzasz IDS, którego nie możesz scalić; więc pozostały Ci mniejsze bloki danych, których nie możesz łatwo z powrotem połączyć.

Zastanawiając się nad opcjami dzielącymi dane do skali według hrabstwa, a następnie używając widoków przestrzennych, aby połączyć je z powrotem itp. Ciekawe, czy inni użytkownicy patrzą na takie same problemy na tak dużą skalę, ale na małą skalę ślady stóp.

rev D.E.Wright
źródło
3
60 milionów adresów geokodowanych w Oracle Spatial (11g) ArcSDE i wizualizowanych w ArcGIS i aplikacji internetowej (wewnętrzne). Nie chodzi o adres geokodowany, ale rozmyte (źle dopasowane adresy), to jest dobry przewodnik scdhec.gov/gis/presentations/ESRI_Conference_08/tws/workshop/…
Mapperz
Zgadzam się, geokodowanie nigdy nie było problemem. Mój problem pojawia się, gdy masz tak duży zestaw danych, że musisz mieć ciągły proces, aby inne procesy stały się bardzo trudne. Funkcje / zadania, takie jak przecięcia, połączenia przestrzenne itp., W których należy następnie dołączyć do innych danych w wysoce znormalizowanym środowisku do modelowania.
DEWright
Czy Twoje dane przestrzenne są indeksowane? Według dokumentacji SQL Server używa indeksów B-Tree. Spróbuj załadować dane do bazy danych PostGIS z indeksami GIST i porównaj wydajność. Dzięki temu dowiesz się, czy jest to problem z programem SQL Server.
Sean
Nie ma problemów z tego rodzaju rzeczami, ale ogólnie widzę, że kiedy masz do czynienia z tak wieloma punktami i wykonujesz głębokie funkcje, które działają tak długo, patrzysz na sposoby ich optymalizacji. Jestem ciekawy, co robią inni użytkownicy na dużą skalę.
DEWright
Jeśli pytanie jest takie otwarte, należy je przeformułować i utworzyć wiki społeczności.
Sean

Odpowiedzi:

1

Ponieważ jest to (stare) otwarte pytanie, dam ci otwartą odpowiedź: prawidłowe korzystanie z bazy danych może zaoszczędzić mnóstwo czasu. Oczywisty sposób na zrobienie czegoś niekoniecznie jest najszybszy, na przykład kiedy ostatnio chciałem usunąć wiele wierszy z Oracle, okazuje się, że samo wysyłanie: delete from TABLE1 where ID = 123dla każdej funkcji było niewiarygodnie wolne i że mogę zrobić kilka fantazyjnych rzeczy Oracle aby przyspieszyć o rząd wielkości .

Zasadniczo, jeśli znajdziesz konkretny problem, którym jest wąskie gardło, zadaj ekspertom konkretne pytanie dotyczące tego wąskiego gardła. Więc po stronie ArcGIS, która prawdopodobnie byłaby tutaj (lub fora ESRI lub wsparcie ESRI), ale w przypadku problemu po stronie bazy danych (i zwykle będzie szybciej, jeśli to zrobisz), chciałbyś zapytać na http : //www.stackoverflow.com

GIS-Jonathan
źródło
Nie tak bardzo otwarty koniec; ale szukam lepszych teoretycznych sposobów radzenia sobie z tym tematem. Moja ostatnia ścieżka zmusiła mnie do zbudowania własnej logiki wyszukiwania rozmytego do rozmowy z moją bazą danych SQL2008. Usunięcie zależności od silnika ESRI w celu polegania na dobrze dostrojonych indeksach w celu przyspieszenia tego procesu. Ponieważ nie wiemy wystarczająco dużo o wewnętrznych elementach silników BING lub Google, możemy jedynie założyć, że zastosowaliby tam własną logikę.
DEWright
Możesz dowiedzieć się sporo zza kulis Google z ich prac badawczych
GIS-Jonathan