Архитектура ДанКо

Архитектура ДанКо

Общая информация

ДанКо – основной расчетный движок платформы Visiology. Он объединяет несколько компонентов и обеспечивает следующую функциональность:

  • Хранение модели данных TOM (Tabular Object Model).

  • Автоматическую оптимизацию структуры хранения данных в ClickHouse для ускоренной обработки аналитических запросов. Исключает необходимость ручной настройки, администрирования и оптимизации ClickHouse со стороны ИТ-подразделений заказчика.

  • Загрузку данных из внешних источников (JDBC, CSV, Excel) оптимальным образом (аналог режима импорта в Power BI).

  • Обработку DAX-запросов: трансляцию DAX в набор оптимизированных SQL-запросов с использованием специализированного диалекта ClickHouse для обеспечения максимальной производительности в сценариях самостоятельной аналитики.

  • Масштабирование, балансировку запросов между несколькими экземплярами ClickHouse, репликацию и отказоустойчивость.

  • Преобразование данных в режиме Self-Service ETL.

  • Поддержку инкрементальной загрузки данных с использованием операции ATTACH PARTITION, в том числе в кластере ClickHouse, что обеспечивает атомарность и надежность процесса загрузки.

Состав ДанКо

данко.png

Formula Engine

Компонент без сохранения состояния, выполняющий следующие функции:

  • Хранение и управление объектной моделью TOM (Tabular Object Model).

  • Обработку аналитических запросов на языке DAX (Data Analysis Expressions): преобразование DAX-запросов в оптимальный для ClickHouse SQL, а также выполнение большого числа оптимизаций на основе правил и эвристик.

  • Балансировку пользовательских запросов между несколькими узлами ClickHouse при развертывании набора данных на нескольких узлах.

  • Построение оптимальных структур хранения и индексов для высокопроизводительной обработки DAX-запросов. В процессе импорта данных автоматически размещает их в корректные структуры внутри ClickHouse.

  • Кэширование DAX-запросов как в собственной оперативной памяти (небольшие итоговые срезы данных для виджетов), так и в ClickHouse в виде таблиц в памяти.

  • Выполнение функций основного оркестратора ClickHouse.

  • Хранение и управление правами доступа к наборам данных.

  • Возможность развертывания в нескольких экземплярах.

Data Management Service

Компонент без сохранения состояния, отвечающий за:

  • Преобразование данных (Self-Service ETL) из различных источников с настройкой мапинга – автоматически и по запросу пользователя.

  • Хранение, чтение и редактирование ER-схемы для TOM (Tabular Object Model).

  • Работу с форматами CSV, Excel и СУБД, совместимыми с JDBC.

  • Настройку расписаний автоматической загрузки данных и оркестрацию процессов загрузки.

  • Data Management Service выполняет первичную загрузку данных из источников различных типов. Formula Engine отвечает за последующее размещение предварительно загруженных данных в структурах ClickHouse, оптимальных для аналитической обработки.

  • Data Management Service может быть развернут в нескольких экземплярах.

ClickHouse

  • Хранит аналитические данные.

  • Может быть развернут в виде нескольких серверов, объединенных в кластер с использованием ZooKeeper или ClickHouse Keeper.

S3-совместимое хранилище

  • Используется для хранения временных файлов CSV и Excel при загрузке данных в ClickHouse.

  • Может быть заменено любым другим S3-совместимым хранилищем.

PostgreSQL (общая для всей платформы Visiology)

Хранит метаданные, специфичные для ДанКо, включая описание TOM, расписания загрузки, подключения к источникам данных, а также сведения о серверах ClickHouse, используемых для балансировки запросов.

Структура данных

Набор данных в контексте Visiology аналогичен набору данных в Power BI и представляет собой совокупность логически связанных таблиц. Набор данных может быть прикреплен как к одному, так и к нескольким узлам ClickHouse.

ДанКо полностью реплицирует все таблицы на все узлы, к которым прикреплен набор данных, используя механизм ReplicatedMergeTree и операцию ATTACH PARTITION. Это обеспечивает согласованность данных и надежность загрузки при работе в инкрементальном режиме.


Смотрите также

Архитектура платформы