|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Задача такова у фирмы много работников, транспорта и т.п. у каждого работника есть смартфон. на этих сматфонах будет размещаться ПО отсылающая на сервер данные их песто положения каждые скажем 5-10 секунд. сервер принемает инфу. Сохраняет. и отсылает обработанные данные на смартфоны глав групп работников и т.д Воросы Какую субд порекомендуете? Я так думаю нужна NOSQL? MongoDB или ещё чего оассмотреть следует Использовать запросы или сокеты? если можете посоветовать материалы и примеры то теме, буду благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 00:47 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Нужно пойти от запросов которые вы будете к этой системе предъявлять. В данной постановке - вам подходит всё что угодно. Берите PostgresQL. Бесплатно и универсально. Может подойти InfluxDb если основной вид запросов будет по интервалу времени. Mongo КМК не подходит т.к. избыточно. Вам же только координаты передать и код смартфона. Кстати да. Нарисуйте вашу главную табличку. (Концептуальную модель). И от нее можно пойти с вопросами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 00:54 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton, про InfluxDb раньше не слышал, почитаю. Смартов может быть несколько тысяч. соответственно несколько тысяч запросов принять и донескольких сотен отослать. MySQL/PostgreSQL Это переварят? Все данные планируется собирать - тоесть накапливать не хилые обьёмы(BigData) - по этому я про NOSQL и упамянул? с этой стороны что лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 06:19 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar, Делайте на том ПО, в котором разбираетесь, ибо 10-20 млн записей с координатами в день - это ниочем для современных систем. А еще можно дедубликацию сделать в виде (координаты, периодС, периодПо)... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 09:19 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Критик, Спапсибо за ответ! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 10:17 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar Все данные планируется собирать - тоесть накапливать не хилые обьёмы(BigData) - по этому я про NOSQL и упамянул? с этой стороны что лучше? Я не знаю что такое "нехилые". Уточните цифры. Возможно то что вы считаете BitData - это вовсе не бигдата а просто обычная современная БД. В моём понимании биг-дата начинается от десятков и сотен терабайт. И от денормализации самих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 10:48 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton, 15-25 милиардов записей только в одной таблице это как много или не очень? Как по вашему? Обьясните в кратце чем PostgreSQL превосходит MySQL? Может тогда майсиквель взять по старинке? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 12:57 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar, У вас будут транзакции, которые обновляют те данные, которые вставлены? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 14:06 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar 15-25 милиардов записей только в одной таблице это как много или не очень? Не очень. Но я сомневаюсь, что тебя наймут в фирму с миллионом работников. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 14:32 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Это записей милиарды. А записывать собираюсь геоданные с телефонов. Талефонов до нескольких тысяч, данные снимаются каждые 3-5 секунд. За пару лет надерётся несколько милиардов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 15:11 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton, Что значит обновляют? Выборки делать конечно, обрабатывать данные. А изменять координаты геолакацый зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 15:14 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
У тебя, получается write-only. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 15:27 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Я почему спрашиваю. Мы здесь за 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 события в текстовый лог. А уже потом от запросов бизнеса и производтсва можно этот лог перекладывать из одной системы в другую решая сиюминутные задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 16:59 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar если можете посоветовать материалы и примеры то теме, буду благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 19:17 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar сервер принемает инфу. Сохраняет. и отсылает обработанные данные на смартфоны глав групп работников и т.д С пунктом "отсылает обработанные данные" не понятно, какова обработка. А в остальном - я бы в csv (или dbf!) файлы данные писал, по файлу на каждое устройство, возможно, с разбивкой по дате/времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2020, 20:32 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Dbf - это что? DBase? FoxPro? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 00:58 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Dbf - это что? DBase? FoxPro? зачем усложнять, без мемо-полей,индкесов и с ASCII кодировкой - просто DBase III ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 02:13 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
По факту там может быть больше данных. Широта-долгота. Высота тоже может писаться. Скорость. +Какая-то техническая хрень. И будет пухнуть datarow в этот бедный dbf. А беря во внимание что dbf - не умеет поджимать nulls, получится не файл а .. пенопласт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 02:19 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton, топикстартер замалчивает детали - вот и приходится фантазировать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 02:45 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Mongo КМК не подходит т.к. избыточно. Вам же только координаты передать и код смартфона. MongoDB из коробки поддерживает работу с геоданными: GeoJSON, индексы, запросы, агрегации. Не думаю, что дело ограничивается передачей координат, судя по: Areostar и отсылает обработанные данные на смартфоны глав групп работников и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 07:27 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Изопропил, Замалчиваю так как сам ещё не всю инфу получил от начальствующих дебилов ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 13:47 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
skyANA, Спасибо за ответ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 13:48 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar А записывать собираюсь геоданные с телефонов. Талефонов до нескольких тысяч, данные снимаются каждые 3-5 секунд. За пару лет надерётся несколько милиардов. И тебе требуется узнать где конкретный телефон был в конкретную секунду два года назад. Не проблема. Неважно сколько миллиардов записей в таблице, индексы справятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 14:45 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Он же говорит. Бизнес еще не определился с ТЗ. Я думаю - в топике мало инфы и стоит подождать. Дизайн подсистемы хранения исторических данных точняк должен отличатся от дизайна данных оперативных. Это вполне разумно. Иначе владелец будет переплачивать в 1000% сам не зная за что. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 14:53 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Он же говорит. Бизнес еще не определился с ТЗ. Но топик-то он уже создал :) Мог бы и подождать "начальствующих дебилов". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 16:08 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Разведка - боем. Почитал про Mongo. Да. Действительно добавили поддержку географических типов и вроде-бы даже spatial-index поддерживается. В своих докладах главный постгресщик Бартунов постоянно хвастается что дескыть PG обгоняет Mongo на поисковых операциях по BSON объектам. Интересно догадался ли он поддержать спецификацию GeoJSON. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 17:04 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Разведка - боем. Почитал про Mongo. Да. Действительно добавили поддержку географических типов Добавили? Ещё в версии 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 22:39 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton В своих докладах главный постгресщик Бартунов постоянно хвастается что дескыть PG обгоняет Mongo на поисковых операциях по BSON объектам. О да, только никогда не говорит о том, какой движок Mongo они там обгоняют :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2020, 22:41 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 00:02 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Лохматый чел. приводит табличку где написано Postgresql 9.4 vs Mongo 2.6.0. Возможно это главенствующие на тот момент (2017 год) версии? Кто знает - подтвердите. 2.6 - это 2014-й год 3.2 - это 2015-й 3.4 - это 2017-й Вообщем Бартунов кросавчег. Новая версия постгреса обгоняет устаревшую версию монги. И ведь не поспоришь :) P. S.: помимо версий у MongoDB есть ещё и различные движки (DB engines). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 08:17 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
В плане сравнения MongoDB с PostgreSQL, лучше за исследованиями ребят из Percona следить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 08:30 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Сейчас посмотрел вот этот документ 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 атрибуту. Поэтому - макет и еще раз макет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 13:40 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 14:03 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Да читал я до конца. Постргесщик должен быть рукастым админом вобщем-то. Смысл теста я увидел в том что величины ОДНОГО порядка. Хотя бы не в 10 и не в 100 раз отличаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 14:15 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 14:26 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
mayton Дизайн подсистемы хранения исторических данных точняк должен отличатся от дизайна данных оперативных. Оперативные данные вообще в хранении не нуждаются. По определению их потеря будет автоматически восполнена через пару секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2020, 14:41 |
|
Проектирование системы сбора геолокационных данных
|
|||
---|---|---|---|
#18+
Areostar Задача такова у фирмы много работников, транспорта и т.п. у каждого работника есть смартфон. на этих сматфонах будет размещаться ПО отсылающая на сервер данные их песто положения каждые скажем 5-10 секунд. сервер принемает инфу. Сохраняет. и отсылает обработанные данные на смартфоны глав групп работников и т.д Воросы Какую субд порекомендуете? Я так думаю нужна NOSQL? MongoDB или ещё чего оассмотреть следует Использовать запросы или сокеты? если можете посоветовать материалы и примеры то теме, буду благодарен! Можно предложить вот такую архитектуру: Смартфон может сохранять данные локально на случай потери сигнала. Когда сигнал появляется то дельта отправляется на сервер. Желательно в формате который серверу не нужно парзить. Т.е. одна и тоже база на клиенте и сервере которая может делать синхронизацию. В зависимости от количества данных клиент может выбирать сервер по хэш функции. В этом случае есть возможность полностью использовать возможности сети и увеличить отказоустойчивость. Сервера работающие на одном хосте собирают тайм серию из этих кусков данных. Собирают таким образом чтобы процессы чтения тайм серии не прерывались и не блокировались. Если все данные влазят на один сервер — то все принимающие участие в процессе сервера обмениваются дельтами тайм серий чтобы каждый восстановил локально картину происходящего. После этого данные можно читать с любого сервера. Если данные не влазят на один сервер — нагрузка переносится на систему запросов. Нужно объединить тайм серии на разных серверах в одну виртуальную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2020, 02:08 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339814]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 497ms |
0 / 0 |