powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проектирование системы сбора геолокационных данных
38 сообщений из 38, показаны все 2 страниц
Проектирование системы сбора геолокационных данных
    #39935343
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача такова

у фирмы много работников, транспорта и т.п. у каждого работника есть смартфон. на этих сматфонах будет размещаться ПО отсылающая на сервер данные их песто положения каждые скажем 5-10 секунд. сервер принемает инфу. Сохраняет.

и отсылает обработанные данные на смартфоны глав групп работников и т.д

Воросы

Какую субд порекомендуете? Я так думаю нужна NOSQL? MongoDB или ещё чего оассмотреть следует

Использовать запросы или сокеты?

если можете посоветовать материалы и примеры то теме, буду благодарен!
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935346
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно пойти от запросов которые вы будете к этой системе предъявлять.
В данной постановке - вам подходит всё что угодно. Берите PostgresQL.
Бесплатно и универсально.

Может подойти InfluxDb если основной вид запросов будет по интервалу времени.

Mongo КМК не подходит т.к. избыточно. Вам же только координаты передать и код смартфона.

Кстати да. Нарисуйте вашу главную табличку. (Концептуальную модель). И от нее можно
пойти с вопросами.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935357
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

про InfluxDb раньше не слышал, почитаю.

Смартов может быть несколько тысяч. соответственно несколько тысяч запросов принять и донескольких сотен отослать.

MySQL/PostgreSQL Это переварят?

Все данные планируется собирать - тоесть накапливать не хилые обьёмы(BigData) - по этому я про NOSQL и упамянул? с этой стороны что лучше?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935363
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

Делайте на том ПО, в котором разбираетесь, ибо 10-20 млн записей с координатами в день - это ниочем для современных систем. А еще можно дедубликацию сделать в виде (координаты, периодС, периодПо)...
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935368
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

Спапсибо за ответ!
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935372
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar

Все данные планируется собирать - тоесть накапливать не хилые обьёмы(BigData) - по этому я про NOSQL и упамянул? с этой стороны что лучше?

Я не знаю что такое "нехилые". Уточните цифры. Возможно то что вы считаете BitData - это вовсе не бигдата а просто
обычная современная БД.

В моём понимании биг-дата начинается от десятков и сотен терабайт. И от денормализации самих данных.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935401
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

15-25 милиардов записей только в одной таблице это как много или не очень? Как по вашему?

Обьясните в кратце чем PostgreSQL превосходит MySQL?

Может тогда майсиквель взять по старинке?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

У вас будут транзакции, которые обновляют те данные, которые вставлены?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar
15-25 милиардов записей только в одной таблице это как много или не очень?

Не очень. Но я сомневаюсь, что тебя наймут в фирму с миллионом работников.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935430
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Это записей милиарды. А записывать собираюсь геоданные с телефонов. Талефонов до нескольких тысяч, данные снимаются каждые 3-5 секунд. За пару лет надерётся несколько милиардов.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935431
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Что значит обновляют? Выборки делать конечно, обрабатывать данные. А изменять координаты геолакацый зачем?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935434
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя, получается write-only. Верно?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935446
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я почему спрашиваю. Мы здесь за 1 итерацию не сможем выдать архитектурное решение которое покроет
все потребности. Может быть надо будет сделать 2-3 макета или POC прежде чем оно заработает.

Сейчас под требование автора подходят любые системы класса Event-Store, Time-Series DB (Influx).
Берите любую и она подходит. Это одна матрица. Если вы хотите поднимать на своем железе.
https://db-engines.com/en/ranking/time series dbms
https://db-engines.com/en/ranking/event store

Другая матрица - хостинг в Амазон и Гугл. У них EC2 стоят дороже. И лучше покупать не голую операционку
а службу как сервис и там будет другая матрица. И надо смотреть по деньгам как выходит.

Постргрес это просто серебрянная пуля которая всегда стрельнет но она может быть не такой быстрой
например по записи или не такой дешевой. Компромисс короче. Не имею ничего против MySQL.
Но я просто в нем не специалист.

Может на данной итерации (накопление гео-данных) вам вообще dbms не нужна и вам хватит
end-point который просто пишет все POST события в текстовый лог. А уже потом от запросов
бизнеса и производтсва можно этот лог перекладывать из одной системы в другую решая
сиюминутные задачи.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935460
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar
если можете посоветовать материалы и примеры то теме, буду благодарен!
https://habr.com/ru/post/485484/
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935469
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar
сервер принемает инфу. Сохраняет.

и отсылает обработанные данные на смартфоны глав групп работников и т.д



С пунктом "отсылает обработанные данные" не понятно, какова обработка.
А в остальном - я бы в csv (или dbf!) файлы данные писал, по файлу на каждое устройство, возможно, с разбивкой по дате/времени.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935508
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dbf - это что? DBase? FoxPro?
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935516
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dbf - это что? DBase? FoxPro?

зачем усложнять,
без мемо-полей,индкесов и с ASCII кодировкой - просто DBase III
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935517
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По факту там может быть больше данных. Широта-долгота. Высота тоже может писаться. Скорость.
+Какая-то техническая хрень. И будет пухнуть datarow в этот бедный dbf. А беря во внимание что
dbf - не умеет поджимать nulls, получится не файл а .. пенопласт.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935519
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

топикстартер замалчивает детали - вот и приходится фантазировать
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935530
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Mongo КМК не подходит т.к. избыточно. Вам же только координаты передать и код смартфона.

MongoDB из коробки поддерживает работу с геоданными: GeoJSON, индексы, запросы, агрегации.

Не думаю, что дело ограничивается передачей координат, судя по:
Areostar
и отсылает обработанные данные на смартфоны глав групп работников и т.д
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935565
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Замалчиваю так как сам ещё не всю инфу получил от начальствующих дебилов
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935566
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Спасибо за ответ
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935570
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar
А записывать собираюсь геоданные с телефонов. Талефонов до нескольких тысяч, данные снимаются каждые 3-5 секунд. За пару лет надерётся несколько милиардов.

И тебе требуется узнать где конкретный телефон был в конкретную секунду два года назад. Не проблема. Неважно сколько миллиардов записей в таблице, индексы справятся.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935573
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он же говорит. Бизнес еще не определился с ТЗ.

Я думаю - в топике мало инфы и стоит подождать. Дизайн подсистемы хранения исторических
данных точняк должен отличатся от дизайна данных оперативных. Это вполне разумно.
Иначе владелец будет переплачивать в 1000% сам не зная за что.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935576
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Он же говорит. Бизнес еще не определился с ТЗ.

Но топик-то он уже создал :) Мог бы и подождать "начальствующих дебилов".
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935580
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разведка - боем. Почитал про Mongo. Да. Действительно добавили поддержку географических типов и
вроде-бы даже spatial-index поддерживается.

В своих докладах главный постгресщик Бартунов постоянно хвастается что дескыть PG обгоняет
Mongo на поисковых операциях по BSON объектам. Интересно догадался ли он поддержать
спецификацию GeoJSON.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935605
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Разведка - боем. Почитал про Mongo. Да. Действительно добавили поддержку географических типов

Добавили? Ещё в версии 2.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935606
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В своих докладах главный постгресщик Бартунов постоянно хвастается что дескыть PG обгоняет
Mongo на поисковых операциях по BSON объектам.

О да, только никогда не говорит о том, какой движок Mongo они там обгоняют :)
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935613
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где то тут видел. Ближе к концу.

[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935631
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Лохматый чел. приводит табличку где написано Postgresql 9.4 vs Mongo 2.6.0.
Возможно это главенствующие на тот момент (2017 год) версии? Кто знает - подтвердите.

2.6 - это 2014-й год
3.2 - это 2015-й
3.4 - это 2017-й

Вообщем Бартунов кросавчег. Новая версия постгреса обгоняет устаревшую версию монги.
И ведь не поспоришь :)

P. S.: помимо версий у MongoDB есть ещё и различные движки (DB engines).
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935632
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В плане сравнения MongoDB с PostgreSQL, лучше за исследованиями ребят из Percona следить.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935655
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас посмотрел вот этот документ https://www.percona.com/live/e17/sites/default/files/slides/High Performance JSON - PostgreSQL vs. MongoDB - FileId - 115573.pdf

На ихних тестовых конфигурациях на операции

SELECT
12 ms - Mongo
3 ms - PG

INSERT
13 ms - Mongo
4 ms - PG

Но эти данные все равно сейчас никак не натягиваются на постановку автора. КМК ему все равно как грузить.
С лагом в 10 мс или в 1000. Это ни на что не влияет. Операции - рассеянные. Рандомные.

А выборки ему надо делать по срезу ID-устройства и диапазону времени. Это совсем не тот тип транзакций которые
меряет percona. Там - скорее всего гоняют точечные OLTP выборки по 1 атрибуту.

Поэтому - макет и еще раз макет.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935659
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Сейчас посмотрел вот этот документ (подозрительная ссылка!) https://www.percona.com/live/e17/sites/default/files/slides/High Performance JSON - PostgreSQL vs. MongoDB - FileId - 115573.pdf

На ихних тестовых конфигурациях на операции

SELECT
12 ms - Mongo
3 ms - PG

INSERT
13 ms - Mongo
4 ms - PG

Но эти данные все равно сейчас никак не натягиваются на постановку автора. КМК ему все равно как грузить.
С лагом в 10 мс или в 1000. Это ни на что не влияет. Операции - рассеянные. Рандомные.

А выборки ему надо делать по срезу ID-устройства и диапазону времени. Это совсем не тот тип транзакций которые
меряет percona. Там - скорее всего гоняют точечные OLTP выборки по 1 атрибуту.

Поэтому - макет и еще раз макет.

Этот документ надо полностью читать.
Там есть пара-тройка важных нюансов, типа MongoDB из коробки быстро заработала, а PostrgeSQL нам пришлось тюнить...

И выводы в конце о том, почему они таки используют MongoDB.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935661
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да читал я до конца. Постргесщик должен быть рукастым админом вобщем-то.
Смысл теста я увидел в том что величины ОДНОГО порядка. Хотя бы не в 10 и не в 100 раз
отличаются.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935663
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да читал я до конца. Постргесщик должен быть рукастым админом вобщем-то.
Смысл теста я увидел в том что величины ОДНОГО порядка. Хотя бы не в 10 и не в 100 раз
отличаются.

И сам тест таков:

Insert / Update / Select comparison
Preloaded 10,000,000 records in the table
- No padding - records are ~320 bytes

3 clients running different workloads
- 50 workers inserting
- 50 workers updating
- 50 workers performing a range over partial index

Both databases become CPU bound
- Database server is under maximum load
- Typically avoided in a production environment
- Always good to know your maximum numbers

При этом перед этим расписано, что чисто вставка 10 000 000 записей в монгу прошла быстрее.

А у ТС-а походу как раз в основном вставка и будет.
И с учётом того, что с постгресом он не знаком, а в монге поддержка геоданных из коробки, и тьюнить её не надо.
Я бы таки выбрал MongoDB.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935670
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Дизайн подсистемы хранения исторических
данных точняк должен отличатся от дизайна данных оперативных.

Оперативные данные вообще в хранении не нуждаются. По определению их потеря будет автоматически восполнена через пару секунд.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39935771
bluestreak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Areostar
Задача такова

у фирмы много работников, транспорта и т.п. у каждого работника есть смартфон. на этих сматфонах будет размещаться ПО отсылающая на сервер данные их песто положения каждые скажем 5-10 секунд. сервер принемает инфу. Сохраняет.

и отсылает обработанные данные на смартфоны глав групп работников и т.д

Воросы

Какую субд порекомендуете? Я так думаю нужна NOSQL? MongoDB или ещё чего оассмотреть следует

Использовать запросы или сокеты?

если можете посоветовать материалы и примеры то теме, буду благодарен!


Можно предложить вот такую архитектуру:

Смартфон может сохранять данные локально на случай потери сигнала. Когда сигнал появляется то дельта отправляется на сервер. Желательно в формате который серверу не нужно парзить. Т.е. одна и тоже база на клиенте и сервере которая может делать синхронизацию.

В зависимости от количества данных клиент может выбирать сервер по хэш функции. В этом случае есть возможность полностью использовать возможности сети и увеличить отказоустойчивость.

Сервера работающие на одном хосте собирают тайм серию из этих кусков данных. Собирают таким образом чтобы процессы чтения тайм серии не прерывались и не блокировались.

Если все данные влазят на один сервер — то все принимающие участие в процессе сервера обмениваются дельтами тайм серий чтобы каждый восстановил локально картину происходящего. После этого данные можно читать с любого сервера.

Если данные не влазят на один сервер — нагрузка переносится на систему запросов. Нужно объединить тайм серии на разных серверах в одну виртуальную таблицу.
...
Рейтинг: 0 / 0
Проектирование системы сбора геолокационных данных
    #39940306
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bluestreak,

Спасибо за предложение ))
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Проектирование системы сбора геолокационных данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]