Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

gpreload

Перезагружает данные в таблицах Greengage DB, сортируя их по указанным столбцам.

Синтаксис

gpreload -d <database>
         [ -p <port> ]
         { -t | --table-file } <path_to_file>
         [ -a ]

gpreload -? | -h | --help

gpreload --version

Описание

Утилита gpreload выполняет перезагрузку данных таблиц с сортировкой по указанным столбцам. Для таблиц с параметром хранения appendoptimized = true и включенным сжатием предварительная сортировка данных может улучшить коэффициент сжатия. Список таблиц и столбцов для сортировки задается в текстовом файле.

Сжатие данных особенно эффективно, если количество уникальных значений в столбце относительно невелико по сравнению с общим числом строк.

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

public.cust_table: state, city
public.cust_table: city, state

Подробности о формате файла, используемого с gpreload, см. в описании параметра --table-file.

Примечания

Для ускорения перезагрузки рекомендуется удалить индексы у таблиц перед началом операции.

Выполнение команды ANALYZE после перезагрузки может повлиять на производительность запросов, так как изменяется распределение данных.

Утилита работает следующим образом: для каждой таблицы данные копируются во временную таблицу, исходная таблица очищается, а затем данные из временной таблицы вставляются обратно в указанном порядке сортировки. Перезагрузка каждой таблицы выполняется в рамках одной транзакции.

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

Параметры

-a

(Необязательно) Если указано, утилита gpreload не запрашивает подтверждение действий у пользователя.

-d <database>

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

-p <port>

Порт мастера Greengage DB. Если параметр не указан, используется значение переменной окружения PGPORT. Если значение недоступно, возвращается ошибка.

{-t | --table-file} <path_to_file>

Путь к файлу, содержащему список таблиц с указанием схем для перезагрузки и столбцов для сортировки. Поддерживаются только пользовательские таблицы. Представления и таблицы системного каталога не поддерживаются.

Если для таблицы из файла определены индексы, gpreload запрашивает подтверждение для продолжения.

Каждая строка файла указывает имя таблицы и список столбцов для сортировки. Формат строки следующий:

schema.table_name: column [desc] [, column2 [desc] ... ]

После имени таблицы ставится двоеточие (:), за которым следует как минимум одно имя столбца. Если указано несколько столбцов, их имена разделяются запятой. По умолчанию столбцы сортируются по возрастанию. Для сортировки столбца по убыванию укажите ключевое слово desc после имени столбца.

Подстановочные знаки не поддерживаются.

Если в файле есть ошибки, gpreload сообщает о первой ошибке и завершает работу. Данные не перезагружаются.

Следующий пример перезагружает три таблицы:

public.clients: region, state, rep_id desc
public.merchants: region, state
test.lineitem: group, assy, whse

В первой таблице public.clients данные в столбце rep_id сортируются в порядке убывания. Данные в остальных столбцах сортируются в порядке возрастания.

--version

Отображает версию утилиты.

-? | -h | --help

Выводит справку.

Пример

Эта команда выполняет перезагрузку таблиц в базе данных mytest, перечисленных в файле data-tables.txt:

$ gpreload -d mytest --table-file data-tables.txt