Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
      • Интеграция сервиса DataSphere с сервисом Yandex Data Processing
      • Классификация изображений на видеокадрах
      • Запуск вычислений по расписанию в DataSphere
      • Запуск вычислений в DataSphere с помощью API
      • Использование данных из Object Storage для обучения модели в DataSphere
      • Создание сервера MLFlow для логирования экспериментов и артефактов
      • Дообучение моделей в DataSphere

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

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Создайте каталог
  • Создайте сервисный аккаунт для проекта DataSphere
  • Добавьте сервисный аккаунт в проект
  • Настройте проект
  • Создайте ноутбук
  • Загрузите и обработайте данные
  • Создайте Cloud Functions
  • Создайте версию Cloud Functions
  • Создайте таймер
  • Как удалить созданные ресурсы
  1. Машинное обучение и искусственный интеллект
  2. Разработка с помощью DataSphere
  3. Запуск вычислений по расписанию в DataSphere

Запуск вычислений по расписанию в Yandex DataSphere

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
    • Создайте каталог
    • Создайте сервисный аккаунт для проекта DataSphere
    • Добавьте сервисный аккаунт в проект
    • Настройте проект
  • Создайте ноутбук
  • Загрузите и обработайте данные
  • Создайте Cloud Functions
    • Создайте версию Cloud Functions
  • Создайте таймер
  • Как удалить созданные ресурсы

Организовать сценарии регулярных запусков в Yandex DataSphere можно с помощью API, вызывая исполнение ячеек ноутбука в Yandex Cloud Functions.

В этом практическом руководстве вы соберете информацию о наиболее обсуждаемых на Reddit акциях, проанализируете тональность обсуждения и настроите регулярное обновление данных.

Сбор и анализ информации об акциях выполняется в DataSphere, регулярное исполнение ячеек запускается по таймеру, созданному в Cloud Functions.

Чтобы настроить регулярный запуск Jupyter Notebook:

  1. Подготовьте инфраструктуру.
  2. Создайте ноутбук.
  3. Загрузите и обработайте данные.
  4. Создайте Cloud Functions.
  5. Создайте таймер.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работы

Перед началом работы нужно зарегистрироваться в Yandex Cloud, настроить сообщество и привязать к нему платежный аккаунт:

  1. На главной странице DataSphere нажмите Попробовать бесплатно и выберите аккаунт для входа — Яндекс ID или рабочий аккаунт в федерации (SSO).
  2. Выберите организацию Yandex Cloud Organization, в которой вы будете работать в Yandex Cloud.
  3. Создайте сообщество.
  4. Привяжите платежный аккаунт к сообществу DataSphere, в котором вы будете работать. Убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его в интерфейсе DataSphere.

Необходимые платные ресурсы

В стоимость реализации регулярных запусков входят:

  • плата за использование вычислительных ресурсов DataSphere;
  • плата за количество вызовов функции Cloud Functions.

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

Войдите в консоль управления Yandex Cloud и выберите организацию, в которой вы работаете с DataSphere. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт.

Если у вас есть активный платежный аккаунт, на странице облака вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура.

Примечание

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

Создайте каталог

Консоль управления
  1. В консоли управления выберите облако и нажмите кнопку Создать каталог.
  2. Введите имя каталога, например data-folder.
  3. Нажмите кнопку Создать.

Создайте сервисный аккаунт для проекта DataSphere

Для доступа к проекту DataSphere из функции Cloud Functions вам понадобится сервисный аккаунт с ролями datasphere.community-projects.editor и functions.functionInvoker.

Консоль управления
  1. Перейдите в каталог data-folder.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. Введите имя сервисного аккаунта, например reddit-user.
  5. Нажмите Добавить роль и назначьте сервисному аккаунту роли datasphere.community-projects.editor и functions.functionInvoker.
  6. Нажмите кнопку Создать.

Добавьте сервисный аккаунт в проект

Чтобы сервисный аккаунт мог запускать проект DataSphere, добавьте его в список участников проекта.

Консоль управления
  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. На вкладке Участники нажмите Добавить участника.
  3. Выберите аккаунт reddit-user и нажмите Добавить.

Настройте проект

Чтобы сократить расходы на использование сервиса DataSphere, настройте время, через которое освобождается закрепленная за проектом ВМ.

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. Перейдите на вкладку Настройки.
  3. В блоке Общие настройки нажмите кнопку  Редактировать
  4. Для настройки Остановить простаивающую ВМ через выберите Другое и укажите 5 минут.
  5. Нажмите кнопку Сохранить.

Создайте ноутбук

  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
  3. На верхней панели нажмите File и выберите New → Notebook.
  4. Выберите ядро и нажмите Select.
  5. Нажмите правой кнопкой мыши на ноутбук и выберите Rename. Введите название test_classifier.ipynb.

Загрузите и обработайте данные

Чтобы загрузить информацию о наиболее обсуждаемых акциях на Reddit и тональности обсуждения, скопируйте код в ячейки ноутбука test_classifier.ipynb. С его помощью вы будете выбирать три наиболее обсуждаемые акции и сохранять их в CSV-файл в хранилище проекта.

  1. Откройте проект DataSphere:

    1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

    2. Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
    3. Откройте вкладку с ноутбуком.
  2. Импортируйте библиотеки:

    import pandas as pd
    import requests
    import os.path
    
  3. Инициализируйте переменные:

    REQUEST_URL = "https://tradestie.com/api/v1/apps/reddit"
    FILE_NAME = "/home/jupyter/datasphere/project/stock_sentiments_data.csv"
    TICKERS = ['NVDA', 'TSLA', 'AAPL']
    
  4. Создайте функцию, которая отправляет запрос к API tradestie и возвращает результат в виде pandas.DataFrame:

    def load_data():
        response = requests.get(REQUEST_URL)
        stocks = pd.DataFrame(response.json())
        stocks = stocks[stocks['ticker'].isin(TICKERS)]
        stocks.drop('sentiment', inplace=True, axis=1)
        return stocks
    
  5. Задайте условие, определяющее файл для записи сведений об акциях:

    if os.path.isfile(FILE_NAME):
        stocks = pd.read_csv(FILE_NAME)
    else:
        stocks = load_data()
        stocks['count'] = 1
        stocks.to_csv(FILE_NAME, index=False)
    
  6. Загрузите новые данные об акциях:

    stocks_update = load_data()
    
  7. Сравните новые данные с имеющимися:

    stocks = stocks.merge(stocks_update, how='left', on = 'ticker')
    stocks['no_of_comments_y'] = stocks['no_of_comments_y'].fillna(stocks['no_of_comments_x'])
    stocks['sentiment_score_y'] = stocks['sentiment_score_y'].fillna(stocks['sentiment_score_y'])
    
  8. Обновите средние арифметические количества комментариев и оценки тональности:

    stocks['count'] += 1 
    stocks['no_of_comments_x'] += (stocks['no_of_comments_y'] - stocks['no_of_comments_x'])/stocks['count'] 
    stocks['sentiment_score_x'] += (stocks['sentiment_score_y'] - stocks['sentiment_score_x'])/stocks['count']
    stocks = stocks[['no_of_comments_x', 'sentiment_score_x', 'ticker', 'count']]
    stocks.columns = ['no_of_comments', 'sentiment_score', 'ticker', 'count']
    print(stocks)
    
  9. Сохраните результаты в файл:

    stocks.to_csv(FILE_NAME, index=False)
    

Создайте Cloud Functions

Чтобы запускать вычисления, не открывая JupyterLab, вам понадобится Cloud Functions, которая будет инициировать запуск вычислений в ноутбуке по API.

Консоль управления
  1. В консоли управления перейдите в каталог, в котором хотите создать функцию.
  2. Выберите сервис Cloud Functions.
  3. Нажмите кнопку Создать функцию.
  4. Введите имя функции, например my-function.
  5. Нажмите кнопку Создать функцию.

Создайте версию Cloud Functions

Версия содержит код функции, параметры запуска и все необходимые зависимости.

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

  2. Выберите сервис Cloud Functions.

  3. Выберите функцию, версию которой хотите создать.

  4. В разделе Последняя версия нажмите кнопку Создать в редакторе.

  5. Выберите среду выполнения Python. Не выбирайте опцию Добавить файлы с примерами кода.

  6. Выберите способ Редактор кода.

  7. Нажмите Создать файл и введите имя файла, например index.

  8. Введите код функции, подставив идентификатор вашего проекта и абсолютный путь к ноутбуку в проекте:

    import requests
    
    def handler(event, context):
    
        url = 'https://datasphere.api.cloud.yandex.net/datasphere/v2/projects/<идентификатор_проекта>:execute'
        body = {"notebookId": "/home/jupyter/datasphere/project/test_classifier.ipynb"}
        headers = {"Content-Type" : "application/json",
                   "Authorization": "Bearer {}".format(context.token['access_token'])}
        resp = requests.post(url, json = body, headers=headers)
    
        return {
        'body': resp.json(),
        }
    

    Где:

    • <идентификатор_проекта> — идентификатор проекта DataSphere, который расположен на странице проекта под названием.
    • notebookId — абсолютный путь к ноутбуку в проекте.
  9. В блоке Параметры задайте параметры версии:

    • Точка входа — index.handler.
    • Сервисный аккаунт — reddit-user.
  10. Нажмите кнопку Сохранить изменения.

Создайте таймер

Для запуска функции каждые 15 минут вам понадобится таймер.

Консоль управления
  1. В консоли управления перейдите в каталог, в котором хотите создать таймер.

  2. Выберите сервис Cloud Functions.

  3. На панели слева выберите Триггеры.

  4. Нажмите кнопку Создать триггер.

  5. В блоке Базовые параметры:

    • Введите имя и описание триггера.
    • В поле Тип выберите Таймер.
    • В поле Запускаемый ресурс выберите Функция.
  6. В блоке Настройки таймера укажите расписание вызова функции Каждые 15 минут.

  7. В блоке Настройки функции выберите функцию и укажите:

    • Тег версии функции.
    • Сервисный аккаунт reddit-user, от имени которого будет вызываться функция.
  8. Нажмите кнопку Создать триггер.

Теперь файл stock_sentiments_data.csv будет обновляться каждые 15 минут. Найти его можно рядом с ноутбуком.

Как удалить созданные ресурсы

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

  • Удалите функцию;
  • Удалите триггер;
  • Удалите проект.

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

Предыдущая
Классификация изображений на видеокадрах
Следующая
Запуск вычислений в DataSphere с помощью API
Проект Яндекса
© 2025 ООО «Яндекс.Облако»