Mam więc problem z klastrowaniem danych na żywo i ciągłego przesyłania strumieniowego. Ponieważ mam stale rosnący zestaw danych, nie jestem pewien, jaki jest najlepszy sposób na wydajne i wydajne tworzenie klastrów. Wymyśliłem kilka możliwych rozwiązań, w tym:
Ustawienie limitu liczby punktów danych, które mają być dozwolone, a więc za każdym razem, gdy limit zostanie osiągnięty, gdy inny punkt danych pojawi się w najstarszym punkcie, zostanie usunięty. Zasadniczo sugerowałoby to, że starsze dane nie są już dla nas wystarczająco istotne, aby przejmować się tym, co tracimy, wyrzucając je.
Gdy będzie wystarczająca ilość danych, aby stworzyć dobre klastrowanie, rozważ tę „konfigurację”, a gdy pojawią się nowe punkty, zamiast ponownie grupować wszystkie dane, po prostu dowiedz się, które centrum klastrów jest najbliżej, i dodaj je do tego. Korzyścią jest to, że możesz uniknąć konieczności ponownego klastrowania w każdym nowym punkcie i nie musisz przechowywać wszystkich innych punktów, tylko centra klastrów, biorąc pod uwagę to, że grupowanie jest „wystarczająco dobre”. Minusem jest to, że ponowne uruchomienie algorytmu ze wszystkimi punktami danych od początku może być dokładniejsze.
Chociaż są to niektóre potencjalne rozwiązania, które zaatakowałem, chciałbym wiedzieć, czy istnieją jakieś bardziej znane techniki rozwiązania tego problemu. Sądzę, że strony takie jak Google musiały sobie z tym jakoś poradzić (i mam nadzieję, że „dodaj więcej pamięci RAM, serwerów i procesorów” lub „stale powiększaj swoje centra danych” nie są jedynymi dostępnymi odpowiedziami).