Mam kolekcję ze 100 milionami dokumentów geometrii.MongoDB i używanie DBRef z danymi przestrzennymi
Mam drugą kolekcję z danymi czasowymi związanymi z każdą inną geometrią. To będzie 365 * 96 * 100 milionów lub 3,5 tryliona dokumentów.
Zamiast przechowywać 100 milionów wpisów (365 * 96) razy więcej niż potrzeba, chcę zachować je w osobnych kolekcjach i wykonać typ JOIN/DBRef/Cokolwiek mogę w MongoDB.
Przede wszystkim chcę uzyskać listę GUID z kolekcji geometrii za pomocą geointerpozycji. Spowoduje to odfiltrowanie go do wartości 100 milionów do 5000. Następnie za pomocą tych 5000 przewodników geometrii chcę odfiltrować 3,5 tryliona dokumentów w oparciu o 5000 goemetrii i dodatkowe kryteria dat, które określam i agreguję dane i znajduję średnią. Zostało ci 5000 geometrii i 5000 średnich dla określonych przez ciebie kryteriów daty.
Jest to zasadniczo JOIN, jak wiem to w SQL, jest to możliwe w MongoDB i można to zrobić optymalnie, powiedzmy, mniej niż 10 sekund.
Wyjaśnienie: jak rozumiem, do tego właśnie służy DBrefs, ale czytałem, że nie jest ono w ogóle skuteczne, a przy zajmowaniu się tak dużą ilością danych nie byłoby to odpowiednie.
DBRefs są zasadniczo przestarzałe - nie jest dobrym pomysłem robienie połączeń w aplikacji, co właśnie tutaj robisz. Jak duże są te geometrie? –
Geometria ma około 100 bajtów na sekundę, więc nie można ich zreplikować w sposób znormalizowany. Łącznie kolekcja geometrii ma tylko 10 GB, więc bez łączenia konieczne będzie dodatkowe 350 400 GB. – ParoX