Когда дело доходит до производительности BI, обычно существует компромисс между скоростью аналитики и объемом данных, на которых она реализуется.
Мы постарались «убить двух зайцев одним выстрелом», и сегодня я хочу поделиться опытом интеграции Visiology с платформой Arenadata при построении гибридной BI-модели работы.
Если вы читаете наш блог, значит, вы уже знаете о платформе Visiology хотя бы в общих чертах (если нет, это легко исправить, прочитав наш первый пост ).
Но сегодня мы поговорим не только о Visiology и BI-платформе как таковой, но и о наших новых друзьях Arenadata. Точнее, об интеграции, которая позволила реализовать гибридную аналитику на высокой скорости и на больших объемах данных.
Почему вам понадобилась интеграция Arenadata и Visiology?
Сегодня существует несколько подходов к работе BI-систем.Но когда речь идет о больших данных для самых разных задач, обычно используется ROLAP. Работает это довольно просто: когда пользователь нажимает что-то на панели управления, например, выбирает фильтр, внутри платформы генерируется SQL-запрос, который отправляется на тот или иной бэкенд. В принципе, BI-система может содержать любую СУБД, поддерживающую запросы — от Postgres до Teradata. Подробнее я рассказал о схемах работы OLAP Здесь .
Преимущество интеграции BI с СУБД заключается в том, что практически нет ограничений на объем данных для работы системы.
Но при этом снижается скорость выполнения запросов — конечно, если вы не используете специализированную столбчатую СУБД, например ClickHouse или Vertica. И, хотя спектр возможностей ClickHouse пока уже, чем у Vertica, система развивается и выглядит весьма перспективно.
Но даже у колоночной СУБД есть некоторые недостатки при работе с BI, и самый первый из них — меньшая эффективность использования кэша на уровне платформы в целом, поскольку СУБД, в отличие от самой платформы BI, «не много знает о поведении пользователей и не может использовать эту информацию для оптимизации.
Когда большое количество пользователей начинают работать, делать запросы и обращаться к информационным панелям разными способами, требования к оборудованию, на котором работает СУБД — даже хорошему, аналитическому и столбчатому — могут оказаться очень серьезными.
Второй момент — ограничение аналитического функционала: все, что не укладывается в SQL-запрос, поддерживаемый распределенной СУБД, отсекается автоматически (например, в случае ClickHouse — это оконные функции).
И это проблема, потому что в BI есть много вещей, которые сложно транслировать в SQL-запросы или которые выполняются неоптимально.
Второй вариант — OLAP в памяти.
Он предполагает передачу всех обработанных данных в специальный движок, который быстро обрабатывает базу данных объемом 200-300 ГБ — это порядка нескольких миллиардов записей.
Кстати, я уже более подробно рассказывал об ограничениях In-Memory OLAP. Здесь .
На практике встречаются установки In-Memory OLAP, оснащенные 1-2-3 терабайтами оперативной памяти, но это достаточно экзотично и дорого.
Практика показывает, что не всегда можно обойтись тем или иным подходом.
Когда требуется гибкость, возможность работы с большими объемами данных и поддержка значительного количества пользователей одновременно, возникает потребность в гибридной системе, которая, с одной стороны, загружает данные в In-Memory OLAP. engine, а с другой, постоянно подтягивает нужные записи из СУБД.
В этом случае механизм OLAP используется для доступа ко всему массиву данных без каких-либо задержек.
И в отличие от чистого In-Memory OLAP, который необходимо периодически перезагружать, в гибридной модели мы всегда получаем актуальные данные.
Такое разделение данных на «горячие» и «холодные» сочетает в себе преимущества обоих подходов — ROLAP и In-Memory, но усложняет проект внедрения BI. Например, разделение данных происходит вручную, на уровне ETL-процедур.
Поэтому для эффективной работы всего комплекса очень важна совместимость бэкенда и самой BI-системы.
Хотя SQL-запросы остаются стандартными, в действительности всегда существуют аспекты их выполнения и нюансы производительности.
Arenadata и Arenadata QuickMarts
Платформа данных Arenadata состоит из нескольких компонентов, построенных на открытых технологиях, и используется многими российскими и зарубежными компаниями.В состав решения входит собственное MPP-решение на базе Greenplum. , Дистрибутив Hadoop для хранения и обработки неструктурированных и полуструктурированных данных, централизованная система управления ADCM (Cluster Management) на базе Ansible и другие полезные компоненты, включая Arenadata QuickMarts (ADQM).
СУБД ADQM — столбчатая СУБД от Arenadata, построенная на базе аналитической СУБД ClickHouse, разработанной Яндексом.
Изначально ClickHouse создавался для внутреннего проекта Яндекс.
Метрики, но эта СУБД очень понравилась сообществу.
В результате исходный код ClickHouse был переведен на OpenSource (лицензия Apache-2) и стал популярен во всем мире.
Сегодня по всему миру установлено около 1000 установок ClickHouse, и только 1/3 из них находится в России.
И хотя Яндекс остается основным участником разработки СУБД, лицензия Apache-2 позволяет абсолютно свободно использовать продукт и вносить изменения в проект. Современные столбчатые СУБД используют аппаратную оптимизацию ЦП (SSE).
ClickHouse может выполнять запросы очень быстро за счет векторной оптимизации и использования всего ресурса многоядерных процессоров.
На базе ClickHouse работают огромные кластеры — сам Яндекс расширяет эту СУБД на несколько сотен серверов.
Это гарантирует, что вы сможете масштабировать это решение в довольно больших масштабах.
Но главная особенность ClickHouse в нашем контексте — эффективная работа с достаточно специфическими аналитическими запросами.
Если ваши витрины уже построены и вам необходимо предоставить пользователям доступ к BI с минимальной задержкой, эта история как раз для ClickHouse. Эта СУБД хорошо справляется с запросами без объединений и связей.
Во многих сравнениях ClickHouse дает серьезную фору даже классическим СУБД, например, Oracle Exadata. Результаты этих тестов можно найти на ресурсах Яндекса.
Производительность QuickMarts
- Типичные запросы менее чем за секунду
- > в 100 раз быстрее, чем Hadoop и обычные СУБД
- 100 миллионов – 1 миллиард строк в секунду на одном узле
- До 2 терабайт в секунду для кластера из 400 узлов.
Наши коллеги из Arenadata даже выпускают позже, потому что проводят больше тестов, чтобы серьезные задачи в продакшене работали только на стабильных версиях.
В этом случае ADQM устанавливается и настраивается из Arenadata Cluster Manager. Кастомизированная СУБД имеет развитые механизмы авторизации пользователей, а также инструменты мониторинга на базе Graphite и Grafana. Но самое главное, что QuickMarts изначально имеет готовые коннекторы и прозрачно взаимодействует с другими компонентами платформы, в т.ч.
с ADB (Greenplum), который позволяет загружать данные из ADB в ADQM по мере необходимости.
В нашем случае QuickMarts используется для работы с витринами, к которым через BI обращаются сотни или тысячи пользователей.
Архитектура системы позволяет предоставлять им данные «здесь и сейчас», а не ждать 20-30 секунд обработки их запроса на витрины в более медленной СУБД.
Как работает интеграция Arenadata и Visiology
При использовании Visiology с Arenadata система работает следующим образом: Основное хранилище данных может быть реализовано на базе ADB (GreenPlum), из которого создаются витрины данных, уже хранящиеся в ADQM. За счет интеграции компонентов решения система работает как единое целое, а необходимые для запросов данные автоматически поднимаются до необходимого уровня.
Фактически в аналитической системе создается только один дашборд, а обработка графики осуществляется движком In-Memory ViQube — ядром платформы Visiology. Пользователь выбирает только определенные фильтры, а задача загрузки самих транзакций выполняется на бэкэнде ресурсами QuickMarts.
Раньше такая интеграция была только с Vertica, но сейчас мы вместе с коллегами создали интеграцию для Arenadata QuickMarts. Это хорошая новость для сторонников ClickHouse, ведь BI работает с популярной СУБД гибридным способом.
При этом Arenadata DB, служащая корпоративным хранилищем данных, обеспечивает необходимое преобразование данных для дальнейшей работы QuickMarts и Visiology. Все BI-запросы обрабатываются механизмом ViQube. Если пользователь обращается к данным, которых нет в памяти, система автоматически генерирует запрос SQL, который выполняется в Arenadata QuickMarts. Чтобы все это работало, мы реализовали поддержку диалекта ClickHouse для основных аналитических функций и добавили автоматическое переключение между режимами работы OLAP в зависимости от того, где фактически находятся данные.
Однако для пользователя все остается предельно прозрачным: он даже не знает, как работает система — он просто делает запросы в интерфейсе BI и получает результаты, причем довольно быстро.
Конечно, эта схема имеет и свои недостатки.
Например, учитывая ограничения SQL, не все аналитические функции будут доступны для всего объема данных.
Но зато появляется возможность обрабатывать огромное количество транзакций для большого количества людей, которые в основном изучают тенденции на готовых дашбордах и лишь иногда ищут конкретные записи.
Мы развиваемся дальше
В настоящее время интеграция находится в версии 1.0, и мы планируем дальнейшие улучшения.В частности, речь уже идет о расширении спектра доступных аналитических возможностей, а также об интеграции в единую консоль управления (например, у Arenadata есть решение Cluster Manager (ADCM), позволяющее управлять всеми компонентами ландшафта из единой системы).
консоли, мы рассматриваем это как один из вариантов).
Также на повестке дня стоит задача автоматизации настройки метаданных.
Теперь их нужно отметить в специальном интерфейсе — это довольно трудоемко.
Хотелось бы, чтобы система самостоятельно распознавала все необходимые параметры, получив путь к конкретной витрине.
В целом мы остались очень довольны сотрудничеством с Arenadata и полученной интеграцией с ClickHouse и ADQM. Теперь в аналитической платформе Visiology можно одновременно работать с источниками данных любого масштаба — от малых данных (ручной ввод, Excel) до больших данных (миллиарды и даже сотни миллиардов транзакций из распределенных хранилищ данных).
А гибридный режим работы, который мы реализовали совместно с Arenadata, также позволяет сделать это с разумными затратами на оборудование.
Будем признательны, если вы напишите в комментариях, с какими сценариями запуска BI на больших данных вы сталкивались.
Ну а мы всегда готовы подробно поделиться своим опытом! Теги: #Хранилища данных #Высокая производительность #DevOps #Большие данные #Инжиниринг данных #dwh #clickhouse #озеро данных #большие данные #бизнес-аналитика #бизнес-аналитика
-
Метрики Качества Ранжирования
19 Oct, 24 -
Wibree — «Младший Брат» Bluetooth
19 Oct, 24