sql >> Database >  >> NoSQL >> MongoDB

Realtime statistieken:MySQL(/Drizzle) of MongoDB?

Dus BuddyMedia gebruikt hier iets van. De Gilt Groupe heeft iets heel gaafs gedaan met Hummingbird (node.js + MongoDB).

Ik heb voor een grote online adverteerder op het gebied van sociale media gewerkt en kan bevestigen dat realtime rapportage echt lastig is. Het is al een uitdaging om 500 miljoen vertoningen per dag te 'oprollen', maar het in realtime proberen te doen werkte, maar er waren enkele belangrijke beperkingen. (alsof het eigenlijk 5 minuten vertraagd was :)

Eerlijk gezegd is dit soort problemen een van de redenen waarom ik MongoDB ben gaan gebruiken. En ik ben niet de enige. Mensen gebruiken MongoDB voor allerlei realtime analyses:servermonitoring , gecentraliseerde logboekregistratie , evenals dashboardrapportage.

De echte sleutel bij het doen van dit type rapportage is om te begrijpen dat de gegevensstructuur compleet anders is met MongoDB, je gaat "aggregatie" -query's vermijden, dus de query's en de uitvoergrafieken zullen anders zijn. Er is wat extra codeerwerk aan de kant van de klant.

Hier is de sleutel die u in de goede richting kan wijzen om dit met MongoDB te doen. Bekijk de volgende gegevensstructuur:

{
  date: "20110430",
  gender: "M",
  age: 1, // 1 is probably a bucket
  impression_hour: [ 100, 50, ...], // 24 of these
  impression_minute: [ 2, 5, 19, 8, ... ], // 1440 of these
  clicks_hour: [ 10, 2, ... ],
  ...
}

Er zijn hier duidelijk enkele tweaks, geschikte indexen, misschien gegevens+geslacht+leeftijd in een _id . Maar dat is een beetje de basisstructuur van klikanalyse met MongoDB. Het is heel eenvoudig om vertoningen en klikken bij te werken { $inc : { clicks_hour.0 : 1 } } . Je mag het hele document atomair bijwerken. En het is eigenlijk heel natuurlijk om erover te rapporteren. U heeft al een array met uw gegevenspunten op uur- of minuutniveau.

Hopelijk wijst dat je in de goede richting.



  1. Foutmelding in mongodb-castprobleem voor geldige object-ID

  2. Groeperen op som mongodb

  3. Spring Data Mongo - Hoe overgeërfde POJO-entiteiten in kaart te brengen?

  4. Zoekopdrachten in MongoDB