Cloud Databases: создайте первую управляемую базу данных
Cloud Databases — сервис, позволяющий работать с управляемыми базами данных.
Начните работу с сервисом Cloud Databases любым удобным способом:
- Воспользуйтесь инструкцией и создайте первую управляемую базу данных PostgreSQL, подключитесь к ней и выполните тестовые запросы.
- Посмотрите видео, в которых будут созданы управляемые базы данных MySQL, PostgreSQL и ClickHouse в конфигурации Single.
- Пройдите бесплатный обучающий курс. В теоретической части курса объясняется, что такое база данных и система управления базами данных, какие есть типы и конфигурации БД. В практической части курса вы создадите кластер PostgreSQL и БД MySQL, затем подключите созданную БД MySQL к приложению, установленному на виртуальной машине.
Пройдя все шаги этой инструкции, вы:
- Создадите инстанс БД PostgreSQL в конфигурации Single.
- Получите внешний IP-адрес созданного инстанса БД.
- (Опционально) Посмотрите логи созданного инстанса БД.
- Установите в инстанс БД расширение TimescaleDB.
- Подключитесь к БД.
- Создадите таблицы в БД.
- Наполните таблицы данными.
- Выполните тестовые запросы к БД.
- (Опционально) Познакомитесь с данными мониторинга, собранными за время работы инстанса БД.
В качестве примера тестовых данных будет использован автоматически генерируемый набор данных, представляющий собой информацию от сенсоров интернета вещей (IoT): температуры и загрузки CPU. Подробнее про тестовый набор данных читайте в документации Timescale. Процедура генерации подобных наборов данных подробно рассматривается в блоге Timescale.
-
Перейдите в личный кабинет VK Cloud.
-
Выберите проект, в котором будет размещен инстанс БД.
-
Перейдите в раздел Базы данных → Инстансы баз данных.
-
Если в выбранном проекте нет ни одного инстанса БД, нажмите кнопку Создать базу данных.
Иначе нажмите кнопку Добавить.
-
На шаге Конфигурация выберите:
- Тип базы данных PostgreSQL и самую актуальную версию СУБД.
- Конфигурацию Single.
-
Нажмите кнопку Следующий шаг.
-
На шаге Создание инстанса задайте:
-
Имя инстанса базы данных: например,
vk-cloud-dbaas-quickstart. -
Тип виртуальной машины:
STD3-2-8. -
Зону доступности:
Москва (GZ1). -
Тип диска:
SSD. -
Размер диска, GB:
10. -
Включить автомасштабирование диска: убедитесь, что эта опция не выбрана.
-
Сеть:
Создать новую сеть. -
Адрес подсети:
10.0.1.0/24. -
Назначить внешний IP: убедитесь, что эта опция выбрана.
-
Настройки Firewall: выберите
sshиз выпадающего списка.Итоговый список групп безопасности должен иметь вид:
default,ssh. -
Создать реплику: убедитесь, что эта опция не выбрана.
-
Ключ для доступа по SSH:
Создать новый ключ. -
Резервное копирование:
Отключено.
-
-
Нажмите кнопку Следующий шаг.
-
На шаге Инициализация задайте:
-
Тип создания:
Новая база данных. -
Имя базы данных для создания:
tsdb1. -
Имя пользователя:
tsuser1. -
Пароль пользователя: задайте пароль или сгенерируйте его.
-
-
Нажмите кнопку Создать базу данных.
Дождитесь завершения создания инстанса БД, этот процесс может занять длительное время.
-
Перейдите в личный кабинет VK Cloud.
-
Выберите проект, где находится инстанс БД.
-
Перейдите в раздел Базы данных → Инстансы баз данных.
-
Нажмите на имя инстанса БД. Откроется страница с информацией.
-
Перейдите на вкладку Информация.
В параметре Внешний IP-адрес будет указан нужный адрес.
-
Подключитесь к инстансу БД по SSH, используя приватный SSH-ключ, полученный при создании инстанса БД:
Linux/macOSWindowschmod 0600 <путь/к/ключу/ключ.pem>ssh -i <путь/к/ключу/ключ.pem> admin@<внешний IP-адрес инстанса БД> -
Посмотрите логи инстанса:
journalctl -u postgresqlПо приведенному фрагменту вывода можно заключить, что PostgreSQL запущен, работает и готов принимать входящие соединения.
-
Перейдите в личный кабинет VK Cloud.
-
Выберите проект, где находится инстанс БД.
-
Перейдите в раздел Базы данных → Инстансы баз данных.
-
Нажмите на имя инстанса БД. Откроется страница с информацией.
-
Перейдите на вкладку Расширения.
-
Нажмите кнопку Добавить.
-
В выпадающем списке Доступные расширения выберите
Расширение с открытым исходным кодом для хранения данных временного ряда (timescaledb). -
Нажмите кнопку Добавить.
Дождитесь завершения установки расширения: оно должно перейти из состояния
Создаетсяв состояниеАктивное.
-
Установите утилиту
psql:Linux (APT)Linux (RPM)macOS (Homebrew)Windows-
Подключите репозиторий PostgreSQL:
sudo apt install curl ca-certificates gnupgcurl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/nullsudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'sudo apt update -
Установите утилиту
psql:sudo apt install -y postgresql-client
-
-
Подключитесь к базе данных
tsdb1с помощью утилитыpsql:-
Выполните команду:
psql -h <внешний IP-адрес инстанса БД> -d tsdb1 -U tsuser1 -
Введите пароль пользователя
tsuser1, заданный при создании инстанса БД.
При успешном подключении должно отобразиться приглашение:
tsdb1=> -
-
Активируйте расширение TimescaleDB:
CREATE EXTENSION timescaledb;Дождитесь появления приглашения
tsdb1=>. -
Создайте таблицу
sensors:CREATE TABLE sensors(id SERIAL PRIMARY KEY,type VARCHAR(50),location VARCHAR(50)); -
Создайте таблицу
sensor_data:CREATE TABLE sensor_data (time TIMESTAMPTZ NOT NULL,sensor_id INTEGER,temperature DOUBLE PRECISION,cpu DOUBLE PRECISION,FOREIGN KEY (sensor_id) REFERENCES sensors (id)); -
Убедитесь, что таблицы были успешно созданы:
SELECT tablenameFROM pg_catalog.pg_tablesWHERE tablename LIKE 'sensor%'; -
Конвертируйте таблицу PostgreSQL
sensor_dataв гипертаблицу (hypertable) TimescaleDB:SELECT create_hypertable('sensor_data', 'time'); -
Убедитесь, что гипертаблица
sensor_dataбыла успешно создана:SELECT hypertable_nameFROM timescaledb_information.hypertables;
-
Наполните таблицу
sensorsданными:INSERT INTO sensors (type, location) VALUES('a','floor'),('a', 'ceiling'),('b','floor'),('b', 'ceiling'); -
Убедитесь, что данные были успешно вставлены в таблицу:
SELECT * FROM sensors; -
Наполните таблицу
sensor_dataслучайно сгенерированными данными:INSERT INTO sensor_data (time, sensor_id, cpu, temperature)SELECTtime,sensor_id,random() AS cpu,random()*100 AS temperatureFROM generate_series(now() - interval '24 hour', now(), interval '5 minute') AS g1(time), generate_series(1,4,1) AS g2(sensor_id); -
Убедитесь, что данные были успешно вставлены в таблицу, выведя первые несколько строк таблицы:
SELECT * FROM sensor_data ORDER BY time LIMIT 8;
-
Выведите средние значения температуры и загрузки CPU за тридцатиминутные интервалы:
SELECTtime_bucket('30 minutes', time) AS period,AVG(temperature) AS avg_temp,AVG(cpu) AS avg_cpuFROM sensor_dataGROUP BY periodORDER BY period; -
Выведите средние значения температуры и загрузки CPU за тридцатиминутные интервалы, а также последнее зафиксированное за интервал значение температуры:
SELECTtime_bucket('30 minutes', time) AS period,AVG(temperature) AS avg_temp,last(temperature, time) AS last_temp,AVG(cpu) AS avg_cpuFROM sensor_dataGROUP BY periodORDER BY period;
Вывод результатов запросов, похожих на приведенные, свидетельствует о корректной работе PostgreSQL и расширения TimescaleDB.
Для PostgreSQL доступен мониторинг. Познакомьтесь с собранными данными мониторинга:
- Перейдите в личный кабинет VK Cloud.
- Выберите проект, где находится инстанс БД.
- Перейдите в раздел Базы данных → Инстансы баз данных.
- Нажмите на имя инстанса БД. Откроется страница с информацией.
- Перейдите на вкладку Мониторинг.
- Выберите нужный временной интервал и посмотрите собранные данные.
Инстанс БД тарифицируется и потребляет вычислительные ресурсы. Если он вам больше не нужен:
- Удалите инстанс БД.
- При необходимости удалите Floating IP-адрес, назначенный инстансу БД. Присутствующие в проекте Floating IP-адреса тарифицируются.
В этом видео будет создана управляемая база данных MySQL в конфигурации Single, настроены резервное копирование и мониторинг, затем будет выполнено подключение к созданной БД.
MySQL используется преимущественно для веб-приложений и небольших проектов.
Пройдите бесплатный обучающий курс.
В теоретической части курса объясняется, что такое база данных и система управления базами данных, какие есть типы и конфигурации БД. В практической части курса вы создадите кластер PostgreSQL и БД MySQL, затем подключите созданную БД MySQL к приложению, установленному на виртуальной машине.