[Документация Yandex Cloud](../../index.md) > [Практические руководства](../index.md) > [Машинное обучение и искусственный интеллект](index.md) > Использование генеративных нейросетей Yandex AI Studio > Интеграция AI-аналитика данных с Data Catalog

# Интеграция AI Studio с сервисом Yandex Data Catalog

# Интеграция с Yandex Data Catalog

Вы можете использовать AI-ассистента для поиска и анализа закономерностей в [каталогах метаданных](../../metadata-hub/concepts/data-catalog.md), развернутых в сервисе Data Catalog. Для этого подключите MCP-сервер Data Catalog к MCP Hub. Сервер позволяет запрашивать список каталогов метаданных, выполнять поиск в метаданных, а также получать граф их зависимостей (lineage) на уровне таблиц и колонок для использования в контексте диалога с агентами.

Чтобы в AI Studio настроить интеграцию с сервисом Data Catalog:

1. [Подготовьте инфраструктуру](#infra).
1. [Подготовьте каталог метаданных к работе](#prepare-data-catalog).
1. [Подключите внешний MCP-сервер](#connect-mcp).
1. [Протестируйте диалог с агентом](#test-dialog).

## Перед началом работы {#before-you-begin}

Зарегистрируйтесь в Yandex Cloud и создайте [платежный аккаунт](../../billing/concepts/billing-account.md):
1. Перейдите в [консоль управления](https://kz.console.yandex.cloud), затем войдите в Yandex Cloud или зарегистрируйтесь.
1. На странице **[Yandex Cloud Billing](https://kz.console.yandex.cloud/billing)** убедитесь, что у вас подключен платежный аккаунт, и он находится в [статусе](../../billing/concepts/billing-account-statuses.md) `ACTIVE` или `TRIAL_ACTIVE`. Если платежного аккаунта нет, [создайте его](../../billing/quickstart/index.md) и [привяжите](../../billing/operations/pin-cloud.md) к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder), в котором будет работать ваша инфраструктура, на [странице облака](https://kz.console.yandex.cloud/cloud).

[Подробнее об облаках и каталогах](../../resource-manager/concepts/resources-hierarchy.md).


### Необходимые платные ресурсы {#paid-resources}

В стоимость инфраструктуры для интеграции входит плата за использование Agent Atelier: количество токенов в запросе и ответе ([тарифы Yandex AI Studio](https://aistudio.yandex.ru/docs/ru/ai-studio/pricing)). Тарификация за использование агента начинается с момента его включения.


## Подготовьте инфраструктуру {#infra}

### Создайте каталог и сеть {#create-folder}

Создайте каталог ресурсов, в котором будет размещен ваш каталог метаданных.

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. В [консоли управления](https://kz.console.yandex.cloud) выберите облако и нажмите ![create](../../_assets/console-icons/plus.svg)**Создать каталог**.
   1. Введите имя каталога, например `data-folder`.
   1. Выберите опцию **Создать сеть по умолчанию**. Будет создана [сеть](../../vpc/concepts/network.md#network) с подсетями в каждой [зоне доступности](../../overview/concepts/geo-scope.md).
   1. Нажмите **Создать**.

{% endlist %}

[Подробнее об облаках и каталогах](../../resource-manager/concepts/resources-hierarchy.md).

### Создайте сервисный аккаунт {#create-sa}

{% list tabs group=instructions %}

- Консоль управления {#console}

   1. Перейдите в каталог `data-folder`.
   1. Перейдите в сервис **Identity and Access Management**.
   1. Нажмите кнопку **Создать сервисный аккаунт**.
   1. Введите имя [сервисного аккаунта](../../iam/concepts/users/service-accounts.md), например `sa-for-mcp-server`.
   1. Нажмите **Добавить роль** и назначьте сервисному аккаунту [роли](../../iam/concepts/access-control/roles.md):
      * `data-catalog.user` — для доступа к ресурсам каталога метаданных.
      * `serverless.mcpGateways.invoker` — для доступа к MCP-серверу в MCP Hub.
      * `serverless.mcpGateways.anonymousInvoker` — для доступа к внешнему MCP-серверу.

   1. Нажмите **Создать**.

{% endlist %}

## Подготовьте каталог метаданных к работе {#prepare-data-catalog}

### Создайте каталог метаданных {#create-catalog}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. В [консоли управления](https://kz.console.yandex.cloud) выберите [каталог ресурсов](../../resource-manager/concepts/resources-hierarchy.md#folder), в котором нужно создать каталог метаданных.
    1. Перейдите в сервис **Yandex MetaData Hub**.
    1. На панели слева выберите ![image](../../_assets/console-icons/folder-magnifier.svg) **Data Catalog**.
    1. Нажмите кнопку **Создание каталога**.
    1. В поле **Имя** задайте имя каталога `test-sales`.
    1. Нажмите кнопку **Создать**.

    {% note info %}
    
    При создании каталога метаданных опция **AI-разметка метаданных** включена по умолчанию.
    
    Когда опция включена, AI-ассистент предлагает описания, [домены](../../metadata-hub/concepts/data-catalog.md#domains-and-subdomains), [классификации и теги](../../metadata-hub/concepts/data-catalog.md#classifications-and-tags), [глоссарии и термины](../../metadata-hub/concepts/data-catalog.md#glossaries-and-terms), а также размечает с их помощью ваши метаданные. Предложения ассистента можно подтвердить, отредактировать или отклонить. Для этого наведите курсор на значок **AI** рядом с предложением ассистента и выберите нужное действие.
    
    После создания каталога AI-разметкой можно управлять на странице **Обзор** или при [изменении](../../metadata-hub/operations/data-catalog/update-catalog.md) каталога.
    
    {% endnote %}

{% endlist %}

### Создайте источник метаданных {#create-source}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. На панели слева выберите ![image](../../_assets/console-icons/cloud-arrow-up-in.svg) **Источники данных**.
    1. Нажмите кнопку **Создать источник данных**.
    1. Задайте имя источника `test-sales-source`.
    1. Выберите тип бэкенда, из которого будут поставляться метаданные для анализа. После создания источника нельзя будет изменить тип базы данных. Доступные бэкенды:

       * PostgreSQL
       * MySQL®
       * ClickHouse®
       * Yandex StoreDoc/MongoDB
       * OpenSearch
       * Greenplum®
       * Yandex Data Transfer
       * WebSQL
       * DataLens

    1. Укажите параметры источника для выбранного типа базы данных:

        * **ID подключения** — идентификатор управляемого подключения в [Yandex Connection Manager](../../metadata-hub/quickstart/connection-manager.md).
        * **Имя базы данных** — имя базы данных, из которой будут загружаться метаданные.

    1. Нажмите кнопку **Создать**.

{% endlist %}

### Создайте и запустите загрузку данных {#create-ingestion}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. На панели слева выберите ![image](../../_assets/console-icons/arrow-up-from-square.svg) **Загрузки**.
  1. Нажмите кнопку **Создать загрузку**.
  1. Задайте параметры загрузки:

      * В поле **Имя** задайте имя загрузки `load-sales`.
      * Выберите [созданный ранее](#create-source) источник метаданных.
      * Задайте конфигурацию загрузки для выбранного источника данных:

         * Выберите расписание запуска загрузки **Ручной запуск**.
         * (Опционально) В блоке **Фильтры данных** с помощью регулярных выражений укажите, какие базы данных и объекты баз данных необходимо включить или исключить из загрузки.

         * В блоке **Типы метаданных** выберите, какие типы метаданных необходимо извлекать из источника.
         * (Опционально) В блоке **Профилирование данных**:
         
           * Выберите опцию **Включить профилирование**, чтобы выполнять профилирование данных, т. е. анализ и сбор статистики об извлекаемых данных.
           * Выберите опцию **Учитывать только уровень таблицы**, чтобы не выполнять профилирование данных в каждом столбце таблицы. Если опция включена, характеристики данных будут собираться только по таблице в целом.
           * В поле **Максимум рабочих процессов** укажите количество вычислительных потоков для профилирования.
           * В поле **Размер выборки** укажите количество строк для выборки при профилировании столбцов. Настройка применяется при включенной опции **Использовать выборку**.
           * В поле **Ограничение на размер таблицы** укажите размер таблицы (в ГБ), при превышении которого таблицы исключаются из профилирования.
           * В поле **Ограничение на количество строк в таблице** укажите количество строк, при превышении которого таблицы исключаются из профилирования.
           * Выберите опцию **Включить подсчет нулевых значений**, чтобы получить количество строк со значением `NULL` для каждого столбца.
           * Выберите опцию **Включить подсчёт уникальных значений**, чтобы получить количество уникальных значений для каждого столбца.
           * Выберите опцию **Включить минимальное значение полей**, чтобы получить минимальное значение для каждого числового столбца.
           * Выберите опцию **Включить максимальное значение полей**, чтобы получить максимальное значение для каждого числового столбца.
           * Выберите опцию **Включить среднее значение полей**, чтобы получить среднее значение для каждого числового столбца.
           * Выберите опцию **Включить медиану полей**, чтобы получить медианное значение для каждого числового столбца.
           * Выберите опцию **Включить стандартное отклонение значений полей**, чтобы получить стандартное отклонение для каждого числового столбца.
           * Выберите опцию **Включить квантили полей**, чтобы получить квантили для каждого числового столбца.
           * Выберите опцию **Включить подсчёт частот уникальных значений**, чтобы получить частоту уникальных значений для каждого столбца.
           * Выберите опцию **Включить гистограмму полей**, чтобы получить гистограмму для каждого числового столбца.
           * Выберите опцию **Включить значения полей**, чтобы получить примеры значений для каждого столбца.
           * Выберите опцию **Включить объединение запросов**, чтобы динамически объединять SQL-запросы для ускорения профилирования.
           * В поле **Ограничение** укажите максимальное количество строк для профилирования. При значении `0` будут профилироваться все строки.
         
         * В блоке **Обработка метаданных** выберите, каким образом обрабатывать метаданные:
           * Чтобы повысить производительность загрузки, включите опцию **Использовать файловый кеш**.

  1. Нажмите кнопку **Создать**.
  1. В списке загрузок нажмите на значок ![image](../../_assets/console-icons/ellipsis.svg) в строке с созданной загрузкой и выберите пункт **Запустить**.
  
     При загрузке данные будут автоматически размечены AI-ассистентом. После успешного завершения загрузка примет статус **Success**.

  1. Чтобы посмотреть загруженные и размеченные данные, на панели слева выберите ![image](../../_assets/console-icons/database-magnifier.svg) **Поиск по метаданным**.

     На странице отображается информация о данных — источник данных, база данных и таблицы.

     {% note info %}

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

    {% endnote %}

{% endlist %}

## Подключите внешний MCP-сервер {#connect-mcp}

### Подключение в AI Studio {#mcp-ai-studio}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. Перейдите в каталог `data-folder`.
  1. Перейдите в сервис **AI Studio**.
  1. На панели слева выберите ![logo-mcp](../../_assets/console-icons/logo-mcp.svg) **MCP-серверы** и нажмите кнопку **Создать MCP-сервер**. В открывшемся окне:

      1. В блоке **Способ добавления** выберите опцию ![plug-connection](../../_assets/console-icons/plug-connection.svg) **Подключить**.
      1. В блоке **Инструменты** нажмите кнопку **Добавить инструменты**. В открывшемся окне укажите настройки подключения к MCP-серверу:

         * **Транспорт** — **Streamable HTTP**.

         * **URL** — `https://datacatalog-consumer.mcp.cloud.yandex.net/mcp`.

         * **Тип авторизации** — `Токен доступа`.

         * В блоке **Заголовок авторизации** укажите в поле **Значение** `Bearer <IAM_токен>`. Для этого получите [IAM-токен](../../iam/concepts/authorization/iam-token.md) для [созданного ранее](#create-sa) сервисного аккаунта, скопируйте его и вставьте в поле.

            {% note info %}

            [Время жизни](../../iam/concepts/authorization/iam-token.md#lifetime) IAM-токена — не больше 12 часов, но рекомендуется запрашивать его чаще, например каждый час.
            
            Для автоматического перевыпуска IAM-токена можно использовать скрипт `export IAM_TOKEN=$(yc iam create-token)`.

            {% endnote %}

      1. Нажмите кнопку **Подключиться**.
      1. В открывшемся окне **Добавление инструментов** выберите все инструменты и нажмите кнопку **Добавить**.

      1. В блоке **Параметры сервера**:

          1. В поле **Имя** задайте имя создаваемого MCP-сервера. Требования к имени:
             
             * длина — от 3 до 63 символов;
             * может содержать строчные буквы латинского алфавита, цифры и дефисы;
             * первый символ — буква, последний — не дефис.
          1. (Опционально) Добавьте создаваемому серверу описание и метки, воспользовавшись кнопками **Добавить описание** и **Добавить метку**.
          1. В поле **Доступ** выберите **Приватный**.
          1. В поле **Сервисный аккаунт** выберите сервисный аккаунт, созданный ранее.
          1. (Опционально) Включите опцию **Запись логов** и задайте параметры логирования, чтобы вести журнал логов создаваемого MCP-сервера. Доступна запись логов в [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder) или [лог-группу](../../logging/concepts/log-group.md).
      1. Нажмите кнопку **Сохранить**.

  1. На панели слева выберите ![logo-agent](../../_assets/console-icons/face-robot.svg) **Агенты** и нажмите кнопку **Создать агента**.
  1. Укажите параметры агента:
     * **Имя** — имя агента.
     * **Модель** — языковая модель.
     * В блоке **Инструкция** выберите готовый шаблон системной инструкции агенту или опишите, как агент должен себя вести и что нужно сделать.
     * В блоке **Инструменты**:
       * Нажмите кнопку **Добавить** и выберите **Добавить MCP**.
       * Выберите в списке созданный ранее MCP-сервер и нажмите кнопку **Выбрать**.
       * В поле **Поведение по умолчанию для всех инструментов** выберите **Подтверждение не нужно**.
       * Нажмите кнопку **Создать и продолжить**.

{% endlist %}

### Подключение к внешнему AI-агенту {#mcp-connect-agent}

1. Получите [IAM-токен](../../iam/concepts/authorization/iam-token.md) для [созданного ранее](#create-sa) сервисного аккаунта.
   
   {% note info %}

   [Время жизни](../../iam/concepts/authorization/iam-token.md#lifetime) IAM-токена — не больше 12 часов, но рекомендуется запрашивать его чаще, например каждый час.
   
   Для автоматического перевыпуска IAM-токена можно использовать скрипт `export IAM_TOKEN=$(yc iam create-token)`.

   {% endnote %}

1. Укажите конфигурацию MCP-сервера Data Catalog для вашего агента:

   ```json
   {
     "mcpServers": {
       "yandex-cloud-datacatalog-consumer": {
         "type": "streamableHttp",
         "url": "https://datacatalog-consumer.mcp.cloud.yandex.net/mcp",
         "headers": {
           "Authorization": "Bearer <IAM_токен>"
         }
       }
     }
   }
   ```

## Протестируйте диалог с агентом {#test-dialog}

{% note tip %}

Если вы используете агента в AI Studio, тестируйте диалог в правой панели **Тестирование агента**.

{% endnote %}

1. Начните диалог с агентом с указания идентификатора каталога данных, например:

   ```text
   Используй размеченные данные в каталоге данных apah36iavgh5********.
   ```

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

   * `Составь SQL запрос для построения аналитики продаж YoY`
   * `Найди все таблицы с информацией о платежах пользователей`
   * `Какие таблицы помечены как содержащие чувствительные данные?`
   * `Откуда берутся данные в таблице customer_transactions?`
   * `Помоги найти нужные таблицы для расчета метрики retention пользователей`
   * `Где хранятся данные о поведении пользователей на сайте?`
   * `Какие данные использовать для анализа конверсии воронки продаж?`
   * `Покажи все зависимости таблицы transactions — нужно понять влияние изменений схемы`