[Документация Yandex Cloud](../../index.md) > [Yandex MPP Analytics for PostgreSQL](../index.md) > [Концепции](overview.md) > Хранилище в Yandex MPP Analytics for PostgreSQL > Типы хранения данных

# Типы хранения данных в Yandex MPP Analytics for PostgreSQL

Yandex MPP Analytics for PostgreSQL позволяет использовать следующие типы хранения данных в таблицах:

* _Без кластеризованных индексов_ (heap storage).

    Таблицы такого типа обеспечивают только _строковое_ хранение данных. Они подходят для обработки транзакций в реальном времени ([OLTP](../../glossary/oltp.md)), когда данные в таблицах часто обновляются операциями `INSERT`, `UPDATE` и `DELETE`.

    Все таблицы, создаваемые в Yandex MPP Analytics for PostgreSQL, по умолчанию используют этот тип хранения данных.

    Подробнее в [документации Greenplum®](https://techdocs.broadcom.com/us/en/vmware-tanzu/data-solutions/tanzu-greenplum/7/greenplum-database/admin_guide-ddl-ddl-storage.html#topic37) и [Apache Cloudberry™](https://cloudberry.apache.org/docs/operate-with-data/heap-and-ao-table-formats#heap-storage).

* _Оптимизированное для добавления_ (append-optimized storage).

    Таблицы такого типа обеспечивают _строковое_ и _колоночное_ хранение. Таблицы для строкового хранения сокращенно называют AO-таблицами (append-optimized), а колоночного — AOCO-таблицами (append-optimized column-oriented). Оба вида таблиц реализованы на основе вспомогательных heap-таблиц. Данные в таблицах AO и AOCO хранятся в сегментных файлах, которые состоят из блоков произвольного объема.

    Таблицы AO и AOCO подходят для [аналитической обработки](../../glossary/data-analytics.md) больших массивов данных ([OLAP](../../glossary/olap.md)), когда данные загружаются большими пакетами и над ними производятся в основном операции чтения.

    Колоночное хранение данных значительно снижает затраты на чтение и запись, когда запрос обращается только к небольшому количеству столбцов из множества всех полей таблицы. Колоночные таблицы также лучше поддаются сжатию. При использовании Yandex MPP Analytics for PostgreSQL в качестве аналитической СУБД рекомендуется использовать колоночные таблицы со стандартным сжатием первого уровня.

    Для таблиц AO и AOCO в кластерах Yandex MPP Analytics for PostgreSQL доступно [гибридное хранилище](hybrid-storage.md): с помощью [расширения Yezzey](../operations/extensions/yezzey.md) можно переместить часть таблиц из хранилища кластера в холодное хранилище и наоборот. Холодное хранилище удобно, если данные таблиц нужно хранить долго, а работать с ними планируется редко. Так хранение [будет дешевле](../pricing/index.md#rules-storage).

    Подробнее в [документации Greenplum®](https://techdocs.broadcom.com/us/en/vmware-tanzu/data-solutions/tanzu-greenplum/7/greenplum-database/admin_guide-ddl-ddl-storage.html#topic38) и [Apache Cloudberry™](https://cloudberry.apache.org/docs/operate-with-data/heap-and-ao-table-formats#append-optimized-storage).

* _PAX-формат_ (PAX storage format). Этот тип хранения доступен только для СУБД Apache Cloudberry™.

    PAX (partition attributes across) — это формат, который сочетает в себе преимущества строкового и колоночного хранения данных в базе: строки таблицы объединяются в блоки, а данные каждого блока хранятся в колонках.

    Этот формат используется для повышения производительности запросов, особенно с точки зрения эффективности использования кеша. Поэтому PAX-формат подходит для сложных OLAP-приложений, которым требуется обрабатывать большие объемы записываемых данных и выполнять частые запросы.

    Особенности PAX-формата:

    * Использует метод обновления и удаления данных без немедленной перезаписи физического файла.

    * Использует многоверсионный контроль параллелизма (multi-version concurrency control, MVCC) для эффективного управления параллелизмом и изоляции чтения и записи. Уровень детализации контроля достигает уровня отдельных файлов с данными.

    * Поддерживает индексы B-дерева, которые повышают скорость извлечения данных при работе с большими объемами информации.

    * Предлагает несколько методов кодирования данных (например, RLE- и дельта-кодирование) и вариантов сжатия (например, zstd и zlib) с различными уровнями сжатия. Эти функции помогают сократить объем хранилища и оптимизировать производительность при чтении.

    * Записывает в файлы с данными подробную статистику об этих данных. Статистика используется для быстрой фильтрации данных и оптимизации запросов.

    Подробнее в [документации Apache Cloudberry™](https://cloudberry.apache.org/docs/operate-with-data/pax-table-format).

* _Динамические таблицы_ (dynamic tables). Этот тип хранения доступен только для СУБД Apache Cloudberry™.

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

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

    Подробнее в [документации Apache Cloudberry™](https://cloudberry.apache.org/docs/performance/use-dynamic-tables).

## Создание колоночных таблиц {#create-columnar-table}

Для создания колоночной таблицы со сжатием передайте параметры, отвечающие за требуемые настройки, в команде `CREATE TABLE`:

```sql
CREATE TABLE tableName (...)
WITH (
    appendonly = true,
    orientation = column,
    compresstype = zstd,
    compresslevel = 1
);
```

## Примеры использования {#examples}

* [Миграция данных из Yandex Managed Service for MySQL® в Yandex MPP Analytics for PostgreSQL с помощью Yandex Data Transfer](../tutorials/mmy-to-mgp.md)

_Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах._

_Apache® и Apache Cloudberry™ являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах._