sql >> Database teknologi >  >> NoSQL >> MongoDB

Statistik i realtid:MySQL(/Drizzle) eller MongoDB?

Så BuddyMedia bruger noget af dette. The Gilt Groupe har gjort noget ret fedt med Hummingbird (node.js + MongoDB).

Efter at have arbejdet for en stor online annoncør på sociale medier, kan jeg bekræfte, at rapportering i realtid virkelig er en smerte. At prøve at "rulle op" 500 millioner visninger om dagen er allerede en udfordring, men at prøve at gøre det i realtid virkede, men det havde nogle væsentlige begrænsninger. (som om den faktisk blev forsinket med 5 minutter :)

Helt ærligt er denne type problemer en af ​​grundene til, at jeg begyndte at bruge MongoDB. Og jeg er ikke den eneste. Folk bruger MongoDB til alle former for realtidsanalyse:serverovervågning , centraliseret logning , samt dashboard-rapportering.

Den virkelige nøgle, når du laver denne type rapportering, er at forstå, at datastrukturen er helt anderledes med MongoDB, du kommer til at undgå "aggregering" forespørgsler, så forespørgslerne og outputdiagrammerne vil være anderledes. Der er noget ekstra kodningsarbejde på klientsiden.

Her er nøglen, der kan pege dig i den rigtige retning for at gøre dette med MongoDB. Tag et kig på følgende datastruktur:

{ 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, ... ], ... }

Der er åbenbart nogle justeringer her, passende indekser, måske at samle data+køn+alder ind i en _id . Men det er en slags grundlæggende struktur for klikanalyse med MongoDB. Det er virkelig nemt at opdatere visning og klik { $inc : { clicks_hour.0 : 1 } } . Du får opdateret hele dokumentet atomært. Og det er faktisk ret naturligt at berette om. Du har allerede et array, der indeholder dine datapunkter på time- eller minutniveau.

Forhåbentlig peger det dig i den rigtige retning.



  1. begrænse til at gemme duplikerede værdier i mongodb

  2. Hvordan ser man repository-implementeringen genereret af Spring Data MongoDB?

  3. hvordan man henter 10 minutter før oprettede poster i mongodb

  4. Hvorfor kan jeg ikke finde en post af _id i mongodb