VK Cloud

Модуль 3

Хранение и анализ данных с использованием облачных сервисов

Тема 1

Что такое облачные СУБД и какие они бывают

На прошлых уроках мы разобрали базовые инфраструктурные сервисы в облаках и можем перейти к преднастроенным платформенным сервисам в облаке (PaaS). Это решения, которые размещены провайдером в облаке и преднастроены, чтобы пользователь мог максимально быстро и просто начать их применять. Один из них — управляемые базы данных (DBaaS, managed databases).

Виды баз данных

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

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

Существуют и другие БД, аналитические. Они позволяют эффективно реализовать аналитику хранимых данных, чтобы из них можно было получить новую полезную информацию. Это нужно для построения отчетности, сводной аналитики по компании для верхнеуровневой оценки деятельности, обнаружения различных аномалий.

И есть еще один тип баз данных, которые реализуют другой подход к хранению и запросу данных для решения локальных задач. Такие базы данных называют NoSQL, Not-Only-SQL.

Тип баз данныхПример БДОсобенности

Реляционные

PostgreSQL,
MySQL

  • вставка одиночных записей
  • небольшие выборки без сложных фильтров
  • большое количество пользователей

Аналитические

ClickHouse,
Greenplum

  • вставка большого количества строк сразу
  • выполнение сложных запросов
  • небольшое количество пользователей

NoSQL

MongoDB,
Tarantool,
Redis

  • отсутствие связей между таблицами (документами),
  • простое горизонтальное масштабирование,
  • быстрый доступ к объектам по ключам
  • другие особенности хранения данных

Из реляционных баз данных в VK Cloud доступны PostgreSQL, в том числе версия от российского вендора PostgresPRO, MySQL. К аналитическим относятся ClickHouse, Arenadata DB (на базе Open Source БД Greenplum). Среди NoSQL баз данных доступны Redis, MongoDB и Tarantool.

Использование баз данных в облаке

При использовании любых баз данных в облаке пользователь получает только строку подключения, с помощью которой он может подключиться к базе и сохранять или получать данные. Все остальные задачи по установке нужного ПО, его обновлению, обслуживанию операционной системы провайдер берет на себя. Также некоторые функции доступны пользователю по нажатию одной кнопки через личный кабинет. Это могут быть и достаточно трудозатратные для реализации функции: построение мониторинга и централизованного сбора логов, настройка репликации данных, создание планов резервного копирования.

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

Таким образом, использование управляемых баз данных дает следующие преимущества:

  1. Быстрота установки.
  2. Минимальные трудозатраты для администраторов.
  3. Дополнительные сервисы в виде мониторинга, алертинга, бэкапирования в надёжное объектное хранилище.
  4. Выбор баз данных под разные задачи.
  5. Оплата по мере использования.
  6. Простота масштабирования при росте или сокращении объема данных.

Создание БД MySQL

Создание БД PostgreSQL

Создание БД ClickHouse

Создание БД в VK Cloud

Платформа VK Cloud предоставляет достаточно широкий выбор баз данных как сервис (DBaaS). На данный момент доступны следующие популярные СУБД:

  • Postgres Pro,
  • MySQL,
  • PostgreSQL,
  • ClickHouse,
  • Redis,
  • MongoDB,
  • Tarantool.

На странице «Инстансы баз данных» отображаются все существующие на данный момент инстансы, реплики и кластеры баз данных. Мы можем видеть информацию по инсталляциям: состав, тип виртуальных машин, внутренние и внешние IP-адреса, сколько места на диске используется под данные базы (включая индексы, системные таблицы и другие сущности). Через контекстные меню на странице «Инстансы баз данных» выполнять различные действия как на уровне инсталляции (кластер/реплика/standalone), так и на уровне отдельных виртуальных машин.

Детальная информация доступна в параметрах конкретной инсталляции. Также через параметры инсталляции можно создавать/удалять базы данных, создавать пользователей для баз данных, изменять конфигурационные параметры СУБД, устанавливать расширения (агенты мониторинга, СУБД-extensions).

Посмотрим на основные параметры, которые нужно указать при создании базы данных. Рассмотрим на примере PostgreSQL. Переходим в «Базы данных» -> «Инстансы баз данных» -> «Добавить инстанс».

Здесь мы видим все доступные для создания базы данных и их версии. После выхода новой версии обновление в облаке происходит не сразу — сначала нужно тщательно протестировать релиз, чтобы на платформе все работало без проблем. Также здесь можно выбрать одну из конфигураций базы данных:

  • Сингл. Подойдет для тестовых и разработческих сред. Включает в себя только один сервер.
  • Master-Slave. Здесь уже помимо основного сервера будет сервер с асинхронной репликой. То есть все данные, которые сохраняют на сервере, будут с небольшой задержкой скопированы на второй. Это позволяет построить более надежное решение для рабочих нагрузок.
  • Кластер. Конфигурация, которая включает в себя основной сервер (мастер), синхронную реплику и асинхронную реплику. Любые данные считаются записанными (транзакция завершенной), только если они записались на мастер и синхронную реплику. Это наиболее отказоустойчивое и надёжное решение.

На следующем шаге мы указываем несколько параметров, которые связаны с инфраструктурой:

  • Тип виртуальной машины. Количество CPU и объем оперативной памяти.
  • Зона доступности. В каком ЦОДе будет развернута база данных.
  • Тип дисков. Рекомендуется использовать наиболее производительные для баз данных, особенно для рабочих нагрузок. Базы данных наиболее требовательны к дискам.
  • Автомасштабирование дисков и максимальный размер. При достижении порогового значения диски будут автоматически увеличиваться.
  • Сеть и внешний IP-адрес. Не рекомендуется задавать его из соображений безопасности.
  • Расписание бэкапирования и глубину хранения бэкапов. Есть стратегия GFS — тогда мы отдельно задаем глубину хранения для еженедельных, ежемесячных и ежегодных бэкапов. Это позволяет оптимизировать затраты на хранение бэкапов.

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

Документация по DBaaS