Как построить аналитическую инфраструктуру уровня PRO своими руками или с небольшой командой

YOUTUBE · 27.11.2025 03:57

Ключевые темы и таймкоды

Введение и цели вебинара

13:29
  • Вебинар посвящен построению аналитических платформ данных силами небольшой команды.
  • Цель - использовать преимущества облачных подходов без значительных затрат времени и бюджета.
  • Спикер: Алексей Белозерский, архитектор по большим данным в VK Cloud.

Аудитория вебинара

14:33
  • Вебинар полезен аналитикам, дата-инженерам и руководителям команд.
  • Аналитики и бизнес страдают от медленной работы с данными.
  • Руководители команд могут использовать легковесные подходы для развития хранилищ данных.

Структура вебинара

16:13
  • Вебинар состоит из двух частей: рассказ истории и воркшоп.
  • Задачи: выбор сервисов, архитектура платформы данных, организация команды.
  • Вопросы и комментарии приветствуются.

Аналитика и её цели

18:32
  • Аналитика помогает бизнесу принимать решения на основе данных.
  • Цель аналитика - помочь бизнесу, повышая доверие и качество данных.
  • Аналитика делится на уровни сложности, от описательной до прогнозной.

Сложность и ценность аналитики

22:34
  • Рост сложности аналитики увеличивает её ценность для бизнеса.
  • Важно минимизировать усилия и время на разработку новых сервисов.
  • Фокус на бизнес-части, а не на инфраструктуре.

Трудности и решения

25:11
  • Основные трудности: нехватка экспертизы, плохо структурированные данные, большие бюджеты и сроки.
  • Важно сократить сложность и цену новых фичей, а также проводить больше времени с бизнесом для понимания ценности.
  • Накопление данных и работа с ними приносят большую пользу компании, но нужно четко объяснять её в конкретных проектах.

Введение в задачи команды по обработке данных

27:37
  • Работа с инфраструктурой и сервисами на платформе.
  • Постоянное требование новых данных и анализов от бизнеса.
  • Переход от средней к более сложной платформе данных.

Проблемы и успехи на текущем этапе

28:32
  • Аналитики занимаются рутинными задачами.
  • Проблемы с автоматизацией и консолидацией данных.
  • Достигнут первый успех: единообразие метрик.

Структура платформы данных

29:30
  • Три основных компонента: выгрузка данных, хранение и презентация.
  • Команда из 10-15 человек и единая база данных.
  • Использование нескольких виртуальных машин для сервисов.

Размер команды данных

31:24
  • 70% команд данных состоят из 10-15 человек.
  • Даже в крупных компаниях команды воспринимают себя маленькими.
  • Важность работы с данными в небольших и крупных компаниях.

Рост потребностей в данных

33:13
  • Бизнес активно требует данные.
  • Рост числа преобразований и ответственности.
  • Команда сталкивается с нагрузкой и рутиной.

Пример проекта в Google Cloud

35:10
  • Проект длился три месяца.
  • Взрывной рост потребностей в данных.
  • Данные стали критически важными для принятия решений.

Итоги и развитие платформы

37:02
  • Команда успешно прошла этап взрывного роста.
  • Платформа продолжает развиваться.

Корпоративные подходы к данным

37:13
  • Компании часто строят или улучшают хранилища данных DWH.
  • Построение DWH занимает минимум год и требует значительных усилий.
  • Многие компании предпочитают оставлять текущие системы, чтобы избежать долгосрочных инвестиций.

Аналогия с пельменями

38:12
  • DWH можно сравнить с кухней, где данные — это пельмени.
  • Бизнес ожидает готовые данные, а не сырые пельмени.
  • DWH доводит данные до состояния, готового к использованию.

Различные подходы к данным

40:08
  • DWH, Lakehouse и другие системы решают одну задачу.
  • Для бизнеса важен результат, а не конкретные технологии.
  • Цель всех систем — обновить и доставить данные.

Доставка данных и качество

42:05
  • Системы доставки данных включают отчеты и алерты.
  • Важно обеспечить качество данных и их доступность.
  • Необходимо каталогизировать и информировать пользователей о данных.

Сервисы и платформы данных

43:23
  • Обсуждаются различные сервисы и подходы для улучшения данных.
  • Важно понимать, какие системы работают на благо платформы данных.

Введение в сервисы и интеграции

43:38
  • Обсуждение сервисов и интеграций, используемых в работе.
  • Важность хранилища данных, предпочтительно базы данных.
  • Фокус на аналитику, а не на инфраструктуру.

Требования к системе хранения данных

44:06
  • Антишный ESQL для удобства аналитиков.
  • MPP подход и колоночное хранение данных.
  • Наличие транзакций для упрощения кода.
  • Масштабируемость и совместимость с другими системами.
  • Безопасность и отказоустойчивость.

Современные требования и решения

47:00
  • Необходимость развитых SDK для подключения к данным.
  • Популярные решения в России: Greenplum и его вариации.
  • Преимущества и недостатки Greenplum, включая высокую стоимость и требовательность к железу.

Альтернативные решения и их особенности

49:34
  • Использование Cloudera и Spark в сочетании с Greenplum.
  • Spark как новое поколение решений, ориентированное на нексус-ген.
  • Важность консистентного обновления данных в хранилище.

Примеры решений и их особенности

52:24
  • Примеры бесплатных опенсорсных решений, таких как SuperSet.
  • Новые функции в SuperSet, включая кросс-фильтрацию и русификацию.
  • Поддержка и развитие вендерских решений.

Архитектура DWH

53:50
  • Архитектура DWH существует уже более 35-40 лет.
  • Включает три слоя: сырые данные, промежуточные данные и витрина данных.
  • Важно правильно организовать данные на каждом уровне для эффективной работы.

Переход к воркшопу

55:45
  • Переход к демонстрации платформы данных в облаке.
  • Примеры кода и репозиториев будут доступны в GitHub.
  • Вопросы можно задавать в телеграм-канале "Данные на стероидах".

Использование Greenplum и Airflow

56:39
  • Greenplum развернут в облаке и интегрирован с другими сервисами.
  • Airflow используется для оркестрации задач и управления данными.
  • Greenplum в облаке упрощает установку и эксплуатацию кластера.

Организация репозиториев

58:28
  • Airflow и Debezium организованы в отдельные репозитории.
  • Это позволяет управлять изменениями из одного репозитория.
  • Сегодня будет показано, как управлять изменениями и улучшать проект.

Основные сущности Debezium

1:00:43
  • Debezium используется для трансформации данных.
  • Модель Debezium выполняет запросы и преобразует данные.
  • Debezium работает с данными, которые уже загружены в хранилище.

Пример модели Debezium

1:01:43
  • Пример простой модели Debezium включает SQL-запрос.
  • Debezium позволяет удобно работать с данными, загруженными в Greenplum.
  • Модель использует сущность "source" для указания источника данных.

Использование Airflow и Greenplum

1:02:41
  • Airflow и Greenplum интегрированы для загрузки данных.
  • Debezium и Greenplum работают вместе для выполнения задач без написания кода.
  • Это облегчает работу аналитиков и улучшает производительность.

Высокоуровневые преобразования

1:05:32
  • Модель первого слоя может быть использована для более высокоуровневых преобразований.
  • Debezium позволяет учитывать зависимости между моделями.
  • Это помогает управлять взаимосвязями между датасетами и загружать данные одной командой.

Автоматизация процессов с помощью Airflow

1:06:52
  • Добавление нового слоя и вопрос автоматизации.
  • Использование операторов в Airflow для выполнения задач.
  • Пример использования операторов run и test.

Запуск моделей с консоли

1:07:50
  • Установка пакета Debezium и запуск моделей через консоль.
  • Airflow как функциональный аналог консольных команд.
  • Запуск моделей в определенном порядке и параллельное выполнение.

Тестирование данных

1:09:37
  • Объявление тестов в YAML-файлах.
  • Описание моделей и колонок для тестирования.
  • Пример выполнения тестов и их успешное прохождение.

Организация потока данных

1:11:26
  • Последовательность выполнения задач: загрузка данных, тестирование.
  • Проверка консистентности данных и предотвращение ошибок.
  • Простота и декларативность кода на Python.

Применение Airflow для сложных задач

1:13:24
  • Пример работы с данными Ethereum.
  • Использование Airflow для загрузки и обработки данных.
  • Создание и настройка моделей для работы с большими объемами данных.

Инкрементальное обновление данных

1:17:29
  • Инкрементальное обновление данных для оптимизации запросов.
  • Пример модели с инкрементальным режимом.
  • Запуск моделей в Airflow и наблюдение за их работой.

Развитие стека

1:19:31
  • Запуск моделей в три потока.
  • Инкрементальная версия модели не загружает данные при отсутствии изменений.
  • Подготовка кода для дальнейшего развития стека.

Усложнение моделей и запуск дага

1:20:12
  • Появились новые модели и зависимости, включая инкрементальную модель для токен-трансферов.
  • Дак организован в логике, что позволяет запускать старые даги для новых моделей.
  • Разделение логики на крупномасштабные и мелкомасштабные сборки ускоряет разработку.

Добавление тестов и описание моделей

1:21:05
  • Добавлены тесты для более полного описания моделей, включая метаинформацию и дискрипшен.
  • Описаны модели и добавлены колонки для токен-трансферов.

Генерация тестов и использование пакетов

1:22:06
  • Генерация тестов для проверки данных о криптовалютах, включая проверку хэшей.
  • Использование дженерик-тестов для проверки различных полей в таблицах.
  • Применение пакетов расширений для сложных тестов, таких как релейшн-ши-пуэр тесты.

Дебаг и визуализация моделей

1:25:44
  • Использование сервиса Debuti Docs для визуализации моделей и их связей.
  • Возможность графически отображать источники, модели и их зависимости.
  • Визуализация тестов и их автогенерация из YAML.

Экспожер и дашборды

1:28:31
  • Экспожер как сущность, выходящая за пределы Debuti, но важная для понимания данных.
  • Описание дашбордов и их зависимостей в YAML.
  • Возможность провалиться в суперсет для детального анализа.

Управление данными и декомпозиция

1:30:12
  • Возможность просмотра данных, на которые ссылается модель, прямо из интерфейса.
  • Декомпозиция данных на крупные и мелкие блоки для удобства управления.
  • Держание в голове полного графа зависимостей.

Запуск моделей с учетом графа зависимостей

1:31:06
  • Возможность запуска моделей с учетом их предков и потомков.
  • Обновление всего пайплайна данных для конкретного отчета одной командой.
  • Продвинутое управление данными для экономии времени.

Тестирование и окружение в Debezium

1:32:05
  • Возможность создания тестового окружения в Debezium.
  • Разделение схем для разработки и производства.
  • Настройка окружения для различных задач и этапов разработки.

Организация пайплайнов и тестирование

1:34:41
  • Организация пайплайнов в Debezium для тестирования на разных этапах.
  • Возможность клонирования схем и переключения между окружениями.
  • Удобство и скорость работы с Debezium по сравнению с другими инструментами.

Параметризация моделей и шардинг

1:37:23
  • Параметризация моделей для шардинга запросов.
  • Использование параметров для управления памятью и грантами.
  • Возможность настройки сложных систем через конфиг.

Заключение и цели воркшопа

1:39:44
  • Создание легковесного стека для решения типовых проблем работы с данными.
  • Возможность использования силами команды аналитиков.
  • Ускорение и упрощение работы с данными, освобождение времени для аналитики.

Организация хранилищ данных и команд

1:41:32
  • Запуск крупноузловых сборок в Aeroflow для управления данными.
  • Возможность спускаться до деталей при необходимости.
  • Организация процесса работы с данными и командами.

Паттерны использования данных

1:42:08
  • Бизнес-контекст развивается внутри папок и тегов, а даги используются реже.
  • Каждый бизнес-юнит получает полномочия для использования собственного набора ассетов.
  • Возможность собирать, проверять и показывать данные другим бизнес-юнитам.

Организация команды

1:42:59
  • Бизнес-юниты получают зоны в репозитории для развития своего контекста.
  • Фиксированный даг проверяет актуальность связей внутри бизнес-контекста.
  • Ответственные витрины данных требуют более пристального внимания.

Два уровня вовлеченности

1:43:53
  • Команда делится на два уровня: зона ордер и зона хаоса.
  • Синие аналитики и дата-инженеры следят за ответственными данными.
  • Бизнес-юниты развивают свои контексты, не выходя за пределы песочницы.

Процесс ревью

1:44:48
  • Бизнес-юнит делает новую версию, дата-инженер проверяет и одобряет.
  • Важные изменения проходят более пристальный разбор.
  • Каждый бизнес-юнит имеет свою папку в репозитории и схему в базе данных.

Вопросы и ответы

1:46:21
  • Гибридное облако: данные хранятся в облаке, обрабатываются на своем железе.
  • Хранение данных в облаке и их обработка на своем оборудовании.
  • Использование менеджера сервисов для управления данными.

Тестирование и разработка

1:48:16
  • Тестирование стейтфола требует отдельного подхода.
  • Использование нескольких зон для тестирования и упрощения стейтфола.
  • Возможность использования нескольких ETL-систем для разных задач.

Использование различных инструментов

1:50:13
  • Использование суперсетов и редашей в одном проекте.
  • Возможность использования разных инструментов для разных отделов.
  • Поддержка и лицензирование различных инструментов.

Python в Debuti

1:52:16
  • Возможность использования Python в Debuti.
  • Перспективы интеграции Python в Debuti.
  • Возможность добавления новых функций и сервисов в Debuti.

Реестр разрешенных программных продуктов

1:53:15
  • Debuti распространяется по свободной лицензии.
  • Возможность русифицированной версии Debuti.
  • Необходимость регистрации библиотеки российским вендором.

Заключение

1:54:30
  • Благодарность за участие.
  • Надежда на полезность информации для аналитиков и профессионалов в области данных.
  • Пожелания легких дагов и чистых данных.