Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Managed Service for ClickHouse
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение настроек кластера и базы данных
    • Подключение внешних словарей
    • Подключение собственной геобазы
    • Подключение моделей машинного обучения
    • Управление схемами формата данных
    • Подключение к DataLens
    • Изменение версии ClickHouse
    • Управление хостами ClickHouse
    • Управление хостами ZooKeeper
    • Управление базами данных
    • Управление пользователями БД
    • Управление резервными копиями
    • Управление шардами
    • Управление группами шардов
    • Удаление кластера
  • Сценарии использования
    • Добавление данных в БД
    • Миграция данных ClickHouse
    • Шардирование таблиц
    • Использование гибридного хранилища
    • Получение данных из Managed Service for Apache Kafka®
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for ClickHouse
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
    • Словари
    • Шардирование
    • Поддерживаемые клиенты
    • Политика работа с версиями ClickHouse
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • BackupService
      • ClusterService
      • DatabaseService
      • MlModelService
      • ResourcePresetService
      • UserService
      • VersionsService
      • OperationService
    • REST
      • Обзор
      • Backup
        • Обзор
        • get
        • list
      • Cluster
        • Обзор
        • addHosts
        • addShard
        • addZookeeper
        • backup
        • create
        • createExternalDictionary
        • createShardGroup
        • delete
        • deleteExternalDictionary
        • deleteHosts
        • deleteShard
        • deleteShardGroup
        • get
        • getShard
        • getShardGroup
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShardGroups
        • listShards
        • move
        • restore
        • start
        • stop
        • streamLogs
        • update
        • updateShard
        • updateShardGroup
      • Database
        • Обзор
        • create
        • delete
        • get
        • list
      • MlModel
        • Обзор
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Обзор
        • get
        • list
      • User
        • Обзор
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Versions
        • Обзор
        • list
      • Operation
        • Обзор
        • get
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о ClickHouse
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Подключение моделей машинного обучения

Подключение моделей машинного обучения

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

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

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

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

  1. Загрузите файл обученной модели в Object Storage.

  2. Настройте публичный доступ на чтение к файлу модели.

  3. Получите публичную ссылку на модель.

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

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

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

    • Тип — тип модели. Поддерживаются только модели CatBoost: ML_MODEL_TYPE_CATBOOST.
    • Имя — имя модели. Имя модели — один из аргументов функции modelEvaluate(), которая нужна для вызова модели в ClickHouse.
    • URL — адрес модели в Object Storage.
  3. Нажмите кнопку Добавить и дождитесь окончания добавления модели.

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

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

  1. Подключитесь к кластеру с помощью клиента ClickHouse CLI или перейдите на вкладку SQL в консоли управления кластером.

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

    SELECT 
        modelEvaluate('<имя модели>', 
                      <имя столбца 1>,
                      <имя столбца 2>,
                      ...
                      <имя столбца N>)
    FROM <имя таблицы>
    

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

Пример

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

Примечание

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

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

  1. Установите ClickHouse CLI и настройте подключение к кластеру как описано в документации.
  2. Скачайте файл с данными для анализа:
    $ wget https://storage.yandexcloud.net/managed-clickhouse/train.csv  
    
  3. Создайте таблицу для данных:
    $ clickhouse-client --host <FQDN хоста> \
                      --database <имя базы данных>
                      --secure \
                      --user <имя пользователя БД> \
                      --password <пароль пользователя БД> \
                      --port 9440 \
                      -q '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'
    
  4. Загрузите данные в таблицу:
    $ clickhouse-client --host <FQDN хоста> \
                      --database <имя базы данных>
                      --secure \
                      --user <имя пользователя БД> \
                      --password <пароль пользователя БД> \
                      --port 9440 \
                      -q 'INSERT INTO ml_test_table FORMAT CSVWithNames' \
                      < train.csv
    
  5. В консоли управления подключите тестовую модель:
  • Тип — ML_MODEL_TYPE_CATBOOST.
  • Имя — ml_test.
  • URL — https://storage.yandexcloud.net/managed-clickhouse/catboost_model.bin.
  1. Протестируйте модель:
  2. Подключитесь к кластеру с помощью клиента ClickHouse CLI или перейдите на вкладку SQL в консоли управления кластером.
  3. Проверьте работу модели с помощью запросов:
    • Предсказания значения столбца ACTION для первых 10 строк таблицы:
      SELECT 
          modelEvaluate('ml_test', 
                        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 
          modelEvaluate('ml_test', 
                        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
      
В этой статье:
  • Перед подключением модели
  • Подключить модель
  • Применить модель
  • Пример
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»