@NickBor

Какую технологию выбрать для работы с базой данных?

Добрый день! Помогите ответить на такой вопрос связанный с базами данных. Планируется создать базу данных объемом порядка 100-300 Гб (Если говорить о строках, то несколько миллиардов строк в таблице). Например, данные с множества датчиков, которые поступают каждый час на протяжении годы, и потом нужно работать с этими данными. Необходимо делать запросы для выгрузки данных. Как лучше поступить, организовать базу данных с кластеризацией этих данных и использовать PostgreSQL или применять какие-либо методы работы с BigData? Если PostgreSQL, то какие порядки по времени обработки запроса могут быть осуществимы? (допустим нужно выгрузить таблицу на 100 000 строк)? Спасибо за советы!
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 5
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Конкретный ответ на ваш вопрос в данной формулировке дать нельзя. Многое зависит от структуры БД, от сценариев работы с ней, интенсивности запросов, соотношения запросов на чтение к запросам на запись и т.д. и т.п. Вероятнее всего, это вопрос не к СУБД, а к архитектуре вашего приложения. В целом, у меня в одном из проектов запросы на чтение по индексу из таблицы с 23 миллиардами записей укладывались в десятки миллисекунд при стандартных настройках и не особо мощном сервере.
Ответ написан
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Если у вас большой объем показаний датчиков с временными метками - то стоит присмотреться к специализированным БД
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Огромные таблицы однотипных и упорядоченных по времени данных - это моветон. Партиционирование таблиц по дням/месяцам и схлопывание старых данных в агрегаты должны помочь - именно так, например, происходит в БД Заббикса.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Вряд ли скажут точно.
Скорость запроса зависит от всего. От размера конкретной таблица, от того какие данные, причем важно и тип и их схожесть, чтобы было проще индексы строить.
И от скорости ssd
Но я бы сказал, что 100-300 гб это далеко не бигдата. Это просто большая база, с которой справится и mysql и postgres, тем более что взяв сервер с 128гб оперативки, почти треть можно в памяти кешировать.

В вашем случае - без перфоманс тестов никто не скажет даже примерный порядок.
P.S. И да, если ваши данные в основном числа (таймстамп и числовые показатели, то time series data bases могут с этим справиться лучше). С другой стороны они не так популярны и возможно не так развиты.
Ответ написан
2ord
@2ord
продвинутый чайник
Попробуйте одну из TSDB, как указал Владимир Куц .

В частности, хранилище VictoriaMetrics. В качестве языка запросов применяется PromQL.
Возможность использования в качестве долговременного хранилища данных, подключенного к Prometheus и Grafana.

Что касается преимуществ по отношению с другими, то сходите по ссылке выше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы