Особенности ADQM

Arenadata QuickMarts (ADQM) — это СУБД для выполнения аналитических запросов в режиме реального времени (OLAP) на структурированных больших данных. ADQM может применяться в различных сферах для решения задач, требующих высокой скорости обработки постоянно поступающей информации, например:

  • аналитика веб-проектов и мобильных приложений;

  • мониторинг технических и бизнес-метрик;

  • быстрые витрины данных;

  • работа со структурированными логами и событиями;

  • мониторинг и анализ данных в режиме реального времени.

 
ADQM разработана на базе аналитической СУБД с открытым исходным кодом ClickHouse. Ключевые особенности ADQM/ClickHouse:

  • Колоночное хранение данных — данные каждой колонки хранятся отдельно от других колонок. Такой формат хранения позволяет считывать данные быстрее (искать значения по отдельным колонкам, а не по всей таблице сразу) и эффективно сжимать однотипные данные.

  • Физическая сортировка данных по первичному ключу — возможность быстро получать данные для конкретных значений или диапазонов значений ключа.

  • Векторные вычисления — за счет обработки данных по векторам (участкам колонок) достигается высокая эффективность по CPU.

  • Распараллеливание операций как в пределах одного сервера на несколько процессорных ядер, так и в рамках распределённых вычислений на кластере за счёт механизма шардирования.

  • Поддержка приближенных вычислений на части выборки — за счет снижения числа обращений к хранилищу повышается скорость обработки данных.

  • Линейная масштабируемость — путем добавления новых узлов можно построить кластер очень большого размера, способный хранить и обрабатывать петабайты данных.

  • Работа на жёстких дисках — возможность дополнительно снизить стоимость хранения данных по сравнению с другими колоночными СУБД, которые работают только в RAM, так как жёсткие диски дешевле оперативной памяти. SSD и оперативная память тоже могут полноценно использоваться, если доступны.

  • Асинхронная multi-master репликация — после записи на любую доступную реплику, данные распространяются на все остальные реплики в фоновом режиме. Благодаря полной идентичности данных на разных репликах система может автоматически восстанавливать данные после большинства сбоев, обеспечивая тем самым высокую отказоустойчивость.

  • Язык запросов SQL — ADQM/ClickHouse поддерживает диалект SQL, близкий к стандарту ANSI SQL, но содержащий различные расширения: массивы и вложенные структуры данных, вероятностные структуры, возможность подключить внешнее хранилище key/value, и другие.

  • Поддержка различных движков баз данных (database engines) и движков таблиц (table engines) — все движки баз данных и таблиц, которые может использовать ADQM/ClickHouse, описаны в соответствующих разделах документации ClickHouse: Database Engines и Table Engines.

  • Быстрая вставка данных — благодаря движку таблиц MergeTree обеспечивается высокая скорость записи данных в таблицы. Блокировки при добавлении новых данных отсутствуют.

  • Интеграция с множеством внешних источников — ADQM/ClickHouse может взаимодействовать по специальным протоколам с различными внешними системами, такими как Kafka, RabbitMQ, Hadoop (HDFS), MySQL, PostgreSQL, MongoDB и другими.

 
ADQM/ClickHouse также обладает некоторыми особенностями, которые могут считаться ограничениями:

  • Отсутствие полноценных транзакций — ADQM/ClickHouse является OLAP, а не OLTP-системой, и не поддерживает транзакционность записей, так как ориентирован, в первую очередь, на считывание данных.

  • Изменение или удаление ранее записанных данных при большом количестве запросов происходит медленно.

  • Низкая скорость точечного чтения одиночных строк по своим ключам из-за разреженного индекса.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней