Додаток буде постійно (приблизно кожну секунду) збирати місцезнаходження користувачів та зберігати їх.
Ці дані структуровані. У реляційній базі даних вона зберігатиметься як:
| user | timestamp | latitude | longitude |
Однак даних є занадто багато. Щодня буде 60 × 60 × 24 = 86 400 записів на користувача. Навіть з 1000 користувачів це означає 86 400 000 записів щодня.
І це не лише 86 400 000 записів щодня. Оскільки ці записи будуть оброблені, а оброблені версії також будуть зберігатися. Отже, помножте це число приблизно на 2.
Як я планую використовувати дані
По суті, я планую зробити більш грубі версії даних про місцезнаходження для більш легкого використання. Це є:
- Сортувати отримані дані wrt мітки часу.
- Повторюючись у цьому списку, визначте, чи істотно змінилось місце розташування (перевіривши, наскільки змінилася широта та довгота)
- Представляти несуттєві зміни місцеположення як єдиний запис у висновку (отже, висновок є більш грубої версією даних про місцезнаходження).
- Повторіть цей процес на виході, вимагаючи ще більшої зміни широти та довготи для значної зміни. Отже, вихід, отриманий з попереднього випуску, буде ще більш грубозернистим.
- Повторіть весь процес стільки, скільки потрібно.
- Об'єднайте діапазон резолюцій та надішліть їх користувачам. Також зберігайте всі роздільні дані для подальшого споживання.
Що я повинен використовувати для зберігання цих даних? Чи слід використовувати реляційну базу даних або рішення NoSQL? Які ще речі слід враховувати при розробці цього додатка?