public void GenerateData()
{
Random rnd1 = new Random();
Random rnd2 = new Random();
Random rnd3 = new Random();
int UserRecords = 0;
for (int x = 1; x <= MAX_RECORDS; x++){
int DayRecords = 0;
int EventRecords = 0;
String UserKeyString = "User-" + x;
Key UserKey = new Key ("test", "user-events", UserKeyString);
client.Put(null, UserKey, new Bin("user-id", UserKeyString));
int NoOfEvents = 0; // number of events per day
int DayPercent = 0;
if (x % 893 == 0) { // ocasionally write a large number of events per day
NoOfEvents = rnd2.Next(500, BIG_EVENTS);
DayPercent = rnd1.Next(80, 100);
} else {
NoOfEvents = rnd3.Next(1, SMALL_EVENTS);
DayPercent = rnd1.Next(1, 100);
}
int inc = Math.Max(MAX_DAYS / (100 - DayPercent), 1); // calculate how many days to write events
for (int y = 1; y <= MAX_DAYS; y += inc) {
DateTime EventDay = epoch.Subtract(TimeSpan.FromDays(y));
String DateString = EventDay.ToString ("yyyy-MM-dd");
String EventKeyString = UserKeyString + ":" + DateString + ":" + 1;
Key EventKey = new Key ("test", "user-events", EventKeyString);
Bin User = new Bin ("user-id", UserKeyString);
Bin Day = new Bin("day", DateString);
Bin Sequence = new Bin("sequence", 1);
List<string> EventList = new List<string> ();
for (int z = 1; z <= NoOfEvents; z++) {
EventList.Add (z + ":" + EVENT_STRING);
}
Bin recordCount = new Bin ("total-records", NoOfEvents);
Bin Events = new Bin("events", EventList);
client.Put (null, EventKey, User, Day, Sequence, recordCount, Events);
DayRecords++;
EventRecords += NoOfEvents;
}
UserRecords++;
if (x % 10 == 0) {
Console.WriteLine ("User records: " + UserRecords +" Day records: " + DayRecords +" Event records: " + EventRecords);
}
}
}