Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for ClickHouse®
  • Начало работы
    • Все инструкции
      • Подключение собственной геобазы
      • Подключение внешних словарей
      • Управление схемами формата данных
      • Управление моделями машинного обучения
      • Настройка доступа к Object Storage
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Перед подключением модели
  • Получить список моделей в кластере
  • Получить детальную информацию о модели
  • Создать модель
  • Применить модель
  • Изменить модель
  • Отключить модель
  • Пример
  1. Пошаговые инструкции
  2. Хранение и обработка данных
  3. Управление моделями машинного обучения

Управление моделями машинного обучения в Managed Service for ClickHouse®

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Перед подключением модели
  • Получить список моделей в кластере
  • Получить детальную информацию о модели
  • Создать модель
  • Применить модель
  • Изменить модель
  • Отключить модель
  • Пример

Managed Service for ClickHouse® позволяет анализировать данные с помощью моделей машинного обучения CatBoost без использования дополнительных инструментов.

Чтобы применить модель, подключите ее к кластеру и вызовите в SQL-запросе с помощью встроенной функции catboostEvaluate(). В результате выполнения такого запроса вы получите предсказания модели для каждой строки входных данных.

Подробнее о функции catboostEvaluate() читайте в документации ClickHouse®.

Перед подключением моделиПеред подключением модели

Managed Service for ClickHouse® работает только с моделями, которые загружены в Yandex Object Storage и к которым предоставлен доступ на чтение:

  1. Для привязки сервисного аккаунта к кластеру назначьте вашему аккаунту в Yandex Cloud роль iam.serviceAccounts.user или выше.
  2. Загрузите файл обученной модели в Yandex Object Storage.
  3. Подключите сервисный аккаунт к кластеру. С помощью сервисного аккаунта вы настроите доступ к файлу модели.
  4. Назначьте роль storage.viewer сервисному аккаунту.
  5. В ACL бакета добавьте разрешение READ сервисному аккаунту.
  6. Получите ссылку на файл модели.

Получить список моделей в кластереПолучить список моделей в кластере

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Машинное обучение на панели слева.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список моделей в кластере, выполните команду:

yc managed-clickhouse ml-model list --cluster-name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом MlModel.List и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/mlModels'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом MlModelService.List и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/ml_model_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.MlModelService.List
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить детальную информацию о моделиПолучить детальную информацию о модели

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Машинное обучение на панели слева.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить детальную информацию о модели, выполните команду:

yc managed-clickhouse ml-model get <имя_модели> \
  --cluster-name=<имя_кластера>

Имя модели можно запросить со списком моделей в кластере, имя кластера — со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом MlModel.Get и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/mlModels/<название_модели>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, название модели — со списком моделей в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом MlModelService.Get и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/ml_model_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>",
                "ml_model_name": "<название_модели>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.MlModelService.Get
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, название модели — со списком моделей в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Создать модельСоздать модель

Примечание

Поддерживаются только модели типа CatBoost: ML_MODEL_TYPE_CATBOOST.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Выберите кластер:

    1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
    2. Нажмите на имя нужного кластера и выберите вкладку Машинное обучение на панели слева.
    3. Нажмите Создать модель.
  2. Настройте параметры модели:

    • Тип — ML_MODEL_TYPE_CATBOOST.
    • Имя — имя модели. Имя модели — один из аргументов функции catboostEvaluate(), которая нужна для вызова модели в ClickHouse®.
    • URL — адрес модели в Yandex Object Storage.
  3. Нажмите Создать и дождитесь окончания создания модели.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать модель, выполните команду:

yc managed-clickhouse ml-model create <имя_модели> \
  --cluster-name=<имя_кластера> \
  --type=ML_MODEL_TYPE_CATBOOST \
  --uri=<ссылка_на_файл_модели_в_Object_Storage>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте к описанию кластера Managed Service for ClickHouse® блок ml_model с описанием подключаемой модели машинного обучения:

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      ...
      ml_model {
        name = "<имя_модели>"
        type = "ML_MODEL_TYPE_CATBOOST"
        uri  = "<ссылка_на_файл_модели_в_Object_Storage>"
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:

  • создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
  • изменение — 90 минут;
  • удаление — 30 минут.

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

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом MlModel.Create и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://{{ api-host-mdb }/managed-clickhouse/v1/clusters/<идентификатор_кластера>/mlModels' \
        --data '{
                  "mlModelName": "<название_модели>",
                  "type": "ML_MODEL_TYPE_CATBOOST",
                  "uri": "<ссылка_на_файл>"
                }'
    

    Где:

    • mlModelName — имя модели;
    • type — тип модели, всегда принимает значение ML_MODEL_TYPE_CATBOOST;
    • uri — ссылка на файл с моделью в Object Storage.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом MlModelService.Create и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/ml_model_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>",
                "ml_model_name": "<название_модели>",
                "type": "ML_MODEL_TYPE_CATBOOST",
                "uri": "<ссылка_на_файл>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.MlModelService.Create
    

    Где:

    • ml_model_name — имя модели;
    • type — тип модели, всегда принимает значение ML_MODEL_TYPE_CATBOOST;
    • uri — ссылка на файл с моделью в Object Storage.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Применить модельПрименить модель

Чтобы применить модель к данным, которые хранятся в кластере ClickHouse®:

  1. Подключитесь к кластеру.

  2. Выполните SQL-запрос вида:

    SELECT 
        catboostEvaluate('<путь_к_файлу_модели>', 
                      <имя_столбца_1>,
                      <имя_столбца_2>,
                      ...
                      <имя_столбца_N>)
    FROM <имя_таблицы>
    

В качестве аргументов функции catboostEvaluate() укажите:

  • Путь к файлу модели в формате /var/lib/clickhouse/models/<имя_модели>.bin.
  • Имена столбцов, содержащих входные данные.

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

Изменить модельИзменить модель

Managed Service for ClickHouse® не отслеживает изменения в файле с моделью, который находится в бакете Yandex Object Storage.

Чтобы актуализировать содержимое модели, которая уже подключена к кластеру:

  1. Загрузите файл с актуальной моделью в Yandex Object Storage.
  2. Получите ссылку на этот файл.
  3. Измените параметры модели, подключенной к Managed Service for ClickHouse®, передав новую ссылку на файл с моделью.
Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Машинное обучение на панели слева.
  3. Выберите нужную модель, нажмите на значок и выберите пункт Изменить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы изменить ссылку на файл с моделью в бакете Yandex Object Storage, выполните команду:

yc managed-clickhouse ml-model update <имя_модели> \
  --cluster-name=<имя_кластера> \
  --uri=<новая_ссылка_на_файл_в_Object_Storage>

