MySQL fazer update com histórico

Tenho um jar que fica enviando informações como “uso da cpu, uso do hd, ip” e afins em tempo real para meu servidor em NODE. Ele popula uma tabela, o problema é que muitos pcs executarão esse jar. Como posso fazer para que o MySQL identifique cada conexão com um ID, e caso tiver o mesmo ID, ele atualize apenas aquela entrada na tabela? Assim terei um banco de dados que atualiza em tempo real, e futuramente farei um dashboard e tal

Sobre o histórico: Acho que devo fazer outra tabela que fique registrando todas as entradas né?

Stored procedures podem resolver.
Eu penso que, se você está logando informações, o ideal seria registrar tudo, numa tabela mais ou menos assim

ID | DataHora | TipoEvento | DescricaoEvento

Onde cada coluna é auto explicativa.

Darlan, no caso o que a tabela recebe é um JSON. Acho que seria

ID | DataHora | Json

Meu problema é: como fazer com que, por exemplo, o Computador 1 tenha sempre o ID 1, o Computador 2 o ID 2 e assim por diante, já que ele ficara atualizando em tempo real todas as informações

Você vai precisar determinar um id para cada equipamento, seja ip, mac address, o que seja.
O custo é o mesmo ou até menor que você, a cada novo registro, ler os dados, alterar o json e regravar, fazendo update.

Acho que posso colocar o ID como o IP dele, e assim toda vez que o ID for igual, ele faz o update daquela entrada. É isso?

Cara, se os ips são fixos, sim.
Porém, não seria interessante isolar as informações do equipamento em outra tabela e criar uma tabela só de eventos, onde cada evento está associado a um único equipamento e cada equipamento tem N eventos?

Tabela equipamento
ID | IP | Descricao | Blablablabla

Tabela eventos
ID | DataHora | Id_Equipamento | JSON

Pois isso vai impedir que você tenha um JSON enorme.
Lógico, isso depende de N fatores, incluindo, quanto tempo de registro você deseja ter armazenado num JSON e outros detalhes da tua implementação.

MongoDB não é opção?

Então, to aprendendo mais sobre banco de dados agora. Se você acha o MongoDB uma boa opção, vou dar uma estudada sobre ele e tudo mais. Esse BD vai enviar, posteriormente, as informações para um dashboard/app. Eu diria que o mais importante são os picos, por exemplo:
"Domingo passado, X máquina bateu 90% de processamento no momento blablaba"
Ele é realmente para monitoramento desses picos, se a máquina ta on e tal, apenas

E agora que você me lembrou bem, os ips não são fixos.

Então, dê uma olhada em mongodb e veja sobre modelagem NoSQL, afinal, muda muito, tanto conceitos como aplicação deles, quando falamos de bancos de dados orientados a documentos, como é o caso do mongo.
Se decidir optar pelo MySQL mesmo, sugiro que você siga o modelo que mais te agrada

Ao seu ver, cada equipamento teria uma tabela? Acho que não né

Não, você teria uma tabela que represente todos os equipamentos, cada qual teria seu ID (pdoe ser o ip ou mac) e outra para eventos de log.
Apenas isso. Duas tabelas.

1 curtida

Beleza Darlan! Vou dar uma estudada sobre todos os modelos e ver sobre o MongoDB. Já ouvi muito falar sobre ele mas nunca fui atrás, mas parece que ele vem agradando mta gente

Duas coisas me fazem sugerir mongo: o uso de json e você estar rodando um server com node.