Параметры конфигурации классов таблиц

Этот документ описывает параметры конфигурации, связанные с классами таблиц в системе.

Примечание!
Для обеспечения стабильности и безопасности системы ручное изменение этих параметров должно выполняться с осторожностью.


Параметры конфигурации таблиц HEAP / Append-Optimized (AO)

default_table_access_method


Задаёт метод доступа к таблице по умолчанию, если в команде CREATE TABLE он явно не указан.

Тип данных Значение по умолчанию Допустимые значения Область применения
enum heap heap / ao_row / ao_column / mars2 / mars3 master; session

gp_create_table_random_default_distribution


Управляет созданием таблицы при использовании DISTRIBUTED BY или CREATE TABLE для создания таблицы HEAP без указания условия CREATE TABLE AS.

  • Для CREATE TABLE: если этот параметр установлен в off (значение по умолчанию), а в команде создания таблицы не указано условие DISTRIBUTED BY, YMatrix выбирает ключ распределения согласно следующим правилам:
    • Если указано условие LIKE или INHERITS, YMatrix копирует ключ распределения из исходной или родительской таблицы.
    • Если указано ограничение PRIMARY KEY или UNIQUE, YMatrix выбирает наибольшее подмножество ключевых столбцов в качестве ключа распределения.
    • Если ни ограничения, ни LIKE, ни INHERITS не указаны, YMatrix выбирает первый подходящий столбец в качестве ключа распределения. (Столбцы геометрических или пользовательских типов не допускаются в качестве ключей распределения YMatrix.)
  • Если параметр установлен в on, и условие DISTRIBUTED BY не указано, YMatrix действует следующим образом:
    • Если не указаны столбцы PRIMARY KEY или UNIQUE, таблица распределяется случайным образом (DISTRIBUTED RANDOMLY). Распределение остаётся случайным даже при наличии в команде LIKE или INHERITS.
    • Если указаны столбцы PRIMARY KEY или UNIQUE, необходимо также указать условие DISTRIBUTED BY. В противном случае команда завершится с ошибкой.
  • Для команд CREATE TABLE AS без условия распределения:
    • Если таблицу создаёт оптимизатор запросов Postgres, а параметр установлен в off, стратегия распределения определяется командой.
    • Если таблицу создаёт оптимизатор запросов Postgres, а параметр установлен в on, стратегия распределения — случайная.
    • Если таблицу создаёт Greenplum ORCA, стратегия распределения всегда случайна, независимо от значения параметра.
Тип данных Значение по умолчанию Область применения
boolean off master; system; reload

gp_default_storage_options


Задаёт значения по умолчанию для параметров хранения таблиц при использовании команды CREATE TABLE.

  • Поддерживаемые параметры (указываются как список через запятую):
    • appendoptimized. Примечание: можно использовать синтаксис appendoptimized=value для указания типа хранения таблицы с добавлением. appendoptimized — это упрощённый псевдоним устаревшего параметра appendonly. YMatrix сохраняет appendonly в каталоге и отображает его при перечислении параметров хранения для таблиц с добавлением.
    • blocksize
    • checksum
    • compresstype
    • compresslevel
    • orientation
  • Этот параметр можно использовать вместо указания параметров хранения в предложении WITH команды CREATE TABLE. Параметры, указанные в CREATE TABLE, имеют приоритет над параметрами, заданными этим параметром.
  • Не все комбинации параметров хранения допустимы. При указании недопустимых параметров возвращается ошибка. Подробнее см. в документации команды CREATE TABLE.
  • Значения по умолчанию можно задавать на уровне базы данных или пользователя. При задании параметров на разных уровнях применяется следующий приоритет (от высшего к низшему) при создании таблицы пользователем:
    1. Значения, указанные в предложении WITH или ENCODING команды CREATE TABLE
    2. Значения, заданные для пользователя с помощью ALTER ROLE...SET
    3. Значения, заданные для базы данных с помощью ALTER DATABASE...SET
    4. Системные значения, заданные с помощью инструмента gpconfig
  • Значения параметров не суммируются. Например, если на уровне базы данных заданы appendoptimized и compresstype, а пользователь задаёт orientation, параметры на уровне базы данных игнорируются.
  • Пример: команда ALTER DATABASE задаёт значения по умолчанию для orientation и compresstype для базы данных mytest: ALTER DATABASE mytest SET gp_default_storage_options = 'orientation=column, compresstype=rle_type'. Таблицы с добавлением, созданные в mytest, используют столбцовую ориентацию с RLE-сжатием. В предложении appendoptimized=TRUE достаточно указать только WITH.
  • Пример: команда gpconfig задаёт системные параметры хранения по умолчанию. Если задано несколько параметров, значение должно быть заключено в одинарные кавычки: gpconfig -c 'gp_default_storage_options' -v 'appendoptimized=true, orientation=column'.
  • Пример: команда gpconfig отображает текущее значение параметра. Значение должно быть одинаковым на мастере YMatrix и всех сегментах: gpconfig -s 'gp_default_storage_options'.
Значение по умолчанию Допустимые значения Область применения
appendoptimized=FALSE
blocksize=32768
checksum=TRUE
compresstype=none
compresslevel=0
orientation=ROW
appendoptimized= TRUE / FALSE
blocksize= целое число от 8192 до 2097152
checksum= TRUE / FALSE
compresstype= ZLIB / ZSTD / QUICKLZ2 / RLE_TYPE / NONE
compresslevel= целое число от 0 до 19
orientation= ROW / COLUMN
Задаётся через gpconfig: master; session; reload
Задаётся при создании таблицы: table

gp_appendonly_compaction


Включает компактификацию сегментных файлов во время операций VACUUM.

  • При отключении VACUUM только усекает сегментные файлы до значения EOF, что соответствует текущему поведению.
  • Администраторы могут отключить компактификацию при высокой нагрузке на ввод-вывод или при нехватке дискового пространства.
Тип данных Значение по умолчанию Область применения
boolean on master; session; reload; superuser

gp_appendonly_compaction_threshold


Задаёт пороговое соотношение (в процентах) скрытых строк к общему числу строк в сегментном файле, при превышении которого запускается компактификация во время FULL (ленивая VACUUM) без опции VACUUM.

  • Если соотношение скрытых строк в сегментном файле ниже этого порога, компактификация не выполняется, и в лог записывается сообщение.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 10 0 ~ 100 master; session; reload

gp_safefswritesize


Задаёт минимальный размер для безопасных операций записи на AO-таблицах в незрелых файловых системах.

  • При указании размера байтов больше 0 записывающий модуль дополняет данные до этого размера, чтобы предотвратить повреждение данных из-за ошибок файловой системы.
  • Каждая незрелая файловая система имеет известный безопасный размер записи, который необходимо указывать при использовании YMatrix с такими файловыми системами.
  • Обычно это значение задаётся как кратное размеру блока файловой системы; например, Linux ext3 использует 4096 байт, поэтому 32768 является типичным значением.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 0 0 ~ INT_MAX master; system; restart


Параметры конфигурации таблиц MARS2

compress_threshold


Порог сжатия. Определяет, сколько кортежей сжимаются одновременно в одной таблице. Задаёт максимальное количество кортежей в единице сжатия.

Тип данных Значение по умолчанию Допустимые значения Область применения
int 1000 1 ~ 10000 table

mars2_automerge_threshold


Управляет количеством L0-запусков во всех таблицах MARS2, при превышении которого запускается слияние.

  • Отдельные таблицы могут переопределять этот параметр с помощью опции таблицы level0_merge_threshold.
  • При установке на системном уровне требуется перезагрузка. При изменении на уровне сессии параметр вступает в силу немедленно.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 32 10 ~ 2048 master; session/system; reload

level0_merge_threshold


Управляет количеством L0-запусков в одной таблице, при превышении которого запускается слияние.

Тип данных Значение по умолчанию Допустимые значения Область применения
int 32 1 ~ 2048 table

level0_upgrade_size


Управляет размером (в МБ) для перевода одной таблицы из L0 в L1. Когда слияние в L0 создаёт запуск, превышающий этот размер, он переводится в L1.

Тип данных Значение по умолчанию Допустимые значения Область применения
int 25 1 ~ 10000 table

level1_upgrade_size


Управляет размером (в МБ) для перевода одной таблицы из L1 в L2. Когда слияние в L1 создаёт запуск, превышающий этот размер, он переводится в L2.

Тип данных Значение по умолчанию Допустимые значения Область применения
int 1000 1 ~ 10000 table

mars2_sort_mem


Управляет размером памяти для сортировки (в КБ) на одну операцию вставки. Для партиционированных таблиц эта память разделяется между партициями.

  • Значение по умолчанию — 2097152KB (2 ГБ). Допустимый диапазон — 128KB ~ 2147483647KB (до 2048 ГБ).
  • При установке на системном уровне требуется перезагрузка. При установке на уровне сессии параметр вступает в силу немедленно.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 2097152 128 ~ 2147483647 master; session/system; reload

mars2_sort_mem_core


Управляет минимальным объёмом памяти для сортировки, выделяемым на каждую партицию в партиционированной таблице.

  • Значение по умолчанию — 16384KB (16 МБ). Допустимый диапазон — 128KB ~ 2147483647KB (до 2048 ГБ).
  • При установке на системном уровне требуется перезагрузка. При установке на уровне сессии параметр вступает в силу немедленно.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 16384 128 ~ 2147483647 master; session/system; reload


Параметры конфигурации таблиц MARS3

Примечание!
Эти параметры должны настраиваться при создании таблицы с помощью предложения WITH. Они применяются к отдельным таблицам и не могут быть изменены после создания.

compress_threshold


Порог сжатия. Определяет, сколько кортежей сжимаются одновременно в одной таблице. Задаёт максимальное количество кортежей в единице сжатия.

  • Также управляет размером Range — базовой единицей сжатия. Может настраиваться для балансировки эффективности сжатия и производительности чтения. Слишком малое значение снижает эффективность сжатия, слишком большое — увеличивает потребление памяти.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 1200 1 ~ 100000 table

level_size_amplifier


Задаёт коэффициент усиления размеров уровней.

  • Определяет порог для запуска слияния: rowstore_size * (level_size_amplifier ^ level). Более высокое значение замедляет чтение, но ускоряет запись.
  • Выбирайте на основе характеристик рабочей нагрузки (запись/чтение, коэффициент сжатия и т.д.).
  • Примечание: убедитесь, что количество запусков на уровне не становится чрезмерным, так как это может ухудшить производительность запросов или заблокировать новые вставки.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 8 1 ~ 1000 table

prefer_load_mode


Задаёт внутренний режим загрузки данных для MARS3.

  • normal: Нормальный режим. Новые данные сначала записываются в строки-запуски L0. После накопления rowstore_size кортежей они сбрасываются в столбцовые запуски L1. По сравнению с bulk, этот режим требует дополнительного ввода-вывода, а преобразование в столбцовый формат происходит асинхронно. Подходит для частых, мелких записей при достаточной пропускной способности ввода-вывода и критичной задержке.
  • bluk: Режим массовой загрузки. Подходит для редких, крупных пакетных записей. Данные записываются непосредственно в столбцовые запуски L1. По сравнению с normal, этот режим снижает ввод-вывод и делает преобразование в столбцовый формат синхронным. Рекомендуется при ограниченной пропускной способности ввода-вывода и отсутствии требований к задержке.
  • Подробнее см. Обзор MARS3.
Тип данных Значение по умолчанию Допустимые значения Область применения
enum normal normal / bluk table


rowstore_size


Управляет моментом переключения L0-запуска на следующий. Новый запуск создаётся, когда объём данных превышает это значение (в МБ).

  • Пропорционален усилению чтения, обратно пропорционален усилению записи. Выбирайте на основе рабочей нагрузки (запись/чтение).
Тип данных Значение по умолчанию Допустимые значения Область применения
int 64 8 ~ 1024 table


Параметры конфигурации деградированного хранения MARS3

matrixts.enable_object_cache


Включает или отключает кэширование файловой системы для объектного хранилища.

Тип данных Значение по умолчанию Область применения
boolean off master; session; reload

mars3.degrade_credential_update_interval


Задаёт интервал (в секундах) обновления учётных данных сессии.

  • Для повышения безопасности объектного хранилища в некоторых средах требуется периодическое обновление учётных данных. Этот параметр управляет частотой (в секундах), с которой сессия повторно получает информацию о авторизации из каталога таблицы пространства, чтобы обеспечить актуальные учётные данные при доступе к объектному хранилищу.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 0 0 ~ INT_MAX master; system; reload

mars3.degrade_probe_interval


Задаёт интервал (в секундах), с которым фоновые задачи проверяют, соответствуют ли данные условиям для выгрузки.

  • Требует перезагрузки mxstop -u для вступления в силу после изменения.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 3600 1 ~ INT_MAX master; system; reload

mars3.enable_object_prefetch


Включает или отключает кэширование в памяти для объектного хранилища.

Тип данных Значение по умолчанию Область применения
boolean off master; session; reload

mars3.enable_objectstore


Включает или отключает автоматическую выгрузку данных.

  • Требует перезагрузки mxstop -u для вступления в силу после изменения.
Тип данных Значение по умолчанию Область применения
boolean off master; system; reload


Параметры конфигурации внешних таблиц

gp_external_enable_exec


Включает или отключает внешние таблицы, выполняющие команды ОС или скрипты на хостах сегментов (синтаксис CREATE EXTERNAL TABLE EXECUTE).

  • Должен быть включён, если используются функции Command Center или MapReduce.
Тип данных Значение по умолчанию Область применения
boolean on master; system; restart

gp_external_enable_filter_pushdown


Включает продвижение фильтров при чтении из внешних таблиц.

  • Если продвижение фильтра не удаётся, запрос продолжается без него (YMatrix применяет ограничение локально).
Тип данных Значение по умолчанию Область применения
boolean on master; session; reload

gp_external_max_segs


Устанавливает количество сегментов, используемых для сканирования данных внешних таблиц, предотвращая перегрузку системы и конфликты ресурсов при параллельных операциях.

  • Применяется только к внешним таблицам, использующим протокол gpfdist://.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 64 1 ~ INT_MAX master; session; reload

gp_initial_bad_row_limit


Если установлено в n, YMatrix прекращает обработку входных строк, если первые COPY строк содержат ошибки формата при выполнении n или импорта внешней таблицы.

  • Если среди первых n строк обнаружены корректные строки, обработка продолжается.
  • Установка в 0 отключает этот лимит.
  • Альтернативно можно использовать clause COPY в определениях SEGMENT REJECT LIMIT или внешних таблиц для ограничения отклонённых строк.
  • INT_MAX — это максимальное целое значение, которое может быть сохранено в системе.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 1000 0 ~ INT_MAX master; session; reload

gp_reject_percent_threshold


Для обработки ошибок на уровне одной строки в COPY и внешних таблицах с SELECT задаёт количество обработанных строк, после которого SEGMENT REJECT LIMIT n PERCENT начинает вычислять процент отклонённых строк.

Тип данных Значение по умолчанию Допустимые значения Область применения
int 300 0 ~ INT_MAX master; session; reload

mx_discard_gpfdist_data


Отбрасывает пакеты данных из протокола gpfdist v1.

Тип данных Значение по умолчанию Область применения
boolean off master; session; reload

readable_external_table_timeout


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

  • Значение по умолчанию 0 означает отсутствие таймаута; запросы не отменяются.
  • Если длительный запрос gpfdist завершается с ошибкой 间歇性网络连接问题, установите значение для readable_external_table_timeout. Если gpfdist не возвращает данные в течение указанного времени, YMatrix отменяет запрос.
Тип данных Значение по умолчанию Допустимые значения Область применения
int 0 0 ~ INT_MAX master; system; reload

writable_external_table_bufsize


Размер буфера (в КБ), используемого YMatrix для сетевой коммуникации, например, утилитой gpfdist и внешними веб-таблицами (с использованием HTTP).

  • YMatrix сохраняет данные в буфере перед записью.
  • Допустимый диапазон — 32KB ~ 131072KB (до 128 МБ).
Тип данных Значение по умолчанию Допустимые значения Область применения
int 64 32 ~ 131072 segments; session; reload

verify_gpfdists_cert


При использовании протокола gpfdists с SSL-безопасностью для внешних таблиц управляет включением аутентификации SSL-сертификата.

  • Значение по умолчанию on включает SSL-аутентификацию при взаимодействии YMatrix с утилитой gpfdist для ввода-вывода данных.
  • off отключает аутентификацию SSL-сертификата. Следующие исключения SSL игнорируются:
    • YMatrix не доверяет самоподписанному SSL-сертификату, используемому gpfdist.
    • Имя хоста в SSL-сертификате не совпадает с хостом, на котором запущен gpfdist.
  • Установите в off, чтобы отключить аутентификацию при тестировании связи между внешними таблицами YMatrix и утилитой gpfdist.
  • Примечание: Отключение проверки SSL-сертификата для gpfdists создаёт риски для безопасности.