Имя модели можно запросить со списком моделей в кластере, имя кластера — со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for ClickHouse® значение параметра uri в блоке ml_model:

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
    ...
      ml_model {
        name = "<имя_модели>"
        type = "ML_MODEL_TYPE_CATBOOST"
        uri  = "<новая_ссылка_на_файл_модели_в_Object_Storage>"
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:

  • создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
  • изменение — 90 минут;
  • удаление — 30 минут.

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

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом MlModel.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://{{ api-host-mdb }/managed-clickhouse/v1/clusters/<идентификатор_кластера>/mlModels/<название_модели>' \
        --data '{
                  "updateMask": "uri",
                  "uri": "<ссылка_на_файл>"
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае указан только один параметр: uri.

    • uri — ссылка на новый файл с моделью в Object Storage.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом MlModelService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/ml_model_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>",
                "ml_model_name": "<название_схемы>",
                "update_mask": {
                  "paths": ["uri"]
                },
                "uri": "<ссылка_на_файл>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.MlModelService.Create
    

    Где:

    • ml_model_name — имя модели.

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае указан только один параметр: uri.

    • uri — ссылка на новый файл с моделью в Object Storage.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Отключить модельОтключить модель

Примечание

После отключения модели соответствующий объект остается в бакете Yandex Object Storage. Если этот объект модели больше не нужен, его можно удалить.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Машинное обучение на панели слева.
  3. Выберите нужную модель, нажмите на значок и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы отключить модель, выполните команду:

yc managed-clickhouse ml-model delete <имя_модели> \
  --cluster-name=<имя_кластера>

Имя модели можно запросить со списком моделей в кластере, имя кластера — со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Удалите из описания кластера Managed Service for ClickHouse® блок описания нужной модели ml_model.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:

  • создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
  • изменение — 90 минут;
  • удаление — 30 минут.

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

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом MlModel.Delete и выполните запрос, например, с помощью cURL:

    curl \
        --request DELETE \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/mlModels/<название_модели>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, название модели — со списком моделей в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом MlModelService.Delete и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/ml_model_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
                "cluster_id": "<идентификатор_кластера>",
                "ml_model_name": "<название_схемы>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.MlModelService.Delete
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

ПримерПример

Если у вас еще нет подходящего набора данных и модели для его обработки, вы можете протестировать машинное обучение в Managed Service for ClickHouse® на этом примере. Для него мы подготовили файл с данными и обучили модель для их анализа. Вы сможете загрузить данные в ClickHouse® и посмотреть на предсказания модели для разных строк таблицы.

Примечание

Для этого примера мы будем использовать открытые данные из Amazon Employee Access Challenge. Модель обучена предсказывать значение столбца ACTION. Те же данные и модель используются на GitHub.

Чтобы загрузить данные в ClickHouse® и протестировать модель:

  1. В консоли управления подключите тестовую модель:

    • Тип — ML_MODEL_TYPE_CATBOOST.
    • Имя — ml_test.
    • URL — https://storage.yandexcloud.net/managed-clickhouse/catboost_model.bin.
  2. Скачайте файл с данными для анализа.

  3. Подключитесь к кластеру.

  4. Создайте тестовую таблицу:

    CREATE TABLE
                ml_test_table (date Date MATERIALIZED today(), 
                              ACTION UInt8, 
                              RESOURCE UInt32, 
                              MGR_ID UInt32, 
                              ROLE_ROLLUP_1 UInt32, 
                              ROLE_ROLLUP_2 UInt32, 
                              ROLE_DEPTNAME UInt32, 
                              ROLE_TITLE UInt32, 
                              ROLE_FAMILY_DESC UInt32, 
                              ROLE_FAMILY UInt32, 
                              ROLE_CODE UInt32) 
                ENGINE = MergeTree() 
    PARTITION BY date 
    ORDER BY date;
    
  5. Загрузите данные в таблицу:

    INSERT INTO ml_test_table FROM INFILE '<путь_к_файлу>/train.csv' FORMAT CSVWithNames;
    
  6. Протестируйте модель:

    • Получите предсказание значений столбца ACTION для первых 10 строк таблицы:

      SELECT
          catboostEvaluate('/var/lib/clickhouse/models/ml_test.bin',
                          RESOURCE,
                          MGR_ID,
                          ROLE_ROLLUP_1,
                          ROLE_ROLLUP_2,
                          ROLE_DEPTNAME,
                          ROLE_TITLE,
                          ROLE_FAMILY_DESC,
                          ROLE_FAMILY,
                          ROLE_CODE) > 0 AS prediction,
          ACTION AS target
      FROM ml_test_table
      LIMIT 10;
      
    • Получите предсказанную вероятность для первых 10 строк таблицы:

      SELECT
          catboostEvaluate('/var/lib/clickhouse/models/ml_test.bin',
                          RESOURCE,
                          MGR_ID,
                          ROLE_ROLLUP_1,
                          ROLE_ROLLUP_2,
                          ROLE_DEPTNAME,
                          ROLE_TITLE,
                          ROLE_FAMILY_DESC,
                          ROLE_FAMILY,
                          ROLE_CODE) AS prediction,
          1. / (1 + exp(-prediction)) AS probability,
          ACTION AS target
      FROM ml_test_table
      LIMIT 10;
      

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Управление схемами формата данных
Следующая
Настройка доступа к Object Storage
Проект Яндекса
© 2025 ООО «Яндекс.Облако»