Arenadata QuickMarts для разработчиков
Arenadata QuickMarts (ADQM) — это высокопроизводительная аналитическая СУБД, разработанная на базе ClickHouse. Она предназначена для OLAP-нагрузок, построения витрин данных и высокоскоростной выборки. ADQM поддерживает стандарт SQL, колонночное хранение, партиционирование, кластеризацию и масштабирование на несколько серверов. Предназначена для высокопроизводительной обработки аналитических запросов в режиме реального времени, обеспечивая линейную масштабируемость, отказоустойчивость и надежность.
Данный материал предназначен для разработчиков ETL-процессов, аналитических решений и BI-интеграций.
Основные архитектурные особенности
Колонночная модель хранения
- Каждое поле таблицы хранится в отдельном файле
- Высокий уровень компрессии и минимизация IO
- Поддержка движков: MergeTree, ReplacingMergeTree, AggregatingMergeTree
Партиционирование и индексы
- Партиционирование по дате/диапазону:
PARTITION BY toYYYYMM(Date)
- Первичный ключ: упорядочивает данные (не уникальность!)
- Индекс пропуска (skip index) по Bloom фильтрам и min/max
Асинхронная вставка и фоновые мерджи
- Все вставки write-optimized, выполняются асинхронно
- Слияние партиций происходит в фоне (MergeTree background threads)
Разработка SQL-запросов и моделей
Язык запросов
- Поддерживает SQL-92 с расширениями ClickHouse
- Оконные функции, агрегаты, CTE (WITH), подзапросы, функции JSON
Примеры:
SELECT UserID, count(*) OVER (PARTITION BY Region) FROM events; SELECT * FROM logs WHERE has(URLs, 'click');
Материализованные представления (MV)
CREATE MATERIALIZED VIEW mv_sales TO agg_sales AS SELECT region, sum(amount) FROM sales GROUP BY region;
Интеграция и инструменты
BI и DWH интеграция
- Совместим с Superset, Tableau, Power BI, FineBI
- Использует драйверы ClickHouse ODBC/JDBC
- Легко встраивается в витрины данных поверх ADB/ADPG
Взаимодействие с Kafka
- Чтение топиков через Kafka движок
- Использование materialized views для ingestion
Взаимодействие с HDFS и S3
- Движки File, URL, S3, HDFS
- Поддержка чтения и записи в формате CSV, Parquet, JSON, ORC
Сильные стороны
Производительность
- Одни из лучших показателей SELECT-запросов в своей категории
- Поддержка vectorized execution + SIMD-инструкции
Масштабируемость
- Шардирование, репликация, кластерная архитектура
- Репликация через ZooKeeper или внутренние механизмы
Гибкость в модели данных
- Отсутствие строгих ограничений на схемы
- Позволяет денормализацию и быстрое построение витрин
Слабые стороны и ограничения
Нет полноценной поддержки транзакций
- Поддержка INSERT, SELECT, но UPDATE/DELETE частичная
Сложность по управлению хранением
- MergeTree требует контроля по ресурсам (дисковая IO, фоновые потоки)
- Необходимо тюнинговать parts_to_throw_insert, max_partitions_per_insert_block
Фоновая нагрузка
- Мерджи, TTL, очистка партиций — требуют внимания и мониторинга
DevOps и эксплуатация
Тестирование запросов
- Использовать EXPLAIN, trace, system.query_log
Мониторинг
- Метрики /metrics (Prometheus): latency, merges, parts, memory usage
- Алерты на высокие значения MergeTree: background_pool_task_duration
Бэкапы
- adqm-backup CLI-утилита
- Поддержка snapshot + WAL через файловый уровень
Управление кластером
- ADCM: запуск/остановка узлов, конфигурация репликации
- ZooKeeper: слежение за состоянием реплик
Заключение
Arenadata QuickMarts — это современное аналитическое решение, обеспечивающее высокую скорость выборки, масштабируемость и гибкость построения BI-витрин. Разработчикам оно даёт SQL-интерфейс, широкую совместимость с источниками и BI-инструментами, поддержку кластеризации и ingestion из потоков. При этом требует грамотной настройки и мониторинга для стабильной работы на больших объёмах данных.



