В Data Office МТС накоплен дата-каталог из более чем 500 тысяч таблиц. Сотни аналитиков и инженеров данных ежедневно ищут в нём нужные источники — но каталог хорошо отвечает на вопрос «что в этой таблице», а не «какие данные мне нужны для этой задачи». Разрыв между бизнес-вопросом и физической структурой хранилища аналитики закрывали вручную: изучали документацию, консультировались с коллегами. Система Метан, которую команда сейчас пилотирует, пытается автоматизировать этот путь.
Метан состоит из двух частей. Метан-тулкит полуавтоматически строит так называемый семантический слой AIMeta — структурированное описание данных, понятное языковой модели. Метан-чат использует этот слой как основу для диалога: принимает вопрос на естественном языке, находит нужные термины и таблицы, генерирует SQL и объясняет каждое принятое решение.
| Тип сущности | Описание | Примеры типов элементов |
|---|---|---|
| Fact | События, транзакции | Key, Timekey, Measure |
| Masterdata | Объекты предметной области | Key, Title, Attribute |
| Dictionary | Классификаторы и справочники | Key, Title, Attribute |
Ключевая архитектурная идея — разделение описания данных на два уровня. Уровень знаний (онтология) содержит термины предметной области: «количество уникальных абонентов», «дата начала периода», «название приложения» — с определениями, синонимами и правилами использования. Уровень данных (физика) — конкретные таблицы и поля. Один термин может быть реализован в нескольких таблицах с разной гранулярностью и глубиной хранения. Такое разделение логического и физического уровней существует в теории data governance давно, но Метан использует его как основу для работы ИИ-агента.
Система Метан состоит из двух компонентов: тулкита для полуавтоматической генерации метаданных и чата для навигации по данным.
Диалог в Метан-чате проходит три этапа. На этапе «Что?» агент анализирует запрос и определяет, какие термины онтологии в нём упоминаются, предлагая пользователю подтвердить понимание. На этапе «Где?» — подбирает подходящие таблицы и ранжирует их, объясняя выбор. На этапе «Как?» — генерирует SQL с комментариями: какие допущения сделаны, какие фильтры добавлены и почему. Пользователь может скорректировать набор терминов, выбрать другую таблицу или уточнить условия на любом шаге. Для каждого этапа используется своя технология: семантическое сопоставление для поиска терминов, графовый поиск для навигации по связям между объектами, LLM для генерации и ранжирования.
Семантический слой AIMeta описывает предметную область на четырёх уровнях: продукт (общие правила и контекст), термины (суть данных), таблицы (гранулярность, периодичность, сочетание полей) и поля (маппинг на термины). Структура задаётся через YAML-манифест. Каждый объект онтологии получает тип: сущности делятся на Fact, Masterdata и Dictionary, а их элементы — на Key, Timekey, Title, Measure и Attribute. Типизация позволяет агенту автоматически применять правила: встретив Measure, он знает, что нужна агрегация через SUM; встретив Timekey у факта — фильтрует по периоду. Правила описываются один раз и применяются автоматически во всех таблицах, где встречается данный тип.
Создать семантический слой вручную для сотен таблиц невозможно, поэтому Метан-тулкит генерирует его полуавтоматически. Входные материалы — Confluence-страницы продуктов, дата-каталог, справочники значений, lineage, логи SQL-запросов и задачи аналитиков. Из логов запросов извлекается метаинформация: алиасы, джойны, текстовые условия, востребованность полей. На основе топ-30 популярных типов SQL-запросов формируется так называемый golden set — эталонные запросы и их аналоги на естественном языке, которые используются для обучения и оценки системы.
Подход МТС вписывается в более широкий тренд на построение семантических слоёв над корпоративными хранилищами — аналогичные задачи решают инструменты вроде dbt Semantic Layer или коммерческие платформы типа AtScale. Отличие Метана — глубокая интеграция с внутренней онтологией и ставка на типизацию как механизм переноса бизнес-правил в контекст ИИ-агента. Система находится на стадии пилота, и команда продолжает собирать обратную связь от пользователей.

