Content #
物联网场景下的海量数据处理场景,飞机监控数据形式如下:
{
"_id" : "20160101050000:CA2790",
"icao" : "CA2790",
"callsign" : "CA2790",
"ts" : ISODate("2016-01-01T05:00:00.000+0000"),
"events" : {
"a" : 31418,
"b" : 173,
"p" : [115, -134],
"s" : 91,
"v" : 80
}
}
10万架飞机,每分钟一条,1年的数据量有多少大?用MongoDB来存储数据,应如何处理?
应用MongoDB的分桶模式来存储数据,将1架飞机1小时的数据放入同一个文档中,如:
{
"_id" : "20160101050000:WG9943",
"icao" : "WG9943",
"ts" : ISODate("2016-01-01T05:00:00.000+0000"),
"events" : [
{
"a" : 24293, "b" : 319, "p" : [41, 70], "s" : 56,
"t" : ISODate("2016-01-01T05:00:00.000+0000“)
},
{
"a" : 33663, "b" : 134, "p" : [-38, -30], "s" : 385,
"t" : ISODate("2016-01-01T05:00:01.000+0000“)
},
...
]
}
下表是每分钟1个文档与每小时1个文档的对比:
