Всем привет! Как и всегда, первый день марафона посвящен настройкам. В этот раз они будут достаточно сложными, поэтому мы выделяем на них целых три дня — сегодняшний и два выходных, чтобы все точно успели. Но к настройкам перейдем позже. А пока давайте обсудим важный вопрос: зачем вообще нужно корпоративное хранилище данных (КХД)?
Разделим ответы на три части: КХД с технической точки зрения, КХД для вас как ответственного за анализ данных и КХД для бизнеса, в котором вы работаете.
Скорее всего у вас в бизнесе присутствует ERP-система, которая умеет строить отчеты. Также, данные можно анализировать в аналитических системах, способных обрабатывать десятки миллионов записей (тот же Loginom), загружая их прямо из источников. Зачем тут еще какое-то хранилище? А вот зачем:
1. Чтобы выстроить единую бизнес-логику анализа данных. То, как данные ведутся в ERP, и то, какими они должны быть для анализа — это разные вещи. Причем тут есть целый ряд аспектов:
2. Эффективное переиспользование. На самом деле, многие из обозначенных ситуаций в первом пункте можно решить на этапе загрузки данных при сборке конкретного отчета. Однако, когда потребуется использовать те же самые данные, но в рамках других отчетов — придется создавать дубликаты процессов очистки и трансформации данных. Это приведет к тому, что процесс подготовки данных в каждом отчете будет жить своей жизнью, кратно увеличивая ваши трудозатраты на внесение изменений (внесли изменения в данные отчета по продажам — теперь надо внести и в отчет по остаткам, чтобы картина для пользователей была одинакова).
Работа без КХД
Помимо этого, процесс очистки данных может быть достаточно долгим и ресурсоемким. И его запуск в каждом отдельно взятом отчете будет сказываться на удобстве использования аналитической системы.
Таким образом, вам будет намного проще работать, когда очищенные данные сохранены в готовом виде, и могут быть использованы централизовано для любого отчета или аналитического инструмента.
Работа с КХД
3. Снижение нагрузки на учетные системы, обеспечение быстрого отклика. В аналитике обычно происходит оперирование большими выборками данных, в т.ч. детализированными. ERP-система не скажет вам «спасибо», если вы будете запрашивать из нее детализированные данные за 2-3 года, пока щелкаете фильтрами в отчете. Более того, СУБД в основе ERP систем рассчитаны на быстрое выполнение операций над небольшими (относительно аналитических задач) объемами данных — быстрая вставка данных, быстрое выполнение JOIN-запросов по небольшому количеству строк.
Или же данные в принципе могут быть вам недоступны через подключение к базе (например, если это облачная CRM-система). Получение большого объема данных через API в момент построения отчета может затянуться на часы, и закончиться неудачей из-за превышения лимита запросов.
Переливая данные в базу, специализированную для быстрых и больших выборок (например, Clickhouse), мы получаем возможность выполнять сложные запросы без нагрузки на учетные системы.
4. Сохранение эффективности разработки при росте количества источников и данных. Со временем количество данных в вашем хранилище будет расти. Картинка ниже показывает, как в одном проекте изменилось количество таблиц за 1 год (каждый кружок — одна таблица, линии — возможные связи между ними). На основе этих данные работают десятки отчетов.
Данные в хранилище
Управлять такой структурой интуитивно просто невозможно. Точно так же невозможно вручную документировать все особенности связей данных и актуализировать их.
Преимущество нашего подхода к КХД в том, что его можно делать постепенно на основе текущих задач. При этом не занимаясь избыточным проектированием всей структуры данных сразу (все равно не угадаете какой она будет по факту). При этом за счет соблюдения простых правил на уровне каждой таблицы, итоговое усложнение структуры не скажется на понятности работы аналитики, и скорости выполнения задач. Ориентироваться хоть в 100 таблицах также легко, как если бы их было только 10.
Обычно решения вроде КХД являются тяжеловесными проектами крупного бизнеса. Которые может реализовать и обслуживать только специализированная ИТ-команда. Средний бизнес же уже достаточно зрел чтобы работа с данными была одной из реальных точек роста. Но при этом не готов по бюджетам к сложным КХД проектам.
Обладание навыками построения КХД для среднего бизнеса — серьезный козырь в вашей стратегии карьерного роста. Вы можете возглавить проект перехода аналитики на новый уровень внутри текущей компании. Либо добавьте эту строку в свое резюме, чтобы улучшить свои шансы на собеседовании, и предложите план долгосрочного развития аналитики компании.
Используя предложенные нами подходы и инструменты, вы сможете предложить компании адекватный и функциональный путь развития, не перегрузив при этом себя чрезмерными сложностями.
При этом ваши кадровые возможности многократно увеличатся (т.к. такой вид проектов будет актуален не только для крупного бизнеса). Смотрите сами:
Работая штатным аналитиком, получить навыки по построению КХД довольно сложно — большая часть времени уходит на решение бизнес-задач, а думать об инфраструктуре просто некогда. Но зато у вас есть погруженность в бизнес компании, которой никогда не будет у внештатных разработчиков.
Внештатные разработчики имеют опыт десятков проектов организации хранилища, но при этом недостаточно погружены в бизнес клиента. Из-за этого внедрение КХД растягивается на месяцы и даже заходит в тупик — когда прежние вводные теряют актуальность, и продолжать проект нет смысла.
Мы сделали технологию построения хранилища отчуждаемой (от методик до инструментов), и перевели ее в low-code формат. Теперь вы можете объединить наш опыт со своим знанием специфики заказчика, разработать эффективные аналитические инструменты, и перейти от сборки отчетов под запрос к построению и управлению аналитической инфраструктурой компании.
Выгода для компании выражается в 2-х словах: монетизация данных. Под монетизацией данных подразумевается выстраивание экономически эффективных процессов с использованием данных компании. Это может быть:
Да, существует много других видов анализа. Но здесь приведены те, которые генерируют выручку, а чем более явно влияние решения на выручку — тем больший приоритет оно имеет.
При этом, вряд ли кто-то сформулирует вам задачу как «сделайте КХД». Скорее всего у вас запросят что-то прикладное, вроде «надо сделать личный кабинет дилера с отслеживанием остатков закупленной им продукции и рекомендованным объемом дозаказа».
И построение этого решения вокруг КХД, а не лоскутной автоматизации — ваша задача. В первую очередь для того, чтобы переиспользовать КХД для других аналитических решений, сокращая сроки и стоимость их разработки.
А может, у вас в принципе ничего не спросят, и вам самим нужно будет выдвинуть инициативу. Главное запомните — чем раньше КХД появится в вашем ландшафте — тем лучше. Каждую отдельно взятую аналитическую задачу можно решить без КХД. Но в итоге эти отдельно решенные задачи превратятся в зоопарк, который будет съедать ваше время, приводить к ошибкам и выгоранию.
Подходы, представленные в марафоне, помогут начать создание инфраструктуры КХД до ее официального утверждения руководством. Это позволит избежать лишней работы по переносу разрозненных решений на единую платформу и эффективно представить предложенные идеи.
Мы разберем с вами классический путь превращения данных в аналитику на базе КХД-подхода.
Схема потока данных
На разных этапах этого потока используются разные инструменты.
КХД, по сути, представляет собой конвейер передачи данных от источника к инструменту аналитики, который попутно выполняет над ними ряд операций. В чем суть:
В целом 3 первых пункта, за небольшим исключением, разобраны на первом марафоне «Генеральная уборка данных». Поэтому если хотите узнать или вспомнить как выполнять эти операции в Loginom — вам туда. Прохождение первого марафона не является обязательным для участия в третьем — мы будем работать сразу с готовыми данными.
А еще существует не отраженный на схеме сервисный слой (Service), который содержит в себе метаданные, описывающие структуру данных, связи таблиц и многое другое. И о нем мы тоже поговорим.
Развертывание библиотек:
Создание папки
Библиотека файлов
FileAPI Kit, Json kit, Silver_kit — библиотеки от компании Loginom.
Data Monetization Pack (DMP) — библиотека для организации полного цикла КХД-процессов от Евгения Стучалкина.
API Pack — библиотека коннекторов к API сервисам (базовый набор — Telegram и Яндекс.Метрика) от Евгения Стучалкина.
1. Зайдите в облачную консоль через ссылку и войдите через «Яндекс ID».
Облачная консоль
Далее, если у вас нет (можно проверить через passport.yandex.ru) — создайте новый.
Yandex ID
В итоге вы попадете в новую созданную организацию и облако:
Cозданная организация и облако
У вас уже будет создан VPC.
Если вы вдруг потеряете эту вкладку, то всегда можно опять перейти по адресу.
2. Далее, вам необходимо использовать полученный ранее промокод (промокод выдается участникам марафона, которые зарегистрировались до 14 февраля 2025 года).
Если у вас уже есть платежный аккаунт, используйте сразу его. Если нет — создайте новый.
Платежные аккаунты
Нажмите создать.
Общая информация
Далее, будет необходимо привязать карту, и у вас снимется 11 рублей! При необходимости, вы можете выпустить виртуальную карту только для использования в этом курсе.
Оплата
Далее, карта будет добавлена и показан ваш контакт.
Контакты
Нажмите создать — появится платежный аккаунт.
Создание платежного аккаунта
На странице вашего платежного аккаунта прокрутите вниз, нажмите «Активировать промокод» и введите код, полученный от Loginom. Затем на той же странице привяжите созданное облако.
Привязанные облака и сервисы
Привязка облака к платежному аккаунту
Оставьте значения по умолчанию и нажмите — привязать.
3. Далее, вернитесь по ссылке.
Теперь у вас будет отображаться платежный аккаунт.
Платежный аккаунт
Нажмите на Virtual Private Cloud и далее выберите единственный доступный вариант (у вас он будет отличаться).
Virtual Private Cloud
В левой части выберите группы безопасности.
Группы безопасности
Далее, выберите единственный доступный вариант (у вас будет отличаться) и провалитесь в него.
Единственный вариант группы безопасности
Справа сверху нажмите кнопку редактировать. Далее, снизу нажмите во входящем трафике — добавить правило.
Добавить правило
Затем — создайте следующее правило.
Нажмите сохранить, еще раз сохранить и подождите 2 минуты.
4. Вернитесь на страницу.
Нажмите Managed Service for ClickHouse и создайте первый кластер ClickHouse.
Создание первого кластера ClickHouse
Здесь нужно все оставить как есть, кроме Группы безопасности.
Группы безопасности
В группах безопасности выбрать единственный вариант (у вас будет отличаться).
Выбор варианта
Получится, примерно, так.
Результат
В разделе хосты нажмите на карандаш.
Раздел хосты
Выберите публичный доступ и нажмите сохранить.
Публичный доступ
В разделе настройки СУБД выберите следующие варианты.
Настройки СУБД
Запомните пароль от USER admin! С ним вы дальше будете подключаться к вашему кластеру.
Поставьте галку «доступ из DataLens».
Доступ из DataLens
Нажмите кнопку создать кластер и подождите 10 минут.
5. Зайдите по ссылке.
Консоль
Перейдите в Managed Service for ClickHouse ( у вас должна быть доступность — Alive).
Managed Service for ClickHouse
Провалитесь в этот кластер.
Кластер
И зайдите в раздел хосты.
Раздел хосты
Наведите мышку справа от адреса rc1d и там появится значок копировать. Копируйте адрес вашего кластера (например, у меня был rc1d-o97evdsc0usrjmfl.mdb.yandexcloud.net — у вас будет похожий свой вариант).
Сохраните этот адрес и используйте в дальнейшем для подключения!
Откройте пакет Марафон 3\Data Monetization Pack\Settings\Clickhouse Kit\Clickhouse Connections.lgp.
Перейдите в раздел настройки подключений.
Настройка подключений
Вам нужно настроить эти 2 подключения. В зависимости от того, развернут Clickhouse в облаке или на вашем сервере, действыйте по вариантам а) или б) соответственно.
а) Для учебного Clickhouse в Yandex Cloud
Если вы пользуетесь учебным Clickhouse от Yandex Cloud, то получите адрес подключения после создания кластера (самый конец инструкции).Он будет иметь вид rc1a-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.mdb.yandexcloud.net.
В строке подключения нужно будет указать порт 9440. Итого, строка подключения будет такой:
Логин — admin, и пароль — тот, который вы указали при создании кластера.
Также, скачайте сертификат. Добавьте его в Сертификат СА.
Настройка SSL
Настроенный экран подключения должен выглядеть так:
Параметры подключения
Подключение должно успешно тестироваться.
Далее, заходим в настройки REST-подключения. В качестве URL-сервиса надо указать:
Указываем стандартный логин и пароль. И обязательно ставим галочку — «Игнорировать ошибки SSL сертификата». Подключение должно успешно тестироваться.
Пропуск проверки ошибки SSL-сертификата
б) Самостоятельно разверните Clickhouse — где вам удобно.
Или попросите сделать это ваших системных администраторов. При таком формате подключения вам будет нужно использовать другие порты (если подключаетесь без SSL-сертификата):
После настройки, сохраните пакет и закройте его.
Не используйте для марафона сервера Clickhouse, на которые завязаны рабочие процессы вашей компании, или если там уже используется полноценная редакция DMP!
Наш набор компонентов умеет отправлять Telegram-сообщения, которые можно использовать для мониторинга и оповещений. Этот функционал будет использован на марафоне, поэтому нужно создать бота, который будет это делать.
Найдите в Telegram бота BotFather (официальный бот Telegram для создания своих ботов). Выполните команду /newbot, и следуйте инструкции.
Telegram бот BotFather
Результатом станет создание бота, и предоставление токена доступа к нему: (12345678:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).
Откройте файл Марафон 3\API Pack\Telegram\Content\Basic_Settings.txt, и укажите токен вашего бота в URL подключения к сервису. Сохраните файл. Обратите внимание, ваш личный ИД будет без знака минус. С минусом идут только ИД групп.
Также, нам потребуется узнать свой идентификатор пользователя, чтобы получать сообщения от бота. Для этого можно добавить в контакты бота @myidbot и написать ему команду /getid.
Команда «/getid»
Его можно также добавлять в группы и выполнять команду /getgroupid, чтобы получить идентификатор группы. После этого бота можно удалять из группы. Полученный идентификатор пропишите в файле Alerts_channels.txt — сохраните файл.
Найдите вашего бота в контактах и запустите его, чтобы получать сообщения.
Откройте пакет Марафон 3\Data Monetization Pack\License check.lgp. У вас должны успешно активироваться 3 подмодели из желтой зоны, с выводом подтверждений что все работает. А в случае с отправкой сообщения в Телеграм, вы должны получить тестовое сообщение от вашего бота.
Активация подмоделей
На этом все. Если что-то не получается, пишите в чат марафона, и обязательно прикладывайте скриншоты.
P.S. Вариант настройки Clickhouse в Яндекс.Облаке самостоятельно (в рамках демо-периода на общих основаниях). Документация.
Скачайте и установите Loginom Community Edition, если он еще не установлен.