так быстрое обновление, почему я создал этот вопрос.DocumentDB - Сохранение данных телеметрии
В настоящее время мы сохраняем наши данные телеметрии наших устройств в поле в Azure SQL Server. Это отлично работает (у меня много опыта с EF, LINQ и dbs отношения). Но я знаю, что это, скорее всего, не лучшее решение, особенно для хранения «больших» данных (данные пока еще малы, но будут расти в течение года).
Я выбрал DocumentDB как наше возможное решение для хранения только истории событий. Остальные останутся в SQL - пользователи, профили, информация об устройстве, sim, автомобиль и т. Д., Так как я не хочу полностью останавливать разработку, поскольку мы перемещаем 100% в docdb и скорее просто делаем то, что лучше всего - краткосрочная - стоимость + производительность.
Просматривая это видео, я, наконец, придумал возможное решение о том, как хранить данные телеметрии. https://www.youtube.com/watch?v=-o_VGpJP-Q0 Они рекомендовали один документ за период времени (пример использовался 1 раз в час). Это рекомендуемый подход?
[Index]
public DateTime TimestampUtc { get; set; }
public DateTime ReceivedTimestampUtc { get; set; }
[Index]
public EventType EventType { get; set; }
public Guid ConnectionId { get; set; }
public string RawEventMessage { get; set; }
[Index]
public Sender Sender { get; set; }
[Index]
public Channel Channel { get; set; }
public DbGeography Location { get; set; }
public double? Speed { get; set; }
public double? Altitude { get; set; }
public Int16? Heading { get; set; }
public Byte? HDOP { get; set; }
public Byte? GPSFixStatus { get; set; }
public Byte? GPSFixType { get; set; }
public string Serial { get; set; }
public string HardwareVersion { get; set; }
public string FirmwareVersion { get; set; }
public string Relay1 { get; set; }
public string Relay2 { get; set; }
public string Relay3 { get; set; }
public string Ign { get; set; }
public string Doors { get; set; }
public string Input1 { get; set; }
public string Input2 { get; set; }
public string Out1 { get; set; }
public string Out2 { get; set; }
public int V12 { get; set; }
public int VBat { get; set; }
* Отказ от ответственности - Я являюсь одним из соавторов // созданного видео, на которое вы ссылались * - На самом деле нет «рекомендуемого» подхода к хранению данных телеметрии. То, что мы показали для хранения данных телеметрии, было одним конкретным примером моделирования, основанным на некоторых реальных решениях, которые мы рассматривали, применительно к базе данных документов, такой как DocumentDB (которая может работать или не работать для вашего конкретного случая). Существуют и другие способы моделирования и даже разные типы баз данных. –
Эй, Дэйв, спасибо за ответ :) Да, сегодня мозг штурмует и наткнулся на это хорошее видео, и это дало мне еще один вариант. Все работает очень хорошо в SQL, только что заинтересованный в долгосрочной перспективе – David
Рад, что вам понравилось - спасибо. :) И если это дало вам некоторые новые вещи, о которых нужно думать, я считаю это успешным. –