Кратко:

  • Создание базы данных YDB в dedicated режиме.
  • Создание базы данных требует выбора имени, вычислительных ресурсов и количества групп хранения.
  • Выбор облачной сети и подсетей для работы с БД, присвоение публичного IP-адреса.
  • Создание БД занимает несколько минут, после чего можно подключиться к ней и запустить тестовое приложение.
  • В тестовом приложении создаются таблицы с данными о сериалах.
  • В следующей практической работе вы научитесь работать с данными в вашей БД при помощи YQL-запросов.

Практическая работа. Создание базы данных

В этой практической работе вы создадите БД YDB в dedicated режиме, научитесь подключаться к ней и добавлять данные из тестового приложения.

Создание базы данных

  1. На стартовой странице консоли управления перейдите в дашборд каталога, в котором будете создавать БД, нажмите кнопку Создать ресурс и выберите в списке База данных YDB.
    image
  2. В открывшемся окне выберите тип БД dedicated. Интерфейс создания новой БД немного отличается от уже знакомых вам интерфейсов создания кластеров управляемых БД. Это связано с архитектурными особенностями сервиса.
    image
  3. Выберите для вашей БД имя и необходимые вычислительные ресурсы (для практических работ этой темы достаточно одного хоста конфигурации medium), а также количество групп хранения (достаточно одной группы).
    Группа хранения — это массив независимых дисковых накопителей, объединённых по сети в единый логический элемент. Она состоит из 9 дисков, расположенных по три в каждой из трёх зон доступности. Такая конфигурация обеспечивает устойчивость при одновременном отказе одной из зон и отказе диска в другой зоне. Стандартный размер группы хранения — 100 ГБ.
  4. Выберите облачную сеть и подсети для работы с БД. Можно оставить сеть по умолчанию или выбрать ту, которую создали в предыдущем курсе. БД будет доступна для всех виртуальных машин, которые подключены к той же облачной сети.
    image
     
  5. Нажмите кнопку Создать базу данных.
    Создание БД занимает несколько минут. Когда статус БД изменится с Provisioning на Running, она готова к работе.
  6. Кликнув на созданную БД в консоли управления, вы перейдёте на вкладку Обзор.
    image
    В блоке Соединение приведена информация, которая понадобится для подключения к БД:
    • Эндпоинт — точка подключения с указанием протокола, представляющая собой в данном случае адрес, на который посылаются сообщения;
    • Размещение базы данных — полный путь к БД.
    Примеры подключений из командной строки и приложений вы можете посмотреть, нажав на кнопку Подключиться.

Подключение к базе данных и запуск тестового приложения

В этой части практической работы вы подключитесь к БД и запустите тестовое приложение, которое создаст в ней несколько таблиц с данными о популярных сериалах.
  1. Для того, чтобы выполнить эту задачу, вам понадобится сервисный аккаунт с ролями viewer и editor. Перейдите в дашборд каталога и выберите вкладку Сервисные аккаунты. Создайте сервисный аккаунт, назначив для него указанные роли.
    image
  2. Вы можете запускать тестовое приложение со своего компьютера или с виртуальной машины в Yandex Cloud. В данном примере используется OC Ubuntu и приложение на Python.
    Для запуска приложения нужно склонировать на свою машину репозиторий YDB Python SDK, из которого оно будет вызываться, а также установить библиотеки ydb, iso8601 и yandexcloud. Воспользуйтесь для этого следующими командами:
    git clone https://github.com/yandex-cloud/ydb-python-sdk.git
    sudo pip3 install iso8601 ydb yandexcloud
     
  3. Создайте авторизованный ключ для вашего сервисного аккаунта и сохраните его в файл с помощью интерфейса командной строки Yandex Cloud.
    mkdir ~/.ydb
    
    yc iam key create \
    --service-account-name <имя сервисного аккаунта> \
    --output ~/.ydb/<key_name>.json
     
  4. Добавьте ключ в переменную окружения YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS.
    export YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS=~/.ydb/<key_name>.json
     
     
  5. Запустите тестовое приложение basic_example_v1 из репозитория YDB Python SDK, указав в качестве параметров подключения значения эндпоинта и полного пути к БД.
    cd ./ydb-python-sdk/examples/basic_example_v1
    python3 __main__.py \
    -e <Эндпоинт> \
    -d <Размещение базы данных>
     
    Результат выполнения приложения должен выглядеть так:
    > describe table: series
    column, name: series_id , Uint64
    column, name: title , Utf8
    column, name: series_info , Utf8
    column, name: release_date , Uint64
    
    > select_simple_transaction:
    series, id:  1 , title:  IT Crowd , release date:  b'2006-02-03'
    
    > bulk upsert: episodes
    
    > select_prepared_transaction:
    episode title: To Build a Better Beta , air date: b'2016-06-05'
    
    > select_prepared_transaction:
    episode title: Bachman's Earnings Over-Ride , air date: b'2016-06-12'
    
    > explicit TCL call
    
    > select_prepared_transaction:
    episode title: TBD , air date: b'2022-08-24'
     
  6. Вернитесь в консоль управления Yandex Cloud, чтобы посмотреть на результаты работы приложения. Переключитесь на вкладку Навигация.
    image
    В БД были созданы три таблицы — episodes, seasons и series — с информацией о сериалах «IT Crowd» и «Silicon Valley». Кликнув по названию таблицы, вы увидите содержащиеся в ней данные. А если подвести к названию таблицы курсор и кликнуть на значок «информация» справа, то внизу появится дополнительное окно с вкладками Обзор, Схема и Партиции.
    image
    Кнопка +Создать на панели Навигация служит для создания директорий и таблиц. С её помощью можно создать новую таблицу, не прибегая к командам YQL.
    image
В следующей практической работе вы научитесь работать с данными в вашей БД при помощи YQL-запросов.