Portanto, tenho um problema que estou enfrentando em relação ao cluster com dados ao vivo e continuamente em fluxo contínuo. Como tenho um conjunto de dados sempre crescente, não tenho certeza de qual é a melhor maneira de executar um cluster eficiente e eficaz. Eu vim com algumas soluções possíveis, incluindo:
A definição de um limite de quantos pontos de dados é permitido, portanto, sempre que o limite for atingido quando outro ponto de dados chegar, o ponto mais antigo será removido. Essencialmente, isso sugere que os dados mais antigos não são mais relevantes o suficiente para que possamos cuidar do que estamos perdendo ao jogá-los fora.
Quando houver dados suficientes para criar um bom cluster, considere isso "a configuração" e, à medida que novos pontos chegarem, em vez de agrupar novamente todos os dados, basta descobrir em qual centro de cluster o novo ponto está mais próximo e adicioná-lo a ele. O benefício aqui é que você pode evitar ter que se agrupar novamente em cada novo ponto e não precisará armazenar todos os outros pontos, apenas os centros de cluster, considerando esse cluster "bom o suficiente". A desvantagem é que reexecutar o algoritmo com todos os pontos de dados desde o início pode ser mais preciso.
Embora essas sejam algumas soluções potenciais que invadi o cérebro, gostaria de saber se existem técnicas mais conhecidas para enfrentar esse problema. Eu acho que sites como o Google tiveram que lidar com isso de alguma forma (e espero que "adicione mais memória ram, servidores e processadores" ou "expanda continuamente seus data centers" não sejam as únicas respostas disponíveis).
fonte