VK Cloud logo
Обновлена 20 декабря 2023 г. в 05:58

Быстрый старт

Быстрый старт поможет вам на примере PostgreSQL начать работу с сервисом и познакомиться с его возможностями.

Пройдя все шаги быстрого старта, вы:

  1. Создадите инстанс БД PostgreSQL из одного хоста.

  2. Установите в инстанс расширение TimescaleDB.

  3. Научитесь подключаться к инстансу, как для просмотра логов, так и для выполнения SQL-запросов.

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

    Далее будет использован автоматически генерируемый тестовый набор данных, представляющий собой набор информации от сенсоров интернета вещей (IoT): температуры и загрузки CPU. Подробнее про тестовый набор данных читайте в документации Timescale.

    Процедура генерации подобных наборов данных подробно рассматривается в блоге Timescale.

  5. Познакомитесь с собранными за время работы инстанса БД данными мониторинга.

Подготовительные шаги

  1. Убедитесь, что утилита psql установлена. Для этого посмотрите версию утилиты:

    psql --version

    Если утилита установлена, будет выведена ее версия:

    psql (PostgreSQL) 14.7

    Если утилита не установлена, будет выведена информация о том, что команда psql не найдена.

  2. Если утилита psql не установлена, установите ее:

    1. Подключите репозиторий 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
    2. Установите утилиту psql:

      sudo apt install -y postgresql-client

1. Создайте инстанс БД PostgreSQL

  1. Перейдите в личный кабинет VK Cloud.

  2. Выберите проект, в котором будет размещен инстанс БД.

  3. Перейдите в раздел Базы данных → Инстансы баз данных.

  4. Если в выбранном проекте нет ни одного инстанса БД, нажмите кнопку Создать базу данных.

    Иначе нажмите кнопку Добавить.

  5. На шаге «Конфигурация» выберите:

    • Тип базы данных PostgreSQL и самую актуальную версию СУБД.
    • Конфигурацию Single.
  6. Нажмите кнопку Следующий шаг.

  7. На шаге «Создание инстанса» задайте:

    • Имя инстанса базы данных: например, vk-cloud-dbaas-quickstart.

    • Тип виртуальной машины: STD3-2-8.

    • Зону доступности: Москва (GZ1).

    • Тип диска: SSD.

    • Размер диска, GB: 10.

    • Включить автомасштабирование диска: убедитесь, что эта опция не выбрана.

    • Сеть: Создать новую сеть.

    • Адрес подсети: 10.0.1.0/24.

    • Назначить внешний IP: убедитесь, что эта опция выбрана.

    • Настройки Firewall: выберите ssh из выпадающего списка.

      Итоговый список групп безопасности должен иметь вид: default, ssh.

    • Создать реплику: убедитесь, что эта опция не выбрана.

    • Ключ для доступа по SSH: Создать новый ключ.

    • Резервное копирование: Отключено.

    • Включить мониторинг: убедитесь, что эта опция выбрана.

  8. Нажмите кнопку Следующий шаг.

  9. На шаге «Инициализация» задайте:

    • Тип создания: Новая база данных.

    • Имя базы данных для создания: tsdb1.

    • Имя пользователя: tsuser1.

    • Пароль пользователя: задайте пароль или сгенерируйте его.

  10. Нажмите кнопку Создать базу данных.

    Дождитесь завершения создания инстанса БД, этот процесс может занять длительное время.

2. Получите внешний IP-адрес инстанса БД

  1. Перейдите в личный кабинет VK Cloud.

  2. Выберите проект, где находится инстанс БД.

  3. Перейдите в раздел Базы данных → Инстансы баз данных.

  4. Нажмите на имя инстанса БД. Откроется страница с информацией.

  5. Перейдите на вкладку Информация.

    В параметре Внешний IP-адрес будет указан нужный адрес.

3. (Опционально) Посмотрите логи инстанса БД

  1. Подключитесь к инстансу БД по SSH, используя приватный SSH-ключ, полученный при создании инстанса БД:

    chmod 0600 <путь/к/ключу/ключ.pem>ssh -i <путь/к/ключу/ключ.pem> admin@<внешний IP-адрес инстанса БД>
  2. Посмотрите логи инстанса:

    journalctl -u postgresql

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

4. Установите расширение TimescaleDB

  1. Перейдите в личный кабинет VK Cloud.

  2. Выберите проект, где находится инстанс БД.

  3. Перейдите в раздел Базы данных → Инстансы баз данных.

  4. Нажмите на имя инстанса БД. Откроется страница с информацией.

  5. Перейдите на вкладку Расширения.

  6. Нажмите кнопку Добавить.

  7. В выпадающем списке Доступные расширения выберите Расширение с открытым исходным кодом для хранения данных временного ряда (timescaledb).

  8. Нажмите кнопку Добавить.

    Дождитесь завершения установки расширения: оно должно перейти из состояния Создается в состояние Активное.

5. Подключитесь к базе данных

Подключитесь к базе данных tsdb1 с помощью утилиты psql:

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

    psql -h <внешний IP-адрес инстанса БД> -d tsdb1 -U tsuser1
  2. Введите пароль пользователя tsuser1, заданный при создании инстанса БД.

При успешном подключении должно отобразиться приглашение:

tsdb1=>

6. Создайте необходимые таблицы

  1. Активируйте расширение TimescaleDB:

    CREATE EXTENSION timescaledb;

    Дождитесь появления приглашения tsdb1=>.

  2. Создайте таблицу sensors:

    CREATE TABLE sensors(  id SERIAL PRIMARY KEY,  type VARCHAR(50),  location VARCHAR(50));
  3. Создайте таблицу 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));
  4. Убедитесь, что таблицы были успешно созданы:

    SELECT tablenameFROM pg_catalog.pg_tablesWHERE tablename LIKE 'sensor%';
  5. Конвертируйте таблицу PostgreSQL sensor_data в гипертаблицу (hypertable) TimescaleDB:

    SELECT create_hypertable('sensor_data', 'time');
  6. Убедитесь, что гипертаблица sensor_data была успешно создана:

    SELECT hypertable_nameFROM timescaledb_information.hypertables;

7. Наполните таблицы данными

  1. Наполните таблицу sensors данными:

    INSERT INTO sensors (type, location) VALUES('a','floor'),('a', 'ceiling'),('b','floor'),('b', 'ceiling');
  2. Убедитесь, что данные были успешно вставлены в таблицу:

    SELECT * FROM sensors;
  3. Наполните таблицу sensor_data случайно сгенерированными данными:

    INSERT INTO sensor_data (time, sensor_id, cpu, temperature)SELECT  time,  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);
  4. Убедитесь, что данные были успешно вставлены в таблицу, выведя первые несколько строк таблицы:

    SELECT * FROM sensor_data ORDER BY time LIMIT 8;

8. Выполните тестовые запросы

  1. Выведите средние значения температуры и загрузки CPU за тридцатиминутные интервалы:

    SELECT  time_bucket('30 minutes', time) AS period,  AVG(temperature) AS avg_temp,  AVG(cpu) AS avg_cpuFROM sensor_dataGROUP BY periodORDER BY period;
  2. Выведите средние значения температуры и загрузки CPU за тридцатиминутные интервалы, а также последнее зафиксированное за интервал значение температуры:

    SELECT  time_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.

9. (Опционально) Познакомьтесь с данными мониторинга инстанса БД

При создании инстанса БД был включен мониторинг. Познакомьтесь с собранными данными мониторинга:

  1. Перейдите в личный кабинет VK Cloud.
  2. Выберите проект, где находится инстанс БД.
  3. Перейдите в раздел Базы данных → Инстансы баз данных.
  4. Нажмите на имя инстанса БД. Откроется страница с информацией.
  5. Перейдите на вкладку Мониторинг.
  6. Выберите нужный временной интервал и посмотрите собранные данные.

Удалите неиспользуемые ресурсы

Инстанс БД тарифицируется и потребляет вычислительные ресурсы. Если он вам больше не нужен:

  1. Удалите инстанс БД.
  2. При необходимости удалите плавающий IP-адрес, назначенный инстансу БД. Присутствующие в проекте плавающие IP-адреса тарифицируются.