Eu preciso criar uma solução altamente escalável - onde os dispositivos de campo em milhares de sites estão fornecendo dados em tempo real para um sistema de back-end, e o SQL Azure parece se encaixar perfeitamente em termos de adição de bancos de dados SQL e servidores de aplicativos.
Cada dispositivo de campo está efetivamente enviando 400 valores de sensor a cada segundo - por cerca de duas horas por dia, e esses 400 valores de sensor a cada 5 minutos para todas as outras vezes para sempre. Além disso, quando ocorre um erro neste dispositivo de campo, ele também envia os dados de última hora para todos os 400 sensores (400 * 60 leituras) - causando uma inundação em massa de dados quando algo dá errado.
Eu realmente quero projetar o sistema de forma que os dispositivos de campo independentes e os dados que eles armazenam não possam afetar outros dispositivos. Permitir que cada dispositivo de campo não afete o desempenho de outros dispositivos de campo.
Comecei o projeto pensando em um único banco de dados contendo todos os dados do dispositivo - mas comecei a obter impasses ao simular vários dispositivos do site. Portanto, estou no processo de mudança para uma solução de vários bancos de dados. Onde um banco de dados mestre contém uma tabela de pesquisa para todos os dispositivos - retornando uma string de conexão para o banco de dados real
Nesta fase do projeto, é mais importante que eu seja capaz de passar esses dados de volta para interfaces de usuário em execução em navegadores da web em tempo real - atualizando suas telas a cada segundo.
Em estágios futuros do projeto, será necessário começar a agregar dados em vários dispositivos mostrando estatísticas como a soma do sensor X na região Y. Posso ver que isso será difícil de fazer com a abordagem de vários bancos de dados.
Então, valeria qualquer conselho, por exemplo
Você acha sensato usar Sql Azure para hospedar potencialmente 1000 bancos de dados e usar esse banco de dados mestre para apontar indiretamente para os reais?
Terei problemas com as conexões com os bancos de dados dos aplicativos - com problemas com o pool de conexões, por exemplo?
Como poderei agregar dados de todos esses diferentes bancos de dados no Sql Azure.
Estaria interessado em todos os seus comentários. Atenciosamente, Cris.