Режимы работы OLTP или OLAP
При работе с базами данных выделяют два основных сценария: On-line Transaction Processing (Онлайн обработка транзакций, OLTP) и On-line Analytical Processing (Онлайн аналитическая обработка, OLAP).
Режим OLTP ориентирован на быстрое выполнение большого потока транзакций, каждая из которых обрабатывает сравнительно небольшой объем данных. А режим OLAP в основном предназначен для анализа данных с более низким относительно OLTP числом транзакций, но со значительно большим объемом обрабатываемых данных.
Analytics β
OLTP-возможности Serverless Yandex Managed Service for YDB используются в стадии Production большим количеством пользователей. Возможности работы в сценарии OLAP находятся в данный момент в стадии Preview
. Для уменьшения взаимовлияния типов нагрузок друг на друга развернут отдельный тип базы данных для OLAP нагрузок под названием Analytics β
.
Базы данных Analytics β
— это полностью управляемые (serverless) базы данных YDB, предназначенные для аналитической обработки данных. С их помощью удобно решать задачи периодического анализа данных, строить витрины данных или выполнять любые другие аналитические задачи.
Примечание
В настоящий момент использование баз данных Analytics β
не тарифицируется. Оплачивается только используемое место хранения данных по тарифам Serverless Yandex Managed Service for YDB.
Выделенные базы данных Yandex Managed Service for YDB
OLAP-обработка данных доступна в стадии Preview
в выделенных (dedicated) базах данных Yandex Managed Service for YDB.
Важно
При работе внутри одной базы данных OLAP- и OLTP-нагрузки делят общие ресурсы базы данных, при этом профили использования ресурсов базы данных для OLAP- и OLTP-нагрузок существенно отличаются друг от друга. Не рекомендуется объединять в рамках одной базы данных production нагрузки разных типов из-за взаимовлияния профилей нагрузки друг на друга.
Колоночные таблицы
Используемые в OLAP-нагрузках данные рекомендуется хранить в колоночных таблицах
Колоночные таблицы YDB хранят данные каждого столбца отдельно (независимо) от других столбцов. Такой принцип хранения данных оптимизирован для использования в OLAP-сценариях, так как при построении аналитических отчетов часто используются лишь несколько столбцов исходных данных и колоночное хранение позволяет считывать с дисков только те столбцы, которые непосредственно участвуют в запросе. Еще один плюс такого подхода — высокая степень сжатия данных, так как в рамках каждого столбца зачастую хранятся повторяющиеся или близкие данные. Минусом является то, что выполнение операций над полными строками становится более затратным из-за необходимости восстанавливать их на лету из отдельных ячеек.
На данный момент основной сценарий использования колоночных таблиц YDB — запись данных с возрастающим первичным ключом (например, время события), анализ этих данных и удаление устаревающих данных по TTL. Оптимальным способом добавления данных в колоночные таблицы YDB является пакетная запись, выполняемая блоками в единицы мегабайт.
Примечание
В настоящий момент управление данными колоночных таблиц через SQL-конструкции INSERT INTO
, UPSERT
, UPDATE
, REPLACE
, DELETE
не поддерживаются. Для записи данных используйте поставку данных из внешних систем (ydb import