Analytics Space
Оставить заявку
Для чего нужен modelCraft
modelCraft предназначен для сложных проектов по сбору и обработке данных, в которых нужно скоординировать большое количество потоков данных, охватывающих несколько инструментов. modelCraft позволяет работать с метаинформацией, имеющейся в различных инструментах или хранящейся в справочниках: проверять ее корректность, строить на ее основе документацию и обогащать ей отчеты и дашборды.

Для кого он предназначен
Для инженеров данных и системных аналитиков в крупных компаниях, которые хотят навести порядок в данных. В отличие от других инструментов modelCraft, инструмент требует затрат на обучение и навыков программирования.

Что такое метаинформация
Метаинформация — это данные, которые дополняют данные о поведении пользователей, расходах и другую «основную» информацию. Четкой границы между просто информацией и метаинформацией нет, метаинформация отличается тем, что она меньше по объему и меняется реже. Вот несколько примеров:
  • список рекламных аккаунтов,
  • медиапланы,
  • таксономия событий (при каком действии пользователя какие сведения с какими метками сайт или приложения отправляют в аналитическую систему),
  • каталог товаров,
  • карта сайта (какая страница к какой категории относится)
  • список подключений Airbyte.

Для чего она может понадобиться
Представьте, что вам нужно свести данные по расходам из десятка рекламных кабинетов Яндекса, Вконтакте и Huawei Ads. Каждый аккаунт был создан для продвижения определенного продукта тем или иным подрядчиком. Если подрядчик меняется, делается новый аккаунт.

Вы решает использовать для этого Airbyte. Для каждого аккаунта вы создаете подключение, указываете доступы. На каждое подключение вы создаете задачу в Airflow, благодаря чему данные регулярно начинают поступать в отдельные таблицы. Также вы заводите Гугл-таблицу, в которую записываете соответствие между аккаунтами, подрядчиками и продуктами, а также даты, в которые аккаунт начал и закончил работать.

Эти сведения, а также названия/идентификаторы подключений Airbyte, задач Airflow и таблиц в базе и составляют метаинформацию.

Почему метаинформация важна
Потому что от метаинформации зависит качество данных и эффективность работы аналитической команды. На качество данных метаинформация влияет, потому что она попадает в отчеты. К примеру, если в справочнике в одной строчке название подрядчика записано как My Agency, а другой — как MyAgency, если построить отчет в разбивке по подрядчикам, данные разделятся и отчет будет некорректным.

На эффективность работы влияет единообразие заполнения метаинформации. Чтобы в списке подключений Airbyte быстро найти нужное, важно, чтобы их нейминг соответствовал какой-то схеме. Например, вначале должно идти название рекламной системы, потом через дефис название подрядчика и затем, снова через дефис, рекламируемый продукт. Если нужно отключить потоки данных по какому-то продукту, нужные подключения легко будет найти с помощью поиска по странице. В случае, если правило нейминга где-то нарушено, есть риск пропустить часть необходимых подключений.

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

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

Часто метаинформация обладает большим уровнем вложенности. Например, товары могут делиться по категориям, подкатегориям и субкатегориям. Стандартные вложенные списки электронных таблиц не позволяют легко реализовать такую вложенность, чтобы если в ячейке справа выбрана категория “Бытовая химия”, в ячейке слева показывались только товары из нее.

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

Как modelCraft упрощает работу с метаинформацией
Он загружает всю метаинформацию в общее хранилище и дает возможность централизованно с ней работать через графический интерфейс и API. После того, как метаинформация загружена в хранилище, ее можно проверить на логическую согласованность и соответствие всем бизнес-правилам. Например, можно проверить, что события, поступающие в систему мобильной аналитики, имеют тот же нейминг, что указан в таблице с таксономией. Через modelCraft метаинформацию можно трансформировать — чтобы исправить ошибки, провести массовые переименования или переехать из одного аналитического инструмента в другой.

Результаты работы modelCraft синхронизируются с исходными системами. Например, найденные ошибки в справочнике можно отметить цветом или сразу же исправить, если исправление поддается автоматизации.

Также modelCraft — средство документации. С его помощью пользователи могут понять, какие источники данных имеются в компании и как они между собой связаны. Для этого можно либо непосредственно посмотреть метаинформацию, либо сгенерировать справочные документы на ее основе.

Ведь можно воспользоваться Airbyte + dbt. Зачем для метаинформации отдельный инструмент
Действительно, к метаинформации можно подходить так же, как к остальным данным: загрузить каждую таблицу в Clickhouse и обрабатывать ее с помощью SQL. Но на практике это нелегко сделать, потому что таблиц/листов много, а SQL запросы получаются большими и сложными. По сравнению с этим подходом, у modelCraft есть несколько преимуществ:
  • сведения об источниках данных и справочниках хранится в таком же виде, что и остальная метаинформация. Это позволяет не запутаться, когда их количество растет
  • есть API, которое позволяет решать задачи валидации или трансформации данных. Они предназначены для работы с данными с большим уровнем вложенности, в отличие от SQL, в котором приходится писать много JOIN-ов.
  • modelCraft позволяет не только получать и обрабатывать метаинформацию, но и управлять с ее помощью исходными системами. Благодаря этому проведенные изменения не нужно синхронизировать вручную.

Как выглядит работа с modelCraft
Вначале пользователь настраивает modelCraft через папку проекта. В этой папке проекта файлы конфигурации, метамодели и скрипты. Файлы конфигурации — это документы в формате YAML. В них пользователь прописывает, где и как получить доступ к справочникам и API инструментов вроде Airbyte и Airflow. Метамодели дают описание структуры данных: какие есть сущности, как они вложены друг в друга, какими атрибутами описываются. Метамодели для инструментов уже встроены в modelCraft, например, для Airbyte есть сущности Source, Destination, Connection со всеми полями-атрибутами. Для своих справочников пользователь создает метамодели сам. К примеру, для каталога товаров он может задать сущности Category, Subcategory и Item, задать между ними связи Many-to-One и добавить атрибуты name, size, color.

Скрипты — файлы на Python, которые бывают трех видов:
  • скрипты валидации — определяют правила, по которым modelCraft будет проверять, что метаданные корректны, и поведение при ошибке (попытаться исправить, выделить ячейку в таблице, сообщить ответственному),
  • скрипты пайплайнов — последовательность шагов по сбору и обработке метаданных,
  • скрипты генерации, которые создают документы (HTML, PDF, YAML) по метаданным на основе шаблонов.
Пользователь загружает папку проекта на сервер, и modelCraft подключается к справочникам и инструментам, получает от них метаданные, проводит валидацию, ставит в расписание выполнение пайплайнов и генерирует документы. Пользователь может посмотреть метаинформацию через веб-интерфейс или консольное приложение.

Откуда умеет получать метаинформацию modelCraft
  • Из всех инструментов dataCraft (etlCraft, qualityCraft, deployCraft, utmCraft (ссылки) и т.д.)
  • Из Гугл-таблиц и файлов Excel (напрямую и после обработки с помощью tableCraft (ссылка))
  • Из инструментов Airbyte и Airflow
  • Из баз данных PostgreSQL, ClickHouse, Google BigQuery (схема данных и сами данные из выбранных пользователем таблиц).
  • Из файлов CSV, JSON и YAML.

Какие системные требования у modelCraft
Клиентский интерфейс работает на Windows, Linux и MacOS. Серверная часть работает на Linux и для тестового запуска требует 1 ядра CPU и 2 Гб оперативной памяти, но для комфортной работы с большим количеством метаинформации нужно минимум 2 ядра CPU и 8 Гб оперативной памяти.

Какая лицензия у modelCraft
modelCraft — продвинутый инструмент dataCraft, поэтому он доступен только под коммерческой лицензией. После продажи мы проводим обучение команды по работе с инструментом и выстраиванию с его помощью аналитической инфраструктуры.
Получить доступ к modelCraft
О проекте
Analytic Space
Лицензия