我正在开展一个项目,我正在努力就是否使用列族或文档存储做出明确的决定。我的情况如下:
我正在开发的项目是一个hass.io应用程序,可以显示特斯拉汽车的某些数据。我的项目将运行在raspberry pi(pi 3)上,因此数据库大小是个问题。 我的数据看起来像这样:
{
"cars" : [
{
"car_id" : 3241123,
"model" : "Tesla S",
"data" : [
{
"timestamp": 23840923804982309,
"temperature": 24.5,
"battery_level" : 40,
"is_charging" : true,
"speed" : null
},
{
"timestamp": 23840923804982333,
"temperature": 26.0,
"battery_level" : 35,
"is_charging" : false,
"speed" : 30
}
]
},
{
"car_id" : 3241157,
"model" : "Renault Zoey",
"data" : [
{
"timestamp": 23840923804982309,
"temperature": 23.3,
"battery_level" : 90,
"is_charging" : true,
"speed" : null
},
{
"timestamp": 23840923804982350,
"temperature": 23.0,
"battery_level" : 92,
"is_charging" : true,
"speed" : null
}
]
}
]
}
我希望能够在图表中绘制数据,因此我的查询很可能必须返回每辆车的每个数据点的时间戳和其他一些值,例如速度或电池电量。我的数据库将拥有非常少量的客户端,并且不需要实时数据可视化。因此读取速度不是很重要。
就我的研究显示,根据这些要求,列族和文档存储架构没有太大差别。除了可伸缩性之外,我不相信我的数据库会增长到我必须开始考虑分片的规模,如果我这样做,我可能首先要考虑垂直扩展。我是否正确地相信这一点或者是否存在实际差异?
旁注:我问这个问题比较列族与文档存储,但是这个比较可能在这个级别上是徒劳的,我必须开始查看特定的列存储和文档存储。如果是这样的话,任何有关这方面的建议也会受到赞赏。