Ключевые особенности OLAP сценария работы

  • Подавляющее большинство запросов — на чтение;
  • Данные обновляются достаточно большими пачками (> 1000 строк), а не по одной строке, или не обновляются вообще;
  • Данные добавляются в БД, но не изменяются;
  • При чтении, вынимается достаточно большое количество строк из БД, но только небольшое подмножество столбцов;
  • Таблицы являются «широкими», то есть, содержат большое количество столбцов;
  • Запросы идут сравнительно редко (обычно не более сотни в секунду на сервер);
  • При выполнении простых запросов, допустимы задержки в районе 50 мс;
  • Значения в столбцах достаточно мелкие — числа и небольшие строки (пример — 60 байт на URL);
  • Требуется высокая пропускная способность при обработке одного запроса (до миллиардов строк в секунду на один сервер);
  • Транзакции отсутствуют;
  • Низкие требования к консистентности данных;
  • В запросе одна большая таблица, все таблицы кроме одной маленькие;
  • Результат выполнения запроса существенно меньше исходных данных — то есть, данные фильтруются или агрегируются; результат выполнения помещается в оперативку на одном сервере.
  • Amazon Athena
    • Amazon Athena
    • Amazon Athena

    • Amazon Athena – это интерактивный сервис запросов, позволяющий просто анализировать данные в хранилище Amazon S3 с помощью стандартного SQL
  • Apache Pinot
    • Apache Pinot
    • Apache Pinot

    • Apache Pinot (Incubating) - распределенное хранилище данных OLAP в реальном времени
  • Apache DruidApache Druid
    • Apache DruidApache Druid
    • Apache Druid

    • Druid - это ориентированное на столбцы распределенное хранилище данных с открытым исходным кодом, написанное на Java
  • MongoDBMongoDB
    • MongoDBMongoDB
    • ,
    • MongoDB

    • MongoDB — документоориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных. Написана на языке C++
  • ClickHouseClickHouse