Как выбрать семейство столбцов и базу данных хранилища документов?
Я работаю над проектом и изо всех сил пытаюсь принять окончательное решение о том, использовать ли семейство столбцов или хранилище документов. Моя ситуация выглядит следующим образом:
Проект, над которым я работаю, - это приложение hass.io, которое визуализирует определенные данные для автомобилей Tesla. Мой проект будет работать на 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
}
]
}
]
}
- мой проект должен использовать базу данных NoSQL
- Этот пример в формате JSON, но он просто показывает данные. Он не должен храниться в базе данных как файл JSON как таковой.
- Ожидается, что количество автомобилей будет низким (2-4), а объем данных вырастет довольно большим (пара новых записей в минуту)
Я хочу иметь возможность отображать данные на графике, поэтому, скорее всего, мои запросы должны будут возвращать метку времени для каждой точки данных каждого автомобиля и какое-либо другое значение, например, скорость или уровень заряда батареи. В моей базе данных будет очень мало клиентов, и визуализация данных в реальном времени не требуется. Поэтому скорость чтения не очень важна.
Насколько показали мои исследования в соответствии с этими требованиями, семейство столбцов и хранилище документов не сильно отличаются друг от друга. За исключением масштабируемости, но я не верю, что моя база данных вырастет до того масштаба, который мне придется начать думать о шардинге, и если я это сделаю, мне, вероятно, сначала придется подумать о вертикальном масштабировании. Правильно ли я в это верю или есть реальная разница?
С другой стороны: я задаю этот вопрос, сравнивая семейства столбцов с хранилищем документов, но, возможно, это сравнение бесполезно на этом уровне, и я должен начать смотреть на конкретные хранилища столбцов и хранилища документов. Если да, то любые советы в этом направлении также приветствуются.