Типы хранения данных в Greenplum®
Greenplum® позволяет использовать два типа хранения данных в таблицах
-
Без кластеризованных индексов (heap storage).
Таблицы такого типа обеспечивают только строковое хранение данных. Они подходят для обработки транзакций в реальном времени (OLTP), когда данные в таблицах часто обновляются операциями
INSERT
,UPDATE
иDELETE
.Все таблицы, создаваемые в Greenplum®, по умолчанию используют этот тип хранения данных.
-
Оптимизированное для добавления (append-optimized storage).
Таблицы такого типа обеспечивают строковое и колоночное хранение. Таблицы для строкового хранения сокращенно называют AO-таблицами (append-optimized), а колоночного — AOCO-таблицами (append-optimized column-oriented). Оба вида таблиц реализованы на основе вспомогательных heap-таблиц. Данные в таблицах AO и AOCO хранятся в сегментных файлах, которые состоят из блоков произвольного объема.
Таблицы AO и AOCO подходят для аналитической обработки больших массивов данных (OLAP), когда данные загружаются большими пакетами и над ними производятся в основном операции чтения.
Колоночное хранение данных значительно снижает затраты на чтение и запись, когда запрос обращается только к небольшому количеству столбцов из множества всех полей таблицы. Колоночные таблицы также лучше поддаются сжатию. При использовании Greenplum® в качестве аналитической СУБД рекомендуется использовать колоночные таблицы со стандартным сжатием первого уровня.
Для таблиц AO и AOCO Yandex Cloud разработал расширение Yezzey, которое позволяет выгрузить данные с дисков кластера Managed Service for Greenplum® в холодное хранилище Yandex Object Storage. Данные надежно хранятся в служебном бакете. Подробнее о работе с холодным хранилищем см. в руководстве Выгрузка данных Greenplum® в холодное хранилище Yandex Object Storage.
Создание колоночных таблиц
Для создания колоночной таблицы со сжатием передайте параметры, отвечающие за требуемые настройки, в команде CREATE TABLE
:
CREATE TABLE tableName (...)
WITH (
appendonly = true,
orientation = column,
compresstype = zstd,
compresslevel = 1
);
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.