2012-09-01 2 views
0

Je dois concevoir un système de statistiques en temps réel pour un projet de publicité en ligne. Je devrais stocker des compteurs pour le nombre d'impressions d'une URL, le nombre de clics, le nombre de mots clés affichés par impression, etc. La quantité de trafic peut être estimée à environ 15 000 impressions par seconde, mais doit être supérieure à 100 000 impressions par seconde. Les opérations de base de données sont évidemment très intensives en écriture, nécessitant des écritures rapides et simultanées. Quel type de base de données dois-je utiliser et comment procéder pour concevoir l'architecture de la base de données? Je suis une vraie recrue dans ce domaine et je ne sais pas vraiment comment procéder. Je n'ai pas trop d'expérience avec les bases de données NoSQL, et je ne suis pas sûr si des opérations de cette envergure peuvent être réalisées avec une base de données relationnelle comme MySQL ou MS SQL Server.Quels grands concepts sont impliqués lors de la conception d'un système de statistiques en temps réel?

Toute aide sera grandement appréciée!

Merci.

+0

Je n'ai pas encore essayé d'implémenter quelque chose, je suis juste en train de concevoir le système. Mon problème est, comme je n'ai pas travaillé avec quelque chose de cette échelle, je suis incapable de continuer. Je n'ai jamais travaillé avec des bases de données distribuées etc. C'est pourquoi ma question est plus en termes de concepts généraux qui seront impliqués dans la conception d'un tel système, de sorte que je peux lire sur eux. Je n'ai pas besoin d'une réponse directe. – amaron

Répondre

0

Quelle sorte de base de données dois-je utiliser

En moyenne sur 4 ans PC de bureau fonctionnant sous Windows, ESENT NoSQL est capable of 70k inserts/second (pour les petits dossiers). Et ça va sûrement bien de faire des écritures rapides et simultanées. Il a même la fonction "colonne de mise à jour d'entiercement" qui vous permet de mettre à jour les valeurs de colonne int32 sans verrouiller un enregistrement, c'est-à-dire simultanément.

L'architecture DB dépend uniquement des données exactes que vous allez collecter.

P.S. Votre tâche me semble difficile. Un problème est l'évolutivité: il vaut mieux décider tôt si vous allez évoluer horizontalement, c'est-à-dire en ajoutant des serveurs. Si oui, cela affectera beaucoup l'architecture. Aussi, comment allez-vous obtenir que quantité de données? Un serveur Web n'est pas capable de traiter 100 000 requêtes par seconde.

Questions connexes