Готовимся войти в хранилище

День 1

Всем привет! Как и всегда, первый день марафона посвящен настройкам. В этот раз они будут достаточно сложными, поэтому мы выделяем на них целых три дня — сегодняшний и два выходных, чтобы все точно успели. Но к настройкам перейдем позже. А пока давайте обсудим важный вопрос: зачем вообще нужно корпоративное хранилище данных (КХД)?

Разделим ответы на три части: КХД с технической точки зрения, КХД для вас как ответственного за анализ данных и КХД для бизнеса, в котором вы работаете.

Технический аспект

Скорее всего у вас в бизнесе присутствует ERP-система, которая умеет строить отчеты. Также, данные можно анализировать в аналитических системах, способных обрабатывать десятки миллионов записей (тот же Loginom), загружая их прямо из источников. Зачем тут еще какое-то хранилище? А вот зачем:

1. Чтобы выстроить единую бизнес-логику анализа данных. То, как данные ведутся в ERP, и то, какими они должны быть для анализа — это разные вещи. Причем тут есть целый ряд аспектов:

  • Консолидация нормативно-справочной информации (НСИ) — построение единых справочников (в т.ч. с объединением пользовательских данных, например, дополнительных справочников из Excel), реклассификация элементов (например, назначение товарам категорий, отличным от ERP);
  • Управление качеством данных — операционная деятельность бизнеса может идти гладко, но на уровне данных сведения фиксируются с ошибками (дубликаты, пересортица, незаполненные аналитики и многое другое). На уровне КХД такие проблемы очень удобно выявлять, и многие из них тут же можно исправить.
  • Обогащение данных — расчет новых аналитических признаков и показателей, отсутствующих в учетных системах (например, прогнозы и рекомендации).
  • Формирование моделей данных (витрин) — наиболее частый потребитель данных из КХД — BI-системы. 99% инструментов этого класса не рассчитаны на работу с реляционными моделями (то, как данные лежат в ERP). Подавляющее большинство BI-систем ожидает на вход модель топологии «Звезда» (то, как данные никогда не лежат в ERP) или вообще плоскую таблицу-витрину (которая, в общем случае должна формироваться как Звезда).
  • Объединение данных разных источников — не все необходимые для анализа данные лежат в ERP. Есть масса других систем (CRM, счетчики и др.), и не всегда эти данные доступны через прямое подключение к базе данных (чаще это подключение через API, или выгрузки файлов).

2. Эффективное переиспользование. На самом деле, многие из обозначенных ситуаций в первом пункте можно решить на этапе загрузки данных при сборке конкретного отчета. Однако, когда потребуется использовать те же самые данные, но в рамках других отчетов — придется создавать дубликаты процессов очистки и трансформации данных. Это приведет к тому, что процесс подготовки данных в каждом отчете будет жить своей жизнью, кратно увеличивая ваши трудозатраты на внесение изменений (внесли изменения в данные отчета по продажам — теперь надо внести и в отчет по остаткам, чтобы картина для пользователей была одинакова).

Работа без КХД

Работа без КХД

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

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

Работа с КХД

Работа с КХД

3. Снижение нагрузки на учетные системы, обеспечение быстрого отклика. В аналитике обычно происходит оперирование большими выборками данных, в т.ч. детализированными. ERP-система не скажет вам «спасибо», если вы будете запрашивать из нее детализированные данные за 2-3 года, пока щелкаете фильтрами в отчете. Более того, СУБД в основе ERP систем рассчитаны на быстрое выполнение операций над небольшими (относительно аналитических задач) объемами данных — быстрая вставка данных, быстрое выполнение JOIN-запросов по небольшому количеству строк.

Или же данные в принципе могут быть вам недоступны через подключение к базе (например, если это облачная CRM-система). Получение большого объема данных через API в момент построения отчета может затянуться на часы, и закончиться неудачей из-за превышения лимита запросов.

Переливая данные в базу, специализированную для быстрых и больших выборок (например, Clickhouse), мы получаем возможность выполнять сложные запросы без нагрузки на учетные системы.

4. Сохранение эффективности разработки при росте количества источников и данных. Со временем количество данных в вашем хранилище будет расти. Картинка ниже показывает, как в одном проекте изменилось количество таблиц за 1 год (каждый кружок — одна таблица, линии — возможные связи между ними). На основе этих данные работают десятки отчетов.

Данные в хранилище

Данные в хранилище

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

Преимущество нашего подхода к КХД в том, что его можно делать постепенно на основе текущих задач. При этом не занимаясь избыточным проектированием всей структуры данных сразу (все равно не угадаете какой она будет по факту). При этом за счет соблюдения простых правил на уровне каждой таблицы, итоговое усложнение структуры не скажется на понятности работы аналитики, и скорости выполнения задач. Ориентироваться хоть в 100 таблицах также легко, как если бы их было только 10.

Аспект пользы для аналитика

Обычно решения вроде КХД являются тяжеловесными проектами крупного бизнеса. Которые может реализовать и обслуживать только специализированная ИТ-команда. Средний бизнес же уже достаточно зрел чтобы работа с данными была одной из реальных точек роста. Но при этом не готов по бюджетам к сложным КХД проектам.

Обладание навыками построения КХД для среднего бизнеса — серьезный козырь в вашей стратегии карьерного роста. Вы можете возглавить проект перехода аналитики на новый уровень внутри текущей компании. Либо добавьте эту строку в свое резюме, чтобы улучшить свои шансы на собеседовании, и предложите план долгосрочного развития аналитики компании.

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

При этом ваши кадровые возможности многократно увеличатся (т.к. такой вид проектов будет актуален не только для крупного бизнеса). Смотрите сами:

  • Крупный бизнес — 10 000 предприятий выручка от 2 млрд. в год;
  • Средний бизнес — 21 000 предприятий с выручкой до 2 млрд. в год;
  • Малые предприятия — 230 000 предприятий с выручкой до 800 млн в год.

Работая штатным аналитиком, получить навыки по построению КХД довольно сложно — большая часть времени уходит на решение бизнес-задач, а думать об инфраструктуре просто некогда. Но зато у вас есть погруженность в бизнес компании, которой никогда не будет у внештатных разработчиков.

Внештатные разработчики имеют опыт десятков проектов организации хранилища, но при этом недостаточно погружены в бизнес клиента. Из-за этого внедрение КХД растягивается на месяцы и даже заходит в тупик — когда прежние вводные теряют актуальность, и продолжать проект нет смысла.

Мы сделали технологию построения хранилища отчуждаемой (от методик до инструментов), и перевели ее в low-code формат. Теперь вы можете объединить наш опыт со своим знанием специфики заказчика, разработать эффективные аналитические инструменты, и перейти от сборки отчетов под запрос к построению и управлению аналитической инфраструктурой компании.

Аспект пользы для бизнеса

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

  • Улучшение клиентского сервиса:
    • Разработка личных кабинетов;
    • Внедрение систем рекомендаций.
  • Улучшение маркетинговой стратегии:
    • Сегментация клиентов;
    • Специализированные подходы на основе сегментации;
    • Рекомендации допродаж по схожести профиля;
  • Создание сквозных процессов на основе данных:
  • Управление остатками:
    • Управление цепочками поставок.
  • Улучшение оперативности управления:
    • Корректировки еженедельно, а не ежеквартально;
    • Быстрое погружение в курс дела;
    • Единая точка правды;
    • Оповещения о событиях в данных.

Да, существует много других видов анализа. Но здесь приведены те, которые генерируют выручку, а чем более явно влияние решения на выручку — тем больший приоритет оно имеет.

При этом, вряд ли кто-то сформулирует вам задачу как «сделайте КХД». Скорее всего у вас запросят что-то прикладное, вроде «надо сделать личный кабинет дилера с отслеживанием остатков закупленной им продукции и рекомендованным объемом дозаказа».

И построение этого решения вокруг КХД, а не лоскутной автоматизации — ваша задача. В первую очередь для того, чтобы переиспользовать КХД для других аналитических решений, сокращая сроки и стоимость их разработки.

А может, у вас в принципе ничего не спросят, и вам самим нужно будет выдвинуть инициативу. Главное запомните — чем раньше КХД появится в вашем ландшафте — тем лучше. Каждую отдельно взятую аналитическую задачу можно решить без КХД. Но в итоге эти отдельно решенные задачи превратятся в зоопарк, который будет съедать ваше время, приводить к ошибкам и выгоранию.

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

Структура марафона

Мы разберем с вами классический путь превращения данных в аналитику на базе КХД-подхода.

Схема потока данных

Схема потока данных

На разных этапах этого потока используются разные инструменты.

КХД, по сути, представляет собой конвейер передачи данных от источника к инструменту аналитики, который попутно выполняет над ними ряд операций. В чем суть:

  • Данные извлекаются из источников «как есть» (иногда сохраняясь в отдельную область хранилища под названием «Staging», чтобы обращаться при дальнейших трансформациях к ней, а не к источнику).
  • Данные проходят трансформацию и очистку, приведение ключей к единому формату.
  • Параллельно с этим происходит проверка на наличие проблем в данных.

В целом 3 первых пункта, за небольшим исключением, разобраны на первом марафоне «Генеральная уборка данных». Поэтому если хотите узнать или вспомнить как выполнять эти операции в Loginom — вам туда. Прохождение первого марафона не является обязательным для участия в третьем — мы будем работать сразу с готовыми данными.

  • Очищенные данные из пункта 2 сохраняются в БД (это также называют слоем «Core»), где ждут сборки моделей и витрин.
  • Из данных в пункте 4 собираются витрины и модели данных, которые хранятся как отдельные таблицы и представления (View) внутри КХД. Этот слой называется «Data Mart».
  • А потом к моделям из пункта 5 подключаются аналитические инструменты (в частности BI-системы).

А еще существует не отраженный на схеме сервисный слой (Service), который содержит в себе метаданные, описывающие структуру данных, связи таблиц и многое другое. И о нем мы тоже поговорим.

А теперь, перейдем к настройкам

Развертывание библиотек:

  • Шаг 1 — Установите Loginom Community версии 7.2.3 или выше;
  • Шаг 2 — Создайте в удобном месте рабочую папку марафона (назвав ее, например «Марафон 3»);
    Создание папки

    Создание папки

  • Шаг 3 — Извлеките из архива файлы библиотек.
Библиотека файлов

Библиотека файлов

FileAPI Kit, Json kit, Silver_kit — библиотеки от компании Loginom.

Data Monetization Pack (DMP) — библиотека для организации полного цикла КХД-процессов от Евгения Стучалкина.

API Pack — библиотека коннекторов к API сервисам (базовый набор — Telegram и Яндекс.Метрика) от Евгения Стучалкина.

Руководство по регистрации аккаунта, активации гранта и развертыванию ClickHouse

1. Зайдите в облачную консоль через ссылку и войдите через «Яндекс ID».

Облачная консоль

Облачная консоль

Далее, если у вас нет (можно проверить через passport.yandex.ru) — создайте новый.

Yandex ID

Yandex ID

В итоге вы попадете в новую созданную организацию и облако:

Cозданная организация и облако

Cозданная организация и облако

У вас уже будет создан VPC.

Если вы вдруг потеряете эту вкладку, то всегда можно опять перейти по адресу.

2. Далее, вам необходимо использовать полученный ранее промокод (промокод выдается участникам марафона, которые зарегистрировались до 14 февраля 2025 года).

Если у вас уже есть платежный аккаунт, используйте сразу его. Если нет — создайте новый.

Платежные аккаунты

Платежные аккаунты

Нажмите создать.

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

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

Далее, будет необходимо привязать карту, и у вас снимется 11 рублей! При необходимости, вы можете выпустить виртуальную карту только для использования в этом курсе.

Оплата

Оплата

Далее, карта будет добавлена и показан ваш контакт.

Контакты

Контакты

Нажмите создать — появится платежный аккаунт.

Создание платежного аккаунта

Создание платежного аккаунта

На странице вашего платежного аккаунта прокрутите вниз, нажмите «Активировать промокод» и введите код, полученный от Loginom. Затем на той же странице привяжите созданное облако.

Привязанные облака и сервисы

Привязанные облака и сервисы

Привязка облака к платежному аккаунту

Привязка облака к платежному аккаунту

Оставьте значения по умолчанию и нажмите — привязать.

3. Далее, вернитесь по ссылке.

Теперь у вас будет отображаться платежный аккаунт.

Платежный аккаунт

Платежный аккаунт

Нажмите на Virtual Private Cloud и далее выберите единственный доступный вариант (у вас он будет отличаться).

Virtual Private Cloud

Virtual Private Cloud

В левой части выберите группы безопасности.

Группы безопасности

Группы безопасности

Далее, выберите единственный доступный вариант (у вас будет отличаться) и провалитесь в него.

Единственный вариант группы безопасности

Единственный вариант группы безопасности

Справа сверху нажмите кнопку редактировать. Далее, снизу нажмите во входящем трафике — добавить правило.

Добавление правила

Добавить правило

Затем — создайте следующее правило.

Cоздание правила

Нажмите сохранить, еще раз сохранить и подождите 2 минуты.

4. Вернитесь на страницу.

Нажмите Managed Service for ClickHouse и создайте первый кластер ClickHouse.

Создание первого кластера ClickHouse

Создание первого кластера ClickHouse

Здесь нужно все оставить как есть, кроме Группы безопасности.

Группы безопасности

Группы безопасности

В группах безопасности выбрать единственный вариант (у вас будет отличаться).

Выбор варианта

Выбор варианта

Получится, примерно, так.

Результат

Результат

​​​​​​В разделе хосты нажмите на карандаш.

Раздел хосты

Раздел хосты

Выберите публичный доступ и нажмите сохранить.

Публичный доступ

Публичный доступ

В разделе настройки СУБД выберите следующие варианты.

Настройки СУБД

Настройки СУБД

Запомните пароль от USER admin! С ним вы дальше будете подключаться к вашему кластеру.

Поставьте галку «доступ из DataLens».

Доступ из DataLens

Доступ из DataLens

Нажмите кнопку создать кластер и подождите 10 минут.

5.  Зайдите по ссылке.

Консоль

Консоль

Перейдите в Managed Service for ClickHouse ( у вас должна быть доступность — Alive).

Managed Service for ClickHouse

Managed Service for ClickHouse

Провалитесь в этот кластер.

Кластер

Кластер

И зайдите в раздел хосты.

Раздел хосты

Раздел хосты

Наведите мышку справа от адреса rc1d и там появится значок копировать. Копируйте адрес вашего кластера (например, у меня был rc1d-o97evdsc0usrjmfl.mdb.yandexcloud.net — у вас будет похожий свой вариант).

Сохраните этот адрес и используйте в дальнейшем для подключения!

Настройка подключения к Clickhouse

Откройте пакет Марафон 3\Data Monetization Pack\Settings\Clickhouse Kit\Clickhouse Connections.lgp.

Перейдите в раздел настройки подключений.

Настройка подключений

Настройка подключений

Вам нужно настроить эти 2 подключения. В зависимости от того, развернут Clickhouse в облаке или на вашем сервере, действыйте по вариантам а) или б) соответственно.

а) Для учебного Clickhouse в Yandex Cloud

Если вы пользуетесь учебным Clickhouse от Yandex Cloud, то получите адрес подключения после создания кластера (самый конец инструкции).Он будет иметь вид rc1a-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.mdb.yandexcloud.net.

В строке подключения нужно будет указать порт 9440. Итого, строка подключения будет такой:

  • rc1a-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.mdb.yandexcloud.net:9440.

Логин — admin, и пароль — тот, который вы указали при создании кластера.

Также, скачайте сертификат. Добавьте его в Сертификат СА.

Настройка SSL

Настройка SSL

Настроенный экран подключения должен выглядеть так:

Параметры подключения

Параметры подключения

Подключение должно успешно тестироваться.

Далее, заходим в настройки REST-подключения. В качестве URL-сервиса надо указать:

URL-сервис

Указываем стандартный логин и пароль. И обязательно ставим галочку — «Игнорировать ошибки SSL сертификата». Подключение должно успешно тестироваться.

Пропуск проверки ошибки SSL-сертификата

Пропуск проверки ошибки SSL-сертификата

б) Самостоятельно разверните Clickhouse — где вам удобно.

Или попросите сделать это ваших системных администраторов. При таком формате подключения вам будет нужно использовать другие порты (если подключаетесь без SSL-сертификата):

  • Для подключения к БД будет использоваться строка вида: 45.141.xxx.xxx:9000:default.
  • Для подключение к REST-сервису: http://45.141.xxx.xxx:8123/.
После настройки, сохраните пакет и закройте его.

Не используйте для марафона сервера Clickhouse, на которые завязаны рабочие процессы вашей компании, или если там уже используется полноценная редакция DMP!

Настройка Telegram-бота

Наш набор компонентов умеет отправлять Telegram-сообщения, которые можно использовать для мониторинга и оповещений. Этот функционал будет использован на марафоне, поэтому нужно создать бота, который будет это делать.

Найдите в Telegram бота BotFather (официальный бот Telegram для создания своих ботов). Выполните команду /newbot, и следуйте инструкции.

Telegram бот BotFather

Telegram бот BotFather

Результатом станет создание бота, и предоставление токена доступа к нему: (12345678:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).

Откройте файл Марафон 3\API Pack\Telegram\Content\Basic_Settings.txt, и укажите токен вашего бота в URL подключения к сервису. Сохраните файл. Обратите внимание, ваш личный ИД будет без знака минус. С минусом идут только ИД групп.

Также, нам потребуется узнать свой идентификатор пользователя, чтобы получать сообщения от бота. Для этого можно добавить в контакты бота @myidbot и написать ему команду /getid.

Команда «/getid»

Команда «/getid»

Его можно также добавлять в группы и выполнять команду /getgroupid, чтобы получить идентификатор группы. После этого бота можно удалять из группы. Полученный идентификатор пропишите в файле Alerts_channels.txt — сохраните файл.

Найдите вашего бота в контактах и запустите его, чтобы получать сообщения.

Бот в контактах

Проверка настроек

Откройте пакет Марафон 3\Data Monetization Pack\License check.lgp. У вас должны успешно активироваться 3 подмодели из желтой зоны, с выводом подтверждений что все работает. А в случае с отправкой сообщения в Телеграм, вы должны получить тестовое сообщение от вашего бота.

Активация подмоделей

Активация подмоделей

На этом все. Если что-то не получается, пишите в чат марафона, и обязательно прикладывайте скриншоты.

P.S. Вариант настройки Clickhouse в Яндекс.Облаке самостоятельно (в рамках демо-периода на общих основаниях). Документация.

Скачайте и установите Loginom Community Edition, если он еще не установлен.

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться