Номинируйте кейсы на Workspace Digital Awards 2026. Прием заявок до 15 декабря по льготной цене, успейте принять участие!
Назад
Веб-разработка

Интеграция Grist и Metabase: построение DWH на открытых решениях

718 
 

Что такое DWH

Data Warehouse — это специализированная хранилище данных, предназначенная для подготовки управленческой отчётности и аналитики. Наша DWH агрегирует данные из разных источников и позволяет руководителям принимать обоснованные решения.

В DWH хранятся показатели доходов и расходов, структурированные и в основном уже готовые к использованию — данные не нуждаются в крупных трансформациях перед анализом.

Компоненты системы

Grist

Это гибрид таблицы и простого интерфейса вида электронных таблиц, но с теми возможностями, что есть у реляционной базы данных:

  • В столбцах задаётся тип данных и имя, можно использовать формулы, которые автоматически пересчитываются.
  • Поддерживается синтаксис Python и библиотека функций наподобие Excel. Основой служит SQLite, что позволяет легко читать файлы Grist любыми инструментами, поддерживающими SQLite.
  • Можно экспортировать/импортировать данные, работать с Google Sheets / Excel.
  • Есть гибкая система прав доступа: разделение прав по строкам, столбцам, таблицам; атрибуты пользователя; интеграция с системой аутентификации, например через SSO.

Почему именно Grist

Наши требования были такие:

  • Нужен редактор таблиц, требующий минимальных внешних доработок.
  • Возможность гибко настраивать доступы и права, фильтровать видимость строк/столбцов в зависимости от роли пользователя.
  • Быстрое тестирование гипотез — возможность оперативно завести таблицу, заполнить, проанализировать.

Grist удовлетворил этим требованиям: формулы, классные интерфейсы, шаблоны, API, Python-скрипты и т. д.

Как используется Grist

Вот несколько примеров из нашей практики (с вымышленными данными):

  • У нас есть рабочие пространства, которые объединяют документы по проектам или отделам. Можно делиться документами с разными ролями (владелец, редактор, наблюдатель).
  • В одном из документов, например, таблице «Расходы», менеджеры видят только свои строки, а бухгалтера — всё.
  • Для этого мы создаём вспомогательную таблицу «Команда», где прописаны пользователи и их роли, и на основе этого настраиваем правила доступа на уровне строк и столбцов.
  • Также в колонке «Ответственный» автоматически проставляется имя пользователя, создавшего или изменившего запись, при наличии новой записи — благодаря формуле-триггеру.

Airflow, Grist API и тактирование истории данных

Используем планировщик задач (Airflow) для автоматизации выгрузок из Grist.


Разместите
тендер бесплатно

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.

Заполнить заявку 13201 тендер
проведено за восемь лет работы нашего сайта.


Два типа задач:

  1. Частая (например, каждый час) — синхронизация таблицы целиком.
  2. Раз в сутки — сохранение снимка таблицы (snapshot / DIM-таблица), чтобы иметь историю, как данные выглядели в разные дни. Эти снимки сохраняются в PostgreSQL.

Таким образом, хранится и актуальная версия, и история изменений, что позволяет анализировать динамику.

Метабаза (Metabase) и взаимодействие с другими компонентами

Metabase используется как платформа визуализации и построения отчётов. Возможности:

  • Подключение к базе данных (PostgreSQL и др.).
  • Создание SQL-запросов и визуальных отчётов, фильтров.
  • Возможность настраивать уровни доступа.
Интеграция Grist и Metabase: построение DWH на открытых решениях

Мы добавили следующие фичи

  • Кнопка «Обновить» — чтобы сразу получать свежие данные, не дожидаясь расписания. Данная кнопка инициирует задачу (dag) в Airflow через API.
  • Actions в Metabase — механизм, позволяющий привязать SQL-запрос к кнопке на дашборде. Например, по нажатию выполняется запрос, триггерящий обновление данных.
  • Используется расширение psql-http — позволяет из PostgreSQL делать HTTP-запросы (например, к API Airflow), что помогает делегировать часть логики из интерфейса дашборда.

Как создаётся кнопка на дашборде

  1. В настройках подключения БД включается разрешение на «Actions».
  2. На дашборде выбираем режим редактирования, добавляем кнопку действия.
  3. Назначаем, к какой модели она относится, задаём SQL-запрос, который будет выполняться при нажатии.
  4. Если задача — не просто манипулировать данными, а вызвать внешнюю функцию или API, можно обойти ограничения (например, что Actions поддерживают только certain типы запросов) через конструкции типа CTE и запросов, которые ничего не изменяют, но вызывают нужную функцию.

Итоги и преимущества

  • Доступ к управленческому учёту без необходимости постоянно обращаться к аналитикам или разработчикам.
  • Возможность видеть историю изменений и сравнивать периоды.
  • Уровень прозрачности и контроля выше, чем просто статичные отчёты.
  • Пользователи могут самостоятельно запускать обновления данных.
  • Сокрашение времени на проверку состояния бизнеса.

Вывод

Интеграция Grist + Airflow + PostgreSQL + Metabase даёт гибкое и мощное решение для DWH и визуальной аналитики. Работа с данными становится проще, быстрее, прозрачнее. Такой подход позволяет оперативно получать инсайты, проверять гипотезы и управлять бизнесом в режиме, близком к реальному.

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.




718

Лучшие статьи

Поделиться: 0 0 0
Лайки за кейсы:  197 Подписчики:  5