View in Telegram
Доклад с натурных испытаний генерации BI-моделей данных в Clickhouse. Как вы (возможно) помните, в предлагаемой мной архитектуре аналитического ландшафта результатом очистки данных становятся "эталонные" таблицы в аналитическом хранилище. Это таблицы фактов, справочники, а иногда факты, содержащие вшитые справочники (денормализованные структуры. За счет соблюдения конвенции нейминга ключевых полей (все ключевые поля называются одинаково, для каждой таблицы определен первичный ключ (если он есть)), мы не озадачиваемся проработкой единой логики связи - она формируется сама по мере наполнения АХД. Но даже в этом случае, АХД не является удобным источником для подключения BI. Прежде всего потому, что для полноценного построения модели данных из АХД нужно чтобы BI умел в реляционные модели (а это только Power BI). А для остальных BI, которые в качестве модели используют Звезду той или иной формы, нужен дополнительный процесс: 1) Сборки фактов и связей в центральную таблицу показателей и связей; 2) Для некоторых блоков показателей нужно восстанавливать связи, присоединяя ключи, чтобы добраться до таблиц, связанных не напрямую. Например, сделки связаны с контактами, контакты с компаниями - в Звезде к сделкам нужно приджойнить связь с компаниями, чтобы показатели сделок можно было анализировать в разрезе компаний. Поэтому мы также забираем на свою сторону процесс сборки моделей: пользователь может выбрать из каких таблиц/полей он хочет собрать модель, наш алгоритм сгенерит запрос для СУБД, и там появится плоская таблица/звезда, с учетом хитросплетений конкретно взятых таблиц. Обеспечивая одинаковый опыт работы с данными в любой аналитической системе или визуализаторе. Но главный вызов был не в том, чтобы это продумать и реализовать, т.к. с 2019 года все было продумано и реализовано на Qlik Мы уже вышли из яслей Qlik, где такой запрос имел достаточно простой вид и однозначную реализацию, и попали на поляну Clickhouse. Где важно не только что получается в итоге, но и как оно получается. Первый прототип появился весной 2022 года, и строил модель на 150 000 строк примерно секунд 30. Это позволило подтвердить гипотезу о пригодности подхода, но совершенно очевидно, не могло быть продуктовым решением. В эту пятницу была протестирована новая версия алгоритма, который разрабатывался при поддержке топового спеца по Clickhouse Сергея Платонова. Модель данных в виде плоской таблицы, на основе 13 таблиц из АХД, 139 полей, 21,5 млн строк - формируется за 3 минуты. Что быстрее аналогичного процесса в Qlik примерно в 3 раза. И это еще не вся оптимизация реализована! Для сравнения, предыдущая итерация этой же задачи на объеме данных в полтора раза меньше составила 20 минут. В файлике приложен пример сгенерированного запроса сборки моделей. Это SQL-запрос на 800+строк, который нам не нужно: 0) Уметь писать; 1) Писать; 2) Поддерживать; 3) Обеспечивать единообразие с другими моделями. И это не говоря о массе реализованных удобств, которые при работе с моделями и АХД позволяют избегать ситуация в духе "BI пытается прочитать данные из таблицы, которая находится в процессе перезаписи"
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily