Хранение данных
Эффективное хранение данных — основа любого аналитического хранилища. YDB использует колоночный формат, архитектуру с разделением хранения и вычислений и автоматические процессы обслуживания для обеспечения высокой производительности и низкой стоимости владения.
Колоночные таблицы
Данные в колоночных таблицах хранятся по столбцам, а не по строкам. Этот подход является стандартом для OLAP-систем и даёт два ключевых преимущества:
- Сокращение объёма чтения: при выполнении запроса (
SELECT column_a, column_b FROM ...) с диска считываются данные только тех столбцов, которые участвуют в запросе; - Сжатие данных: колоночная организация хранения позволяет применять сжатие и кодирование данных индивидуально для каждой колонки, что позволяет сжать данные лучше, чем разнородные данные строки. По умолчанию используется алгоритм сжатия
LZ4без специального кодирования, однако обе настройки могут быть заданы отдельно для каждой колонки. Подробнее в разделе Параметры запроса CREATE TABLE.
Архитектура с разделением хранения и вычислений
Разделение хранения и вычислений — это архитектурный принцип YDB. Узлы, отвечающие за хранение данных (storage nodes), и узлы, выполняющие запросы (dynamic nodes), разделены. Это позволяет:
- Независимо масштабировать ресурсы: если не хватает места на диске, вы добавляете узлы хранения. Если не хватает CPU для запросов — добавляете узлы вычислений. Это отличается от систем с жёстко связанными ресурсами хранения и вычислений;
- Быстро перераспределять нагрузку: для перераспределения вычислительной нагрузки между узлами не требуется физическое перемещение данных, переносятся только метаданные.
Автоматическая оптимизация хранения
YDB спроектирован так, чтобы минимизировать ручные операции по обслуживанию.
- Автоматическое уплотнение (compaction) данных: Данные хранятся в LSM-подобных структурах; процессы слияния и оптимизации данных происходят постоянно в фоновом режиме; вам не нужно запускать
VACUUMили аналогичные команды. - Автоматическое удаление данных: Для управления жизненным циклом данных используйте механизм удаления по TTL.
Встроенная отказоустойчивость
YDB изначально создавалась как отказоустойчивая система и поддерживает различные режимы размещения данных для защиты от сбоев оборудования, стоек или даже целых дата-центров.